Power Queryは、ExcelやPower BIでデータを効率よく整形・加工できる強力なツールです。中でも「if」関数を使えば、条件に応じて値を分岐させることができ、複雑なデータ処理を簡単に自動化できます。
この記事では、Power Queryの「if」構文の基本から、複数条件の指定方法、ネスト構文、そして実務で使える応用例までを、初心者にもわかりやすく解説します。
Power Queryの「if」は、特定の条件を満たす場合に値を返す「条件分岐関数」です。
ExcelのIF関数と同じように使えますが、構文の書き方が少し異なります。Power Query(M言語)では次のように書きます。
if 条件 then 真の場合の値 else 偽の場合の値
if [売上] >= 100 then "合格" else "不合格"
このように1行で条件判定と出力をまとめられるため、シンプルで直感的です。
Power Queryの「if」文を使うときは、次のポイントを押さえておく必要があります。
ifのあとに必ずthenとelseを続けます。elseを省略するとエラーになります。=, <>, >, <, >=, <=などを使用します。"完了", "未完了" のように書きます。単純な条件分岐だけでなく、「かつ(AND)」や「または(OR)」を組み合わせて、複数条件を処理することも可能です。
2つの条件を同時に満たす場合に真とする:
if [売上] >= 100 and [利益] > 0 then "優良" else "改善必要"
どちらか一方を満たせば真とする:
if [顧客区分] = "A" or [顧客区分] = "B" then "重要顧客" else "一般顧客"
条件が3つ以上ある場合は、「if」を入れ子にして書きます。
ExcelのIFS関数のような使い方をPower Queryでも実現できます。
if [点数] >= 80 then "A"
else if [点数] >= 60 then "B"
else if [点数] >= 40 then "C"
else "D"
if [在庫数] = 0 then "欠品" else "在庫あり"
在庫管理などでよく使うパターンです。
if [状態] = "完了" then "済" else "未"
文字列比較では、ダブルクォーテーションを忘れずに。
if [日付] >= #date(2025, 1, 1) then "新年度" else "前年"
#date(年, 月, 日) の形式で日付を指定します。
if [売上] >= 100 then "合格" else "不合格"Power Queryでは「カスタム列」だけでなく、「条件列」を使うとGUIで同様の設定もできます。
ただし柔軟な条件を組むなら「カスタム列」でM言語を直接書くほうが便利です。
Power Queryでは空白セルは「null」として扱われます。
そのため、Excelの「=””」とは異なり、次のように書く必要があります。
if [日付] = null then "未入力" else "入力済み"
ただし、これでは常に「false」になることがあります。
正しい書き方は「Value.IsNull」関数を使う方法です。
if Value.IsNull([日付]) then "未入力" else "入力済み"
if Text.StartsWith([商品名], "A") then "A商品" else "その他"
→ 「A」で始まる商品を抽出。
if [数量] > 10 then [単価] * 0.9 else [単価]
→ 数量が多い場合に自動で割引。
if Date.Month([日付]) = 12 then "年末" else "通常月"
→ 月ごとに条件分岐してレポート分類。
Power Queryではelseが必須です。
→ if 条件 then 値 else 値 の形に必ずする。
例:数値型と文字列型を混在させるとエラー。
→ 必要に応じてNumber.ToText()やText.ToNumber()で変換。
→ Value.IsNull()を使う。
if [売上] >= 500000 then "S"
else if [売上] >= 300000 then "A"
else if [売上] >= 100000 then "B"
else "C"
if [購入回数] >= 10 then "リピーター"
else if [購入回数] >= 3 then "通常顧客"
else "新規顧客"
if [注文日] >= #date(2025,10,1) and [注文日] <= #date(2025,10,31)
then "ハロウィンキャンペーン"
else "通常注文"
Power Queryの「if」関数は、データを条件に応じて自動的に分類・変換するための強力なツールです。
単純な条件から複数条件・ネスト構文・日付やnull判定まで使いこなせば、Excelの手作業を大幅に減らすことができます。
ポイントは次の3つです:
Value.IsNull()を使うPower Queryを活用すれば、データ整形の効率が格段に上がります。
日常業務の自動化やレポート作成にもぜひ取り入れてみてください。