[Power BI] DAX関数・M言語でテーブルを0から定義する方法

ブログのアイキャッチ。DAX関数・M言語でテーブルを0から定義する方法

このページでは、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"}
        }
    )
DATATABLE関数を使用したサンプルコード。

列名の後で指定するデータ型は、BOOLEAN(真偽), CURRENCY(通貨), DATETIME(日付), DOUBLE(小数), INTEGER(整数), STRING(テキスト)から選択できます。

M言語でテーブルを作成:「データの入力」機能

Power BIの「データの入力」機能を使うと、M言語を使用して、Power Queryエディター上のGUI操作だけでテーブルを定義できます。

ホームタブのデータ入力をクリック。

データの入力ボタン

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

テーブルを作成するGUI

入力後は読み込みボタンを押すと、テーブルの作成ができます。M言語は自動で生成されます。

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

テーブルの編集方法

上記の様に、GUI上で直観的にテーブルを作成・編集することができます。
また、ExcelやCSVファイルで準備のあるデータをテーブルごとコピペして、入力することもできるので操作はDAX関数よりも簡単ですね。データソースがない状態でも、わずかな手入力でテーブルをすぐに用意できるのでテストやデモ時に便利です。

まとめ

Power BIでのテーブル作成は、DAXとM言語の2通りがあります。選び方のポイントは以下の通りです。

  • DAX関数:動的テーブル生成が得意。計算列やパラメーター用に便利
  • M言語(データの入力):GUIでの手動入力に特化。少量のサンプルデータ作成に最適

どちらも外部ソース不要でテーブルを定義できるので、シナリオ分析やテストデータの作成に役立ちます。
まずは小さなテーブルから試し、作成するレポート要件や更新頻度に合わせて使い分けることを推奨します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

技術系職社会人:業務でPowerBI を活用/データ分析/インドア派/趣味:ゲーム、カプセルトイ収集/[III]Mosnterが好き/勉強中:Blender/日々習得した内容をアウトプットしていきます!

目次