資料模型中的資料類型

附註:  我們想要以您的語言,用最快的速度為您提供最新的說明內容。 本頁面是經由自動翻譯而成,因此文中可能有文法錯誤或不準確之處。讓這些內容對您有所幫助是我們的目的。希望您能在本頁底部告訴我們這項資訊是否有幫助。 此為 英文文章 出處,以供參考。

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

如果您使用的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 函數參照一節中的個別主題。

頁面頂端

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

這項資訊有幫助嗎?

感謝您的意見反應!

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

×