PowerBI チートシート

Measure用のテーブルを作る

レポートビューで「データの入力」を選択。Measure Tableという名前にする。
メジャーを適当に作成。
最初からできているColumnを削除する。
基本的に明示的なメジャーはここにしまっておくとよい。
この方法で作ったテーブルはクエリエディタ(バックエンド)からも参照ができるけど、中身が見れたりするわけじゃないみたいだ。

KPIを使っての前月比の表示

Value

Total Orders = DISTINCTCOUNT('Table'[Order])

Trend

Start of Month

Target

Previous Month Orders = 
  CALCULATE(
    [Total Orders],
    DATEADD(
      'Calendar Table'[Date],
      -1,
      MONTH
    )
  )

Value, Trend, Targetに入れるメジャーを間違えがちなのでメモ。
前月の表示は上記で、移動和(running)を計算したいときはDATESINPERIOD関数を使用する。
こういった時間操作関数はタイムインテリジェンス関数としてまとめられている。

TOP1をカードで表示するとき

TOP1を算出するフィルターの結果が複数になる場合、正しい表示がされなくなる。
こんな場合はデータのメジャーにHASONEVALUEを使って解決する。

Fixed Value = 
IF(
  HASONEVALUE(
    'Table'[key]
  ),
  [Metrix],
  "-"
)

こうなっていれば算出する数値がおかしいときは – が表示される。
また、テキスト表示をする場合は

Fixed Text =
IF(
  HASONEVALUE(
    'Table'[key]
  ),
  MAX(
    'Table'[key]
  ),
  "Multiple Text"
)

などとして複数あることを知らせるとよい。

イテレータ関数とRELATED

SUMXのようなイテレータ関数を使うときは、SUMX(テーブル、テーブルの行ごとに関する評価される式)になっているので、違うテーブルデータの参照ができない。参照するには

Total =
SUMX(
  DataTable,
  DataTable[quantity] *
  RELATED(
    Products[price]
  )
)

のようにRELATEDを介してアクセスするとよい。