資料模型中的資料類型

重要:  本文係由機器翻譯而成,請參閱免責聲明。本文的英文版本請見這裡,以供參考。

在資料模型中,每個資料行都有關聯的資料類型,指定資料行所能保留的資料類型:整數、十進位數字、文字、貨幣資料、日期和時間等等。資料類型也會決定可以在資料行上執行的作業類型,以及在資料行中儲存值所需的記憶體容量。

如果您使用 Power Pivot 增益集,可以變更資料行的資料類型。如果日期資料行匯入為字串,但需要的是其他資料類型,您可能需要這樣做。如需詳細資訊,請參閱在 中設定資料行的資料類型。Power Pivot

本文內容

資料類型摘要

資料表資料類型

DAX 公式中隱含與明確的資料類型轉換

隱含資料轉換的資料表

加 (+)

減 (-)

乘 (*)

除 (/)

比較運算子

處理空白、空字串與零值

資料類型摘要

下表列出資料模型中支援的資料類型。當您在公式中匯入資料或使用值時,即使原始資料來源包含不同的資料類型,資料也會轉換成以下其中一種資料類型。公式所產生的值也會使用這些資料類型。

Excel 中的資料類型

DAX 中的資料類型

描述

整數

64 位元 (八位元組) 整數值 1, 2

沒有小數位數的數字。整數可以是正數或負數,但必須是介於 -9,223,372,036,854,775,808 (-2^63) 和 9,223,372,036,854,775,807 (2^63-1) 之間的整數。

十進位數字

64 位元 (八位元組) 實數 1, 2

實數是可以有小數位數的數字。實數涵蓋各種類型的值:

負值是從 -1.79E +308 到 -2.23E -308

零 (0)

正值是從 2.23E -308 到 1.79E + 308

不過,有效位數的數目限制為 15 個小數位數。

TRUE/FALSE

布林值

True 或 False 值。

文字

字串

Unicode 字元資料字串。可為以文字格式表示的字串、數字或日期。

最大字串長度為 268,435,456 個 Unicode 字元 (256 百萬個字元) 或 536,870,912 個位元組。

日期

日期/時間

採用可接受之日期時間表示方式的日期和時間。

有效日期為 1900 年 1 月 1 日之後的所有日期。

貨幣

貨幣

貨幣資料類型允許的值是從 -922,337,203,685,477.5808 到 922,337,203,685,477.5807 且固定有效位數為四個小數位數。

不適用

空白

空白是 DAX 資料類型,可以表示並取代 SQL Null 值。您可以使用 BLANK 函數建立空白,並使用邏輯函數 ISBLANK 進行空白測試。

1 DAX 公式不支援小於資料表所列之類型的資料類型。

2 如果嘗試匯入有極大數值的資料,匯入可能會產生下列錯誤而失敗:

記憶體內資料庫錯誤:「<資料表名稱>」資料表的「<資料行名稱>」資料行含有不支援的值 '1.7976931348623157e+308'。已取消作業。

發生這項錯誤的原因是,Power Pivot 使用該值來代表 Null。下列清單中的值是 Null 值的同義字:

9223372036854775807

-9223372036854775808

1.7976931348623158e+308

2.2250738585072014e-308

從資料中移除該值,然後再次嘗試匯入作業。

資料表資料類型

DAX 會在許多函數中使用資料表資料類型,例如彙總和時間智慧計算。部分函數會需要資料表的參照;其他函數會傳回可用來為其他函數提供輸入的資料表。在一些需要資料表做為輸入的函數中,您可以指定導出資料表的運算式;對於部分函數而言,基礎資料表的參照是必要的。如需特定函數需求的相關資訊,請參閱 DAX 函數參照

DAX 公式中隱含與明確的資料類型轉換

在用做輸入及輸出的資料類型方面,每個 DAX 函數都有特定需求。例如,部分函數需要為一些引數使用整數,且需要為其他項目使用日期;其他函數則需要文字或資料表。

如果您指定為引數之資料行中的資料,與函數所需的資料類型不相容,在許多情況下,DAX 會傳回錯誤。不過,DAX 會盡可能嘗試以隱含方式將資料轉換為所需的資料類型。例如:

  • 您可以將日期輸入為字串,而且 DAX 將會剖析字串並嘗試將其轉換為其中一種 Windows 日期和時間格式。

  • 您可以加入 TRUE + 1 然後得到結果 2,因為 TRUE 會隱含地轉換為數字 1 並執行 1+1 的運算。

  • 如果您在兩個資料行中新增值,且其中一個值恰巧表示為文字 ("12"),而另一個值表示為數字 (12),DAX 就會以隱含方式將字串轉換為數字,然後執行加法以得到數值結果。下列運算式會傳回 44:= "22" + 22

  • 如果您嘗試串連兩個數字,Excel 就會將它們呈現為字串,然後再進行串連。 下列運算式會傳回 "1234":= 12 & 34

下表摘要列出在公式中執行的隱含資料類型轉換。Excel 會依照指定運算的要求,盡可能執行隱含轉換。

隱含資料轉換的資料表

執行的轉換類型是由運算子決定,運算子會轉換其所需的值,然後再執行要求的運算。以下資料表會列出運算子,並指出在與交集資料列中的資料類型配對時,其於資料行中每個資料類型上執行的轉換。

附註: 這些資料表中沒有文字資料類型。以文字格式表示數字時,在某些情況下,Power Pivot 會嘗試判斷數字類型,並以數字表示該類型。

加 (+)

運算子 (+)

整數

貨幣

實數

日期/時間

整數

整數

貨幣

實數

日期/時間

貨幣

貨幣

貨幣

實數

日期/時間

實數

實數

實數

實數

日期/時間

日期/時間

日期/時間

日期/時間

日期/時間

日期/時間

例如,如果在加法運算中使用實數搭配貨幣資料,兩個值都會轉換為實數,因此傳回的結果為實數。

減 (-)

在下表中,列標題是被減數 (左側),而欄標題則是減數 (右側)。

運算子 (-)

整數

貨幣

實數

日期/時間

整數

整數

貨幣

實數

實數

貨幣

貨幣

貨幣

實數

實數

實數

實數

實數

實數

實數

日期/時間

日期/時間

日期/時間

日期/時間

日期/時間

例如,如果在減法運算中使用日期搭配其他任何資料類型,兩個值都會轉換為日期,因此傳回值也是日期。

附註: 資料模型也支援一元運算子 - (否定),但是這個運算子不會變更運算元的資料類型。

乘 (*)

運算子 (*)

整數

貨幣

實數

日期/時間

整數

整數

貨幣

實數

整數

貨幣

貨幣

實數

貨幣

貨幣

實數

實數

貨幣

實數

實數

例如,如果在乘法運算中結合整數與實數,兩個值都會轉換為實數,因此傳回值也是實數。

除 (/)

在下表中,列標題是被除數 (分子),而欄標題則是除數 (分母)。

運算子 (/)

(列/欄)

整數

貨幣

實數

日期/時間

整數

實數

貨幣

實數

實數

貨幣

貨幣

實數

貨幣

實數

實數

實數

實數

實數

實數

日期/時間

實數

實數

實數

實數

例如,如果在除法運算中結合整數與貨幣值,兩個值都會轉換為實數,因此結果也是實數。

比較運算子

在比較運算式中,會將布林值視為大於字串值,且將字串值視為大於數值或日期/時間值;數字或日期/時間值會視為相同等級。沒有為布林或字串值執行隱含轉換;視其他比較值的資料類型而定,BLANK 或空白值會轉換為 0/""/false。

下列 DAX 運算式說明這項行為:

=IF(FALSE() > 「 true 」,「 運算式為 true 」、 「 運算式為 false 」),會傳回 「 運算式為 true 」

= IF("12">12,"Expression is true","Expression is false"),會傳回 「 運算式為 true 」。

= IF("12"=12,"Expression is true","Expression is false"),傳回 「 運算式為 false 」

針對數值或日期/時間類型所執行的隱含轉換如下表所述:

比較運算子

整數

貨幣

實數

日期/時間

整數

整數

貨幣

實數

實數

貨幣

貨幣

貨幣

實數

實數

實數

實數

實數

實數

實數

日期/時間

實數

實數

實數

日期/時間

頁面頂端

處理空白、空字串與零值

在 DAX 中,空白值、空儲存格或遺漏的值都會以相同的新值類型 BLANK 加以表示。您可以使用 BLANK 函數產生空白,或使用 ISBLANK 函數進行空白測試。

在運算中空白的處理方式 (例如加入或串連) 會視個別函數而定。下表摘要列出 DAX 和 Microsoft Excel 公式在空白處理方式上的差異。

運算式

DAX

Excel

BLANK + BLANK

BLANK

0 (零)

BLANK +5

5

5

BLANK * 5

BLANK

0 (零)

5/BLANK

無限

錯誤

0/BLANK

NaN

錯誤

BLANK/BLANK

BLANK

錯誤

FALSE OR BLANK

FALSE

FALSE

FALSE AND BLANK

FALSE

FALSE

TRUE OR BLANK

TRUE

TRUE

TRUE AND BLANK

FALSE

TRUE

BLANK OR BLANK

BLANK

錯誤

BLANK AND BLANK

BLANK

錯誤

如需有關特定函數或運算子如何處理空白的詳細資訊,請參閱 DAX 函數參照一節中,每個 DAX 函數的個別主題。

頁面頂端

附註: 機器翻譯免責聲明︰本文係以電腦系統翻譯而成,未經人為介入。Microsoft 提供此等機器翻譯旨在協助非英語系使用者輕鬆閱讀 Microsoft 產品、服務及技術相關內容。基於本文乃由機器翻譯而成,因此文中可能出現詞辭、語法、文法上之錯誤。

擴展您的技能
探索訓練
優先取得新功能
加入 Office 測試人員

這項資訊有幫助嗎?

感謝您的意見反應!

感謝您的意見反應! 我們將協助您與其中一位 Office 支援專員連絡以深入了解您的意見。

×