このページでは、Power BIの内部で0からテーブルを作成する方法を紹介します。(DAX関数、M言語)
使用する関数:テーブルコンストラクター、DATATABLE
はじめに
Power BIでは、一般的にCSVやExcelファイル、SQLサーバーといった外部データを使用してレポートを作成します。ただし、外部データとして準備するまでもないようなシンプルなテーブルを使用する際は、下記の方法でテーブルを0から作成することもできます。
- DAX関数:テーブルコンストラクターやDATATABLE関数で動的にテーブルを生成
- M言語「データの入力」機能:GUIで手動入力してテーブルを作成
それぞれ、用途や更新頻度によって使い分けられるのが特徴です。
たとえば、DAXは計算列やパラメーター用のテーブルに最適。M言語は少量データのサンプルやテスト用に便利です。

DAX関数でテーブルを作成:テーブルコンストラクター
DAXのテーブルコンストラクターは、中かっこ” { } “を使ってテーブルをを直接定義する機能です。基本構文は以下の通りです。
= {
(DATA_1_1 , DATA_1_2 , … ),
(DATA_2_1 , DATA_2_2 , … ),
(DATA_3_1 , DATA_3_2 , … ), …
}
//行数、列数は自由に決定できる。
サンプルテーブルを作ってみます。
モデリングタブから、新しいテーブルを選択しデータを入力。

入力するサンプルデータは引用。
Sample_table = {
(1.5, DATE(2017, 1, 1), CURRENCY(199.99), "A"),
(2.5, DATE(2017, 1, 2), CURRENCY(249.99), "B"),
(3.5, DATE(2017, 1, 3), CURRENCY(299.99), "C")
}

入力した内容に応じて、適当なデータ型が自動で選定されています。また、列名はValue1、Value2、Value3、、、というような命名となります。
任意のデータ型、列名を使用したい場合は、下記のDATATABLE関数を使用しましょう。
関数結果を埋め込んで動的なテーブル作成もできます。
DAX関数でテーブルを作成:DATATABLE関数
DATATABLE関数を使用すれば、データ型、列名を指定してテーブルを作成することができます。
=DATATABLE( “列名1” , データ型1 , “列名2” , データ型2 , ….,
{
{“DATA_1_1” , “DATA_1_2” , … },
{“DATA_2_1” , “DATA_3_2” , … },
{“DATA_3_1” , “DATA_3_2” , … }, …
}
)
//行数、列数は自由に決定できる。
同様に、モデリングタブから新しいテーブルを選択しデータを入力。
Sample_table2 =
DataTable(
"Num", DOUBLE, "Date", DATETIME, "Sales amount", CURRENCY, "Category", STRING,
{
{1.5, "2017/1/1", 199.99, "A"},
{2.5, "2017/1/2", 249.99, "B"},
{3.5, "2017/1/3", 299.99, "C"}
}
)

列名の後で指定するデータ型は、BOOLEAN(真偽), CURRENCY(通貨), DATETIME(日付), DOUBLE(小数), INTEGER(整数), STRING(テキスト)から選択できます。
M言語でテーブルを作成:「データの入力」機能
Power BIの「データの入力」機能を使うと、M言語を使用して、Power Queryエディター上のGUI操作だけでテーブルを定義できます。
ホームタブのデータ入力をクリック。

データの作成画面から、列名、データ、テーブルの名前を自由に選択できます。
列、行を追加したい場合は、+ボタンを押すことでテーブルを拡張できます。

入力後は読み込みボタンを押すと、テーブルの作成ができます。M言語は自動で生成されます。
また、一度作成したテーブルを編集したい場合は、Power Query エディタから行います。
クエリの設定内の適用したステップの中にあるソースの歯車マークをクリック。入力時に使用したテーブルの作成画面が再度出てくるので、変更、追加、削除といった修正が可能です。

上記の様に、GUI上で直観的にテーブルを作成・編集することができます。
また、ExcelやCSVファイルで準備のあるデータをテーブルごとコピペして、入力することもできるので操作はDAX関数よりも簡単ですね。データソースがない状態でも、わずかな手入力でテーブルをすぐに用意できるのでテストやデモ時に便利です。
まとめ
Power BIでのテーブル作成は、DAXとM言語の2通りがあります。選び方のポイントは以下の通りです。
- DAX関数:動的テーブル生成が得意。計算列やパラメーター用に便利
- M言語(データの入力):GUIでの手動入力に特化。少量のサンプルデータ作成に最適
どちらも外部ソース不要でテーブルを定義できるので、シナリオ分析やテストデータの作成に役立ちます。
まずは小さなテーブルから試し、作成するレポート要件や更新頻度に合わせて使い分けることを推奨します。