BI探検ノート

Power Query で、条件列を作る方法(金額が空(null)の行だけ Error になった)

約5分

濵口 翔長崎で、Power BI のつまずきを記録しています
目次
  1. 前提
  2. 手順: 条件列
  3. 金額が 1000 ちょうどの行と、null の行
  4. 直し方: null の場合を先に書く
  5. 公式の記載との照合
  6. この記事で確認できたこと・できていないこと
  7. 参考

確認日2026年10月24日。Power BI Desktop(日本語版、2.159.883.0)で、ダミーの CSV を使って確かめました。確認できていないことは、末尾にまとめました。

金額によって、「高額」「通常」と分類する列を、Power Query の「条件列」で作れます。ただ、金額が空(null)の行だけが、Error になりました。直し方も、確かめました。

結論(30秒版)

  • 「列の追加」タブの「条件列」で、「金額が 1000 以上なら高額、それ以外は通常」の列ができました。1000 ちょうどは、「高額」になりました。
  • でも、金額が null の行は、Error になりました(「通常」にはなりません)。
  • 「カスタム列」で、if [金額] = null then "不明" else if [金額] >= 1000 then "高額" else "通常" と、null の場合を先に書くと、Error が消えました。

前提

ダミーの CSV(6行。あとから2行足して、8行)を、Power Query エディターで開きました。列は、注文日時、店舗(2列に分割済み)、金額です。足した2行は、金額がちょうど 1000 の行と、金額が空の行です。

手順: 条件列

  1. 「列の追加」タブの「条件列」を押します。
  2. 「新しい列名」に「金額区分」と入れます。
  3. 条件を入れます。列名は「金額」、演算子は「次の値以上:」、値は「1000」、出力は「高額」です。(演算子の一覧は、「指定の値に等しい」「指定の値と等しくない」「次の値より大きい:」「次の値以上:」「次の値より小さい」「次の値以下」でした。)
  4. 「それ以外の場合」に、「通常」と入れて、「OK」を押します。

「条件列の追加」のダイアログ。新しい列名は金額区分。条件は、列名が金額、演算子が「次の値以上:」、値が1000、出力が高額。それ以外の場合は通常

式は、次のとおりです。

Table.AddColumn(変更された型1, "金額区分", each if [金額] >= 1000 then "高額" else "通常")

結果は、1200 と 1500 と 2100 が「高額」、800 と 950 と 700 が「通常」でした。

条件列を足した表(6行)。1200、1500、2100は高額。800、950、700は通常

新しい条件列には、データ型がついていません(列の名前の左のアイコンが「ABC123」)。Microsoft Learn にも、同じことが書かれています(確認日 2026年10月24日)。必要なら、あとで型を決めます。

金額が 1000 ちょうどの行と、null の行

CSV に、金額が 1000 の行と、金額が空の行を足して、「プレビューの更新」を押しました。

条件列を足した表(8行)。7行目は金額1000で高額。8行目は金額がnullで、金額区分は Error

  • 7行目(金額 1000)は、「高額」でした。「次の値以上」は、1000 ちょうどを含みます。
  • 8行目(金額 null)は、Error でした。「通常」ではありません。

null と 1000 を比べた結果は、true でも false でもなく、null になります。M 言語の if は、条件が true か false でないと、エラーにする、と Microsoft Learn に書かれています(確認日 2026年10月24日。Conditionals のページ)。私は、これが原因だと読んでいます(null との比較の結果を、式で直接確かめたわけではありません)。

直し方: null の場合を先に書く

条件列のダイアログでは、null を条件にする入力が、私には、見つけられませんでした(確かめきれていません)。そこで、「カスタム列」で、式を直接書きました。

  1. 条件列のステップを削除します。
  2. 「列の追加」タブの「カスタム列」を押します。
  3. 新しい列名に「金額区分」、式に、次を入れて、「OK」を押します。
if [金額] = null then "不明" else if [金額] >= 1000 then "高額" else "通常"

「カスタム列」のダイアログ。新しい列名は金額区分。式は if [金額] = null then "不明" else if [金額] >= 1000 then "高額" else "通常"。「構文エラーが検出されませんでした」と出ている

結果は、8行目が「不明」になり、Error は消えました。ほかの行は、変わりませんでした。

カスタム列を足した表(8行)。8行目は金額がnullで、金額区分は「不明」。7行目の金額1000は高額

式は、次の形になりました(ステップ名は「追加されたカスタム」)。

Table.AddColumn(変更された型1, "金額区分", each if [金額] = null then "不明" else if [金額] >= 1000 then "高額" else "通常")

ポイントは、null の確認を、いちばん最初に置くことです。

公式の記載との照合

Microsoft Learn(英語版、確認日 2026年10月24日)と、私の観察を、突き合わせました。

  • 条件列の作り方: 「列の追加」タブの「条件列」で、列名、演算子、値、出力を決める、という流れは、私の画面と同じでした。条件は、上から順に調べられる、とも書かれています。
  • データ型: 新しい条件列には、データ型が決まっていない、と書かれています。私の画面でも、同じでした。
  • if の条件: 条件の値が、論理値でないと、エラーになる、と書かれています。null の行が Error になったことと、矛盾しません。

この記事で確認できたこと・できていないこと

確認日: 2026年10月24日。Power BI Desktop(Windows、日本語版、2.159.883.0、未サインイン)、ダミーの CSV 8行。

確認できたこと

  • 条件列で、「1000以上は高額、それ以外は通常」の列ができること(1000 ちょうどは高額)
  • 金額が null の行が、Error になること
  • カスタム列で、null の場合を先に書くと、Error が消えること

確認できていないこと

  • 条件列のダイアログで、null を条件にする方法(あるかもしれません)
  • テキストの列や、日付の列での、条件列の動き
  • 複数の条件(「句の追加」)を使った場合
  • 条件列やカスタム列に、データ型をつけたあとの動き
  • Power BI サービスでの動作、英語版での名称

参考

この記事で使った用語

Power BI Desktop
Windows で動く、レポートを作るためのアプリです。データの取り込みとモデルの作成、レポートの作成に向いています。

用語集をすべて見る