Power Query M では、型を使用して、より構造化されたデータ セットを持つ値を分類します。 この記事では、最もよく使用される M 型と、ある型を別の型に変換する方法について説明します。
一般的に使用される型
データ型とは、特定のデータの構造を明確にするために使用される任意の型を指します。 最も一般的に使用されるデータ型はプリミティブ型です。 これらの型は次のとおりです。
-
type anyは、任意の値を分類します。 -
type null。null 値を分類します。 -
type logical。true 値と false 値を分類します。 -
type number。数値を分類します。 -
type time。時間値を分類します。 -
type date。日付値を分類します。 -
type datetime。datetime 値を分類します。 -
type datetimezone。datetimezone 値を分類します。 -
type duration。期間値を分類します。 -
type text。テキスト値を分類します。 -
type binary。バイナリ値を分類します。 -
type type。型値を分類します。 -
type list。リスト値を分類します。 -
type record。レコード値を分類します。 -
type table。テーブル値を分類します。 -
type function。関数値を分類します。 -
type anynonnull。null を除くすべての値を分類します。 -
type none。何の値も分類しません。
これらの型の詳細については、「型」を参照 してください。
これらの一般的なデータ型に加えて、 *.Type形式を使用した一連のデータ型もあります。 この形式で最もよく使用されるデータ型は次のとおりです。
-
Byte.Type8 ビット数値を分類します。 -
Int8.Type8 ビット数値を分類します。 -
Int16.Type16 ビット数値を分類します。 -
Int32.Type: 32 ビット数値を分類します。 -
Int64.Type64 ビット数値を分類します。 -
Single.Typeは、9 桁の浮動小数点数値を分類します。 -
Double.Type17 桁の浮動小数点数値を分類します。 -
Decimal.Type: 15 桁の浮動小数点数値を分類します。 -
Currency.Typeは、"." 区切り記号の右側に 4 桁の 19 桁の数値を分類します。 -
Percentage.Type: 15 桁の数値をマスクで分類し、値をパーセンテージとして書式設定します。 -
Guid.TypeGUID テキスト値を分類します。
プリミティブ型は、 *.Type 形式でも記述できます。 そのため、numberをNumber.Type、Record.Typeとしてrecordなどを記述できます。
これらの型のいずれかを使用する場合、すべての M コードと同様に、これらの型では大文字と小文字が区別されます。
次の表に、これらの各型の詳細を示します。
| データの種類 | 説明 |
|---|---|
any |
anyデータ型は、値に明示的なデータ型定義がない場合の状態です。
any型は、すべての値を分類するデータ型です。 |
binary |
binaryデータ型は、バイナリ形式で他のデータを表すために使用できます。 |
type |
他の値を分類する値。 詳細については、「型」を参照 してください。 |
null |
値が存在しないか、不確定または不明な状態の値を表します。 |
anynonnull |
null にできない任意の型を表します。 |
date |
日付のみを表します (時刻部分なし)。 |
time |
Just Time (日付部分なし) を表します。 |
datetime |
日付と時刻の値の両方を表します。 日付の時刻部分は、1/300 秒 (3.33 ミリ秒) の倍数全体に対する分数として格納されます。 1900 年から 9999 年までの日付がサポートされています。 |
datetimezone |
タイム ゾーン オフセットを持つ UTC 日時を表します。 |
duration |
時間の長さを表します。 この型は、正しい結果を持つ datetime フィールドに対して加算または減算できます。 詳細については、「 期間」を参照してください。 |
text |
Unicode 文字データ文字列。 文字列、数値、またはテキスト形式で表される日付を指定できます。 文字列の最大長は 268,435,456 Unicode 文字 (各 Unicode 文字は 2 バイト) または 536,870,912 バイトです。 |
logical |
trueまたはfalseのいずれかのブール値。 |
list |
列挙時に値のシーケンスを生成する値。 詳細については、「 リスト型 」と「 リスト値」を参照してください。 |
record |
フィールドの順序付きシーケンス。 各フィールドには、フィールド名とフィールド値が含まれています。 詳細については、「 レコードの種類 」と「 レコード値」を参照してください。 |
table |
列に分割された行の順序付きシーケンス。 詳細については、「 テーブルの型とテーブル の 値」を参照してください。 |
function |
引数のセットを 1 つの値にマップする値。 詳細については、「 関数 と 関数の型」を参照してください。 |
number |
数値演算と算術演算に使用される任意の数値を表します。 詳細については、「 数値」を参照してください。 |
Decimal.Type |
64 ビット (8 バイト) の浮動小数点数を表します。 これは最も一般的な数値型であり、通常は数字に対応しています。 小数部の値を持つ数値を処理するように設計されていますが、整数も処理します。
Decimal.Typeは、-1.79E +308 ~ –2.23E –308、0、および 2.23E –308 ~ 1.79E + 308 の正の値を処理できます。 たとえば、34、34.01、34.000367063 などの数値は有効な 10 進数です。
Decimal.Typeで表すことができる最大の有効桁数は 15 桁です。 小数点区切り記号は、数値の任意の場所で使用できます。
Decimal.Typeは、Excel での数値の格納方法に対応します。 バイナリ浮動小数点数は、サポートされている範囲内のすべての数値を 100% 精度で表すことはできません。 したがって、特定の 10 進数を表すときに、精度の小さな違いが発生する可能性があります。 |
Currency.Type |
このデータ型には、小数点区切り記号の固定位置があります。 小数点区切り記号は常に右に 4 桁の数字を持ち、19 桁の有効桁数を使用できます。 表すことができる最大値は 922,337,203,685,477.5807 (正または負) です。
Decimal.Typeとは異なり、Currency.Typeは常に正確であり、浮動小数点表記の不正確さがエラーを発生する可能性がある場合に役立ちます。 |
Percentage.Type |
基本的には Decimal.Typeと同じですが、値をパーセンテージ値として書式設定するためのマスクがあります。 |
Int8.Type |
8 ビット (1 バイト) 符号付き整数値を表します。 整数であるため、小数点以下の桁数は表示されません。 3 桁の数字を使用できます。-128 から 127 までの正または負の整数。
Currency.Typeと同様に、Int8.Typeは丸めを制御する必要がある場合に役立ちます。 |
Int16.Type |
16 ビット (2 バイト) 符号付き整数値を表します。 整数であるため、小数点以下の桁数は表示されません。 6 桁の数字を使用できます。-32,768 (–2^15) から 32,767 (2^15-1) までの正または負の整数。
Currency.Typeと同様に、Int16.Typeは丸めを制御する必要がある場合に役立ちます。 |
Int32.Type |
32 ビット (4 バイト) 符号付き整数値を表します。 整数であるため、小数点以下の桁数は表示されません。 10 桁の数字を使用できます。-2,147,483,648 (–2^31) から 2,147,483,647 (2^31-1) までの正または負の整数。
Currency.Typeと同様に、Int32.Typeは丸めを制御する必要がある場合に役立ちます。 |
Int64.Type |
64 ビット (8 バイト) 符号付き整数値を表します。 整数であるため、小数点以下の桁数は表示されません。 19 桁の数字を使用できます。-9,223,372,036,854,775,808 (–2^63) から 9,223,372,036,854,775,807 (2^63-1) までの正または負の整数。 これは、さまざまな数値データ型の可能な限り最大の精度を表すことができます。
Currency.Typeと同様に、Int64.Typeは丸めを制御する必要がある場合に役立ちます。 |
Byte.Type |
8 ビット (1 バイト) 符号なし整数値を表します。 符号なし整数であるため、小数点以下の桁数がなく、正の値のみを含めることができます。 3 桁の数字を使用できます。0 ~ 255 の正の数値。 |
Single.Type |
単精度浮動小数点数を表します。 約 3.99 X 1038 ~ 3.99 X 1038 の範囲があり、約 9 桁の有効桁数をサポートします。 また、正の無限大と負の無限大、および NaN (数値ではない) を表すこともできます。 |
Double.Type |
倍精度浮動小数点数を表します。 おおよその範囲は -1.7976931348623158 X 10307 から 1.7976931348623158 X 10307 で、約 17 桁の精度をサポートします。 また、正の無限大と負の無限大、および NaN (数値ではない) を表すこともできます。 |
Guid.Type |
GUID 値を構成する 16 進値<8 <4 16 進値>-<4 16 進値>-<4 16 進値>>-<12 16 進値> のフォーム ファクターを使用して、32 桁の 16 進値で構成される 128 ビットテキスト値を表します。 |
none |
値を分類しないデータ型。 |
他の一般的に使用される *.Type 値は列挙だけです。 詳細については、「 列挙型」を参照してください。
型変換
Power Query M 式言語には、型を変換する式があります。 M の変換式を次にまとめます。
数値
| 型変換 | 説明 |
|---|---|
| Number.FromText(テキストをテキストとして) 数値として | テキスト値から数値が返されます。 |
| Number.ToText(数値として数値) をテキストとして | 数値からテキスト値が返されます。 |
| Number.From(任意の値) | 値から数値を返します。 |
| Byte.From(任意の値) | 指定した値から 8 ビットの整数値を返します。 |
| Int8.From(任意の値) | 指定した値から 8 ビットの整数値を返します。 |
| Int16.From(任意の値) | 指定された値から 16 ビットの整数値を返します。 |
| Int32.From(任意の値) | 指定された値から 32 ビットの整数値を返します。 |
| Int64.From(任意の値) | 指定された値から 64 ビットの整数値を返します。 |
| Single.From(任意の値) | 指定された値から単一数値を返します。 |
| Double.From(任意の値) | 指定された値から倍精度浮動小数点数値を返します。 |
| Decimal.From(任意の値) | 指定した値から小数値が返されます。 |
| Currency.From(任意の値) | 指定した値から通貨型の値が返されます。 |
| Percentage.From(任意の値) | 指定された値からパーセント値を返します。 |
テキスト
| 型変換 | 説明 |
|---|---|
| Text.From(任意の値) | 数値、日付、時刻、datetime、datetimezone、論理、期間、またはバイナリ値のテキスト表現を返します。 |
| Guid.From(テキストとしての値) | 指定したテキストの GUID 表現を返します。 |
論理
| 型変換 | 説明 |
|---|---|
| Logical.FromText(テキストとしてテキスト)、論理 | テキスト値から true または false の論理値を返します。 |
| Logical.ToText(論理として論理) テキストとして | 論理値からテキスト値を返します。 |
| Logical.From(任意の値) を論理として | 値から論理値を返します。 |
日付、時刻、DateTime および DateTimeZone
| 型変換 | 説明 |
|---|---|
| .FromText(text as text) as date, time, datetime, or datetimezone | 日付形式とカルチャ値のセットから日付、時刻、datetime、datetimezone 値が返されます。 |
| .ToText(date,time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) as text | 日付、時刻、datetime、または datetimezone 値からテキスト値が返されます。 |
| .From(value as any) | 値から日付、時刻、datetime、または datetimezone 値が返されます。 |
| .ToRecord(date,time, dateTime, or dateTimeZone as date, time, datetime, or datetimezone) | 値から日付、時刻、datetime、または datetimezone 値の部分を含むレコードが返されます。 |