データ モデルでは、各列には、整数、10 進数、テキスト、通貨データ、日付と時刻など、列が保持できるデータの種類を指定する関連付けられたデータ型があります。 データ型は、列に対して実行できる操作の種類と、列に値を格納するために必要なメモリの量も決定します。

このアドインを使用 PowerPivot 、列のデータ型を変更できます。 日付列が文字列としてインポートされたが、他の列である必要がある場合は、これを行う必要があります。 詳細については、「列の データ型を設定 する」を参照 PowerPivot。

この記事の内容

データ型の概要

次の表は、データ モデルでサポートされるデータ型の一覧です。 データをインポートするか、数式で値を使用すると、元のデータ ソースに別のデータ型が含まれている場合でも、データはこれらのデータ型の 1 つに変換されます。 数式の結果として得た値でも、これらのデータ型が使用されます。

データ型 (Excel

DAX のデータ型

説明

数値 (全数)

64 ビット (8 バイト) の整数値 1、2

小数点以下の桁数がない数値。 整数には正または負の数を指定できますが、-9,223,372,036,854,775,808 (-2^63) と 9,223,372,036,854,775,807 (2^63-1) の整数を指定する必要があります。

10 進数

64 ビット (8 バイト) の実数 1、2

実数は、小数点以下の桁数を指定できる数値です。 実数は、さまざまな値に対応します。

-1.79E +308 ~ -2.23E -308 の負の値

ゼロ

2.23E -308 ~ 1.79E + 308 の正の値

ただし、有効桁数は 15 桁の 10 進数に制限されます。

TRUE/FALSE

Boolean

True または False のいずれかの値。

テキスト

String

Unicode 文字データ文字列。 文字列、数値、またはテキスト形式で表される日付を指定できます。

文字列の最大長は、268,435,456 Unicode 文字 (256 メガ文字) または 536,870,912 バイトです。

日付

日付/時刻

受け入れ可能な日時表現の日付と時刻。

有効な日付は、すべて 1900 年 1 月 1 日より後の日付です。

通貨

通貨

通貨データ型では、-922,337,203,685,477.5808 から 922,337,203,685,477.5807 の範囲の値を指定できます。小数点以下の桁数は 4 桁です。

該当なし

空白

空白は、NULL 値を表し、置き換える DAX SQLです。 BLANK 関数を使用して空白を作成し、論理関数 ISBLANK を使用して空白をテストできます。

1 DAX 数式では、表に記載されているデータ型よりも小さいデータ型はサポートされません。

2 数値が非常に大きいデータをインポートしようとすると、次のエラーでインポートが失敗する可能性があります。

メモリ内データベース エラー: "<テーブル名>" テーブルの '<列名>' 列には、値 '1.7976931348623157e+308' が含まれているが、これはサポートされていません。 操作が取り消されました。

このエラーは、null を表 PowerPivot 値を使用するために発生します。 次の一覧の値は、null 値のシノニムです。

Value

9223372036854775807

-9223372036854775808

1.7976931348623158e+308

2.2250738585072014e-308

データから値を削除し、インポートをやり直してください。

テーブルのデータ型

DAX は、集計やタイム インテリジェンスの計算など、多くの関数でテーブル データ型を使用します。 一部の関数では、テーブルへの参照が必要です。その他の関数は、他の関数への入力として使用できるテーブルを返します。 入力としてテーブルを必要とする一部の関数では、テーブルに評価される式を指定できます。一部の関数では、ベース テーブルへの参照が必要です。 特定の関数の要件については 、「DAX 関数リファレンス」を参照してください

DAX 数式での暗黙的および明示的なデータ型変換

各 DAX 関数には、入力と出力として使用されるデータの種類に関する特定の要件があります。 たとえば、一部の関数では、一部の引数と日付に整数が必要です。その他の関数には、テキストまたはテーブルが必要です。

引数として指定した列のデータが、関数で必要なデータ型と互換性がない場合、多くの場合、DAX はエラーを返します。 ただし、可能な限り、DAX はデータを必要なデータ型に暗黙的に変換しようとします。 次に例を示します。

  • 日付を文字列として入力すると、DAX によって文字列が解析され、日付と時刻の形式の 1 Windowsキャストされます。

  • TRUE + 1 を追加して結果 2 を取得できます。TRUE は暗黙的に数値 1 に変換され、操作 1+1 が実行されます。

  • 2 つの列に値を追加し、一方の値がテキスト ("12") として表され、もう一方が数値 (12) として表される場合、DAX は暗黙的に文字列を数値に変換してから、数値の結果の加算を実行します。 次の式は 44 を返します。 = "22" + 22

  • 2 つの数値を連結しようとすると、Excel文字列として表示され、連結されます。 次の式は、"1234": = 12 & 34 を返します。

次の表は、数式で実行される暗黙的なデータ型変換の概要を示しています。 Excelは、指定された操作の必要に応じて、可能な限り暗黙的な変換を実行します。

暗黙的なデータ変換の表

実行される変換の種類は、 演算子によって決まります。この演算子は、要求された操作を実行する前に必要な値をキャストします。 これらのテーブルは、演算子を一覧表示し、交差する行のデータ型とペアの場合に列の各データ型に対して実行される変換を示します。

注: テキスト データ型は、これらのテーブルには含まれません。 数値がテキスト形式で表されている場合、 PowerPivot は数値の種類を特定し、数値として表します。

追加 (+)

演算子 (+)

INTEGER

CURRENCY

REAL

日付/時刻

INTEGER

INTEGER

CURRENCY

REAL

日付/時刻

CURRENCY

CURRENCY

CURRENCY

REAL

日付/時刻

REAL

REAL

REAL

REAL

日付/時刻

日付/時刻

日付/時刻

日付/時刻

日付/時刻

日付/時刻

たとえば、通貨データと組み合わせて加算操作で実数を使用すると、両方の値が REAL に変換され、結果は REAL として返されます。

減算 (-)

次の表では、行ヘッダーは minuend (左側) であり、列ヘッダーはサブトラエンド (右側) です。

演算子 (-)

INTEGER

CURRENCY

REAL

日付/時刻

INTEGER

INTEGER

CURRENCY

REAL

REAL

CURRENCY

CURRENCY

CURRENCY

REAL

REAL

REAL

REAL

REAL

REAL

REAL

日付/時刻

日付/時刻

日付/時刻

日付/時刻

日付/時刻

たとえば、他のデータ型を含む減算操作で日付が使用されている場合、両方の値が日付に変換され、戻り値も日付になります。

注: データ モデルでは、非項演算子 - (負) もサポートされますが、この演算子ではオペランドのデータ型は変更されません。

乗算 (*)

演算子 (*)

INTEGER

CURRENCY

REAL

日付/時刻

INTEGER

INTEGER

CURRENCY

REAL

INTEGER

CURRENCY

CURRENCY

REAL

CURRENCY

CURRENCY

REAL

REAL

CURRENCY

REAL

REAL

たとえば、乗算操作で整数と実数を組み合わせると、両方の数値が実数に変換され、戻り値も REAL になります。

除算 (/)

次の表では、行見出しは分子であり、列見出しは分母です。

演算子 (/)

(行/列)

INTEGER

CURRENCY

REAL

日付/時刻

INTEGER

REAL

CURRENCY

REAL

REAL

CURRENCY

CURRENCY

REAL

CURRENCY

REAL

REAL

REAL

REAL

REAL

REAL

日付/時刻

REAL

REAL

REAL

REAL

たとえば、整数を除算操作で通貨値と組み合わせると、両方の値が実数に変換され、結果も実数になります。

比較演算子

比較式では、ブール値は文字列値より大きいと見なされ、文字列値は数値または日付/時刻値より大きいと見なされます。数値と日付/時刻の値は同じ順位であると見なされます。 ブール値または文字列値に対して暗黙的な変換は実行されません。空白または空白値は、他の比較値のデータ型に応じて 0/""/false に変換されます。

次の DAX 式は、この動作を示しています。

=IF(FALSE()>"true","Expression is true", "Expression is false"), は "Expression is true" を返します。

=IF("12">12,"Expression is true", "Expression is false"), は "Expression is true" を返します。

=IF("12"=12,"Expression is true", "Expression is false"), returns "Expression is false"

変換は、次の表で説明するように、数値型または日付/時刻型に対して暗黙的に実行されます。

比較演算子

INTEGER

CURRENCY

REAL

日付/時刻

INTEGER

INTEGER

CURRENCY

REAL

REAL

CURRENCY

CURRENCY

CURRENCY

REAL

REAL

REAL

REAL

REAL

REAL

REAL

日付/時刻

REAL

REAL

REAL

日付/時刻

ページの先頭へ

空白、空の文字列、ゼロ値の処理

DAX では、null、空白の値、空のセル、または不足している値はすべて、同じ新しい値の種類である BLANK で表されます。 BLANK 関数を使用して空白を生成したり、ISBLANK 関数を使用して空白をテストしたりもできます。

加算や連結などの操作での空白の処理方法は、個々の関数によって異なります。 次の表は、DAX と数式Microsoft Excel、空白の処理方法の違いをまとめたものになります。

DAX

Excel

空白 + 空白

空白

0 (ゼロ)

空白 + 5

5

5

空白 * 5

空白

0 (ゼロ)

5/BLANK

無限大

エラー

0/BLANK

NaN

エラー

空白/空白

空白

エラー

FALSE または空白

FALSE

FALSE

FALSE と空白

FALSE

FALSE

TRUE または空白

TRUE

TRUE

TRUE と空白

FALSE

TRUE

空白または空白

空白

エラー

空白と空白

空白

エラー

特定の関数または演算子が空白を処理する方法の詳細については、「DAX 関数リファレンス」セクションの各 DAX 関数の個々のトピック を参照してください

ページの先頭へ

ヘルプを表示

スキルを磨く
トレーニングの探索
新機能を最初に入手
Microsoft Insider に参加する

この情報は役に立ちましたか?

翻訳品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?

フィードバックをお送りいただきありがとうございます!

×