Power Query では Table.SelectRows
と Table.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
コード解説
ステップ | 説明 |
---|
Source | Excel.CurrentWorkbook() でブック内テーブルを取得し、[Name="SlipData"] で該当データを選択します。 |
FilteredRows | Table.SelectRows を用い、Salesperson 列が “Hayashi Taro” に一致する行だけを残します。 |
SelectedCols | Table.SelectColumns で必要列のみを保持し、不要列を削除します。 |
操作手順
- Power Query エディターの起動
- データ タブから「テーブル/範囲から」を選択し、任意のデータを取り込んで「データの変換」をクリックします。
- 詳細エディターで M コードを置換
- エディター上部の「詳細エディター」を開き、既存コードをすべて削除して上記コードを貼り付けます。
- プレビュー確認と読み込み
- 担当者が “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 の更新ボタンをクリックするだけで、常に最新の抽出結果を取得できるため、定期レポート作成やダッシュボード更新の工数削減に役立ちます。