新しい列を作る ― 条件列・インデックス・カスタム列・例からの列
このページのゴール
Power Queryの「列の追加」タブにある主要な4つの機能(条件列・カスタム列・インデックス列・例からの列)を使いこなし、データに新しい列を追加できるようになることです。特に「条件列」はExcelのIF関数に代わる機能であり、GUIだけで完結できるため重点的に解説します。
「列の追加」タブの全体像
「列の追加」タブには以下のボタンが並んでいます。このページで扱うのは太字の4つです。
| ボタン | 何ができるか | M言語の知識 | このページでの扱い |
|---|---|---|---|
| 条件列 | IF的な分岐ロジックで新列を作る | 不要(GUIだけ) | 詳しく解説 |
| カスタム列 | M言語の数式で自由に新列を作る | 少し必要 | 基本パターンを解説 |
| インデックス列 | 連番を振る | 不要 | 詳しく解説 |
| 例からの列 | 入力例からPower Queryが数式を自動推定 | 不要 | 詳しく解説 |
| 重複する列 | 選択した列のコピーを作る | 不要 | 簡単に触れる |
| 列のマージ | 複数列を1つに結合(前ページで解説済み) | 不要 | 省略 |
| テキスト系(書式・抽出など) | 前ページのテキスト操作と同じ(新列として追加) | 不要 | 省略 |
条件列 ― GUIだけでIF的な列を作る
ExcelのIF関数(=IF(A1>=70,"合格","不合格"))と同じことを、数式を一切書かずにダイアログだけで実現できます。Power Queryでもっとも活用場面の多い機能の一つです。
基本操作:1つの条件
操作手順
1. 列の追加 タブ → 条件列 をクリックします。
2. 「条件列の追加」ダイアログが表示されます。
3. 新しい列名を入力します(例:「合否」)。
4. 条件を設定します:
| 設定項目 | 説明 | 例 |
|---|---|---|
| 列名 | 判定に使う列 | 点数 |
| 演算子 | 比較条件 | 次の値以上 |
| 値 | 比較する値 | 70 |
| 出力 | 条件が真のときの値 | 合格 |
| それ以外の場合 | 条件が偽のときの値 | 不合格 |
5. 「OK」をクリックすると、新しい列「合否」が追加されます。
Before
| 氏名 | 点数 |
|---|---|
| 田中 | 85 |
| 佐藤 | 60 |
| 鈴木 | 72 |
After
| 氏名 | 点数 | 合否 |
|---|---|---|
| 田中 | 85 | 合格 |
| 佐藤 | 60 | 不合格 |
| 鈴木 | 72 | 合格 |
複数条件(ネストIF相当)
ExcelでIF関数を何重にもネストしていた処理も、条件列なら「規則の追加」ボタンで視覚的に積み重ねるだけです。
操作手順(例:A評価・B評価・C評価)
1. 「条件列の追加」ダイアログを開きます。
2. 1つ目の条件:点数 が 次の値以上 80 → 出力「A」
3. 「規則の追加」ボタンをクリックします。
4. 2つ目の条件:点数 が 次の値以上 60 → 出力「B」
5. それ以外の場合:「C」
6. 「OK」をクリックします。
条件は上から順に評価されます。1つ目の条件に当てはまればその出力が採用され、当てはまらなければ次の条件に進みます。つまりExcelの =IF(A1>=80,"A",IF(A1>=60,"B","C")) とまったく同じロジックを、ネストなしの見やすいUIで設定できます。
Before
| 氏名 | 点数 |
|---|---|
| 田中 | 85 |
| 佐藤 | 60 |
| 鈴木 | 45 |
| 高橋 | 92 |
After
| 氏名 | 点数 | 評価 |
|---|---|---|
| 田中 | 85 | A |
| 佐藤 | 60 | B |
| 鈴木 | 45 | C |
| 高橋 | 92 | A |
使える演算子
| 演算子 | 意味 | 使用例 |
|---|---|---|
| 等しい | 完全一致 | 部署 が 等しい 「営業部」 |
| 等しくない | 不一致 | ステータス が 等しくない 「削除済み」 |
| 次の値より大きい | > | 売上 が 次の値より大きい 1000000 |
| 次の値以上 | >= | 点数 が 次の値以上 70 |
| 次の値より小さい | < | 在庫 が 次の値より小さい 10 |
| 次の値以下 | <= | 金額 が 次の値以下 5000 |
| で始まる | 前方一致 | 商品名 が で始まる 「プレミアム」 |
| で始まらない | 前方不一致 | ― |
| で終わる | 後方一致 | ファイル名 が で終わる 「.csv」 |
| で終わらない | 後方不一致 | ― |
| を含む | 部分一致 | 住所 が を含む 「東京」 |
| を含まない | 部分不一致 | 備考 が を含まない 「テスト」 |
「売上 >= 100万 かつ 部署 = 営業部」のようなAND条件や、「東京 または 大阪」のようなOR条件は、条件列のダイアログでは直接設定できません。こうした複合条件が必要な場合は、次に紹介する「カスタム列」でM言語の if文を使います。
カスタム列 ― M言語で自由に列を作る
条件列のGUIだけでは対応できない場合(AND/OR条件、計算式、複雑な文字列加工)に使います。「M言語入門」は後のページで扱いますが、ここではすぐに使える基本パターンだけ紹介します。
操作手順
1. 列の追加 タブ → カスタム列 をクリックします。
2. ダイアログが表示されます。上部に「新しい列名」、中央に「カスタム列の式」を入力する欄があります。
3. 右側の「使用できる列」リストから列名をダブルクリックすると、数式欄に [列名] の形式で挿入されます。
4. 数式を入力して「OK」。
パターン1:四則演算
「単価×数量」の計算結果を新しい列に出力します。Excel の =A1*B1 と同じです。
パターン2:AND条件のIF
M言語の if はすべて小文字です。IF / THEN / ELSE と大文字で書くとエラーになります。and も or も小文字です。
パターン3:OR条件のIF
パターン4:テキスト結合(区切り記号付き)
& で文字列を連結できます。列のマージと同じ結果ですが、より複雑な組み合わせ(固定文字+列値+列値など)に対応できます。
数式を入力すると、ダイアログの下部に「構文エラーは検出されませんでした」または「エラーが検出されました」と表示されます。エラーの場合はOKボタンがグレーアウトして押せないため、数式を修正してください。よくある原因は、列名のスペルミス、大文字のIF、and/or の前後のスペース忘れです。
インデックス列 ― 連番を振る
全行に通し番号を付ける操作です。ExcelのROW関数に近い役割ですが、Power Queryではデータの並び順に基づいて番号が振られます。
操作手順
1. 列の追加 タブ → インデックス列 のドロップダウンをクリックします。
2. 開始番号を選択します:
| 選択肢 | 動作 |
|---|---|
| 0から | 0, 1, 2, 3, … の連番 |
| 1から | 1, 2, 3, 4, … の連番 |
| カスタム… | 開始値と増分を自由に設定(例:100から10刻み → 100, 110, 120…) |
3. 右端に「インデックス」という列が追加されます。
インデックス列は、追加した時点での行の並び順に基づいて番号が振られます。後から並べ替えを追加すると、インデックスの番号はそのまま付いてきます(再計算はされません)。並べ替え後の順序で番号を振りたい場合は、並べ替えのステップの後にインデックス列を追加してください。
使いどころ
インデックス列は単なる行番号付けだけでなく、「元の並び順を保持する」目的でも使えます。データを加工する前にインデックス列を追加しておけば、加工後に元の順序に戻したいときにインデックス列で並べ替えるだけで復元できます。
例からの列 ― 入力例から数式を自動推定
Power Queryのユニークな機能です。新しい列の最初の数行に「こういう結果がほしい」という例を手入力すると、Power Queryがパターンを学習して残りの行を自動的に埋めてくれます。
操作手順
1. 列の追加 タブ → 例からの列 → すべての列からをクリックします。
2. 右端に空の新列が追加され、編集モードになります。
3. 最初のセルに期待する出力を入力します(例:元データが「2026/03/21」の行に「2026年3月」と入力)。
4. Enterを押すと、Power Queryがパターンを推定して他の行を自動入力します。
5. 推定結果が正しければ「OK」をクリックします。間違っている行があれば、その行にも正しい値を手入力して推定精度を上げます。
よくある使用例
| 元データ | 入力する例 | Power Queryが推定する処理 |
|---|---|---|
| 2026/03/21 | 2026年3月 | 年と月の抽出+書式整形 |
| 田中 太郎 | T.Tanaka | 姓のローマ字頭文字+名のローマ字(※日本語では精度が下がることがある) |
| ABC-001 | ABC | ハイフンより前の文字列を抽出 |
| 東京都新宿区 | 東京都 | 先頭3文字を抽出 |
日付の書式変換(「2026-03-21」→「3/21」など)や、複数列の情報を組み合わせた列の作成で特に便利です。M言語の数式を書かなくても、Power Queryが自動で適切なM関数を生成してくれます。生成されたM関数は数式バーで確認でき、M言語の学習材料にもなります。
パターン推定は万能ではありません。特に日本語のテキストや複雑なパターンでは誤推定が起きることがあります。必ず結果をスクロールして全体を確認し、間違っている行があれば追加の例を入力して精度を上げてください。どうしても正しく推定されない場合は、カスタム列や抽出/分割操作を使いましょう。
重複する列 ― 列のコピーを作る
元の列を残したまま加工したいとき、まず列のコピーを作ってからコピー側を加工するという安全な方法で使います。
操作手順
1. コピーしたい列のヘッダーをクリックして選択します。
2. 列の追加 タブ → 重複する列(または右クリック →「列の複製」)をクリックします。
3. 右端に「列名 - コピー」という列が追加されます。
たとえば「商品コード」列の一部を抽出したいが、元の商品コードも残しておきたい場合、まず「重複する列」でコピーを作り、コピーされた列に対して「変換」タブの「抽出」を実行すれば、元の商品コードはそのまま残ります。ただし前ページで説明したとおり、「列の追加」タブの「抽出」を使えばそもそもコピーは不要です。「変換」タブで操作する前の保険として覚えておいてください。
実践例 ― 売上データにランクと連番を付ける
売上データに「売上ランク」列と「連番」列を追加する例です。
サンプルデータ
| 商品名 | カテゴリ | 売上 |
|---|---|---|
| 商品A | 食品 | 1500000 |
| 商品B | 雑貨 | 800000 |
| 商品C | 食品 | 3200000 |
| 商品D | 家電 | 500000 |
Step 1:売上ランクの条件列を追加
列の追加 → 条件列 → 列名「売上ランク」
条件1:売上 が 次の値以上 2000000 → 出力「S」
規則の追加 → 条件2:売上 が 次の値以上 1000000 → 出力「A」
規則の追加 → 条件3:売上 が 次の値以上 500000 → 出力「B」
それ以外の場合:「C」
Step 2:売上の降順で並べ替え
「売上」列のドロップダウン → 降順で並べ替え
Step 3:インデックス列を追加(1から)
列の追加 → インデックス列 → 1から
After
| インデックス | 商品名 | カテゴリ | 売上 | 売上ランク |
|---|---|---|---|---|
| 1 | 商品C | 食品 | 3200000 | S |
| 2 | 商品A | 食品 | 1500000 | A |
| 3 | 商品B | 雑貨 | 800000 | B |
| 4 | 商品D | 家電 | 500000 | B |
3ステップで、売上ランク付き&降順ランキングのデータが完成しました。
どの機能を使うべきか ― 判断フローチャート
新しい列を作りたいとき、どの機能を選べばよいか迷ったら、次の順序で判断してください。
① 「IF的な条件分岐だけでよいか?」→ はい → 条件列(M言語不要)
② 「連番を振るだけでよいか?」→ はい → インデックス列
③ 「やりたいことを言葉では説明できるが数式は書けないか?」→ はい → 例からの列(入力例で推定させる)
④ 「四則演算や複合条件(AND/OR)が必要か?」→ はい → カスタム列(M言語の if 文を使用)
ほとんどの実務シーンは①と②でカバーできます。③は便利ですが推定精度に限界があるため、うまくいかなければ④に切り替えてください。
まとめ
「列の追加」タブは、元のデータを壊さずに新しい情報を付加するためのタブです。このページのポイントを振り返ると、条件列はExcelのIF関数をGUIで視覚的に設定できる機能で、規則を追加することでネストIFも簡単に実現できること。カスタム列はM言語を使う必要がありますが、四則演算と if/then/else だけ覚えれば実用に足りること。インデックス列は並べ替えの後に追加することで正しい順序の連番が振れること。例からの列はM言語を知らなくても複雑な変換が作れる可能性がある一方、推定が外れることもあるため確認が必須であること。これらを使い分ければ、Excelの関数で苦労していた列追加の作業が格段に楽になります。