Power Query で担当者別データを抽出し必要列だけを残す方法

Power Query では Table.SelectRowsTable.SelectColumns を組み合わせることで、対象行を効率的に絞り込みつつ、必要な列だけを保持できます。以下では、ブック内テーブル SlipData から担当者列が Hayashi Taro に一致するレコードを抽出し、列 Salesperson・Customer・Date・Subtotal のみを出力する手順を解説いたします。


目次

使用環境

項目内容
Excel バージョンMicrosoft 365/2019/2016
参照テーブル名SlipData
抽出条件Salesperson = "Hayashi Taro"
抽出列Salesperson / Customer / Date / Subtotal

M コード(詳細エディターに貼り付け)

let
    // ブック内テーブル「SlipData」を読み込み
    Source = Excel.CurrentWorkbook(){[Name = "SlipData"]}[Content],

    // 担当者が "Hayashi Taro" の行のみ抽出
    FilteredRows = Table.SelectRows(
        Source,
        each [Salesperson] = "Hayashi Taro"
    ),

    // 必要列のみ選択
    SelectedCols = Table.SelectColumns(
        FilteredRows,
        {"Salesperson", "Customer", "Date", "Subtotal"}
    )
in
    SelectedCols

コード解説

ステップ説明
SourceExcel.CurrentWorkbook() でブック内テーブルを取得し、[Name="SlipData"] で該当データを選択します。
FilteredRowsTable.SelectRows を用い、Salesperson 列が “Hayashi Taro” に一致する行だけを残します。
SelectedColsTable.SelectColumns で必要列のみを保持し、不要列を削除します。

操作手順

  1. Power Query エディターの起動
    • データ タブから「テーブル/範囲から」を選択し、任意のデータを取り込んで「データの変換」をクリックします。
  2. 詳細エディターで M コードを置換
    • エディター上部の「詳細エディター」を開き、既存コードをすべて削除して上記コードを貼り付けます。
  3. プレビュー確認と読み込み
    • 担当者が “Hayashi Taro” の行のみが表示されているか確認し、「閉じて読み込む」をクリックします。

応用ポイント

要件実装例
複数条件で抽出each [Salesperson] = "Hayashi Taro" and [Region] = "East"
部分一致を利用Text.Contains([Customer], "Inc.") を条件式で使用します。
日付範囲を指定each [Date] >= #date(2025,1,1) and [Date] <= #date(2025,12,31)

まとめ

  • Table.SelectRows で行レベルのフィルターを行い、Table.SelectColumns で列を整理すると、クエリの再利用性とパフォーマンスが向上いたします。
  • 抽出条件や列名を変数化すれば、別担当者や別列構成でも簡単に転用できます。
  • Power Query の更新ボタンをクリックするだけで、常に最新の抽出結果を取得できるため、定期レポート作成やダッシュボード更新の工数削減に役立ちます。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次