Power Query ではブック全体だけでなく、特定シートを直接データソースとして扱えます。本記事では、外部 Excel ブックのシート “SheetSales” を読み込み、Staff
列が “Hayashi Taro” の行のみ抽出する M コード例と操作手順を解説いたします。
目次
使用シナリオ
項目 | 内容 |
---|
参照ブック | C:\Data\SalesData.xlsx |
対象シート | Sheet 名: SheetSales |
フィルター列 | Staff |
抽出条件 | Staff 列 = “Hayashi Taro” |
M コード(詳細エディターに貼り付ける)
let
// 対象ブックを読み込み
XlFile = File.Contents("C:\Data\SalesData.xlsx"),
// Excel.Workbook 関数で全オブジェクトを展開し、
// kind が "Sheet"、Name が "SheetSales" のテーブルを取得
Source = Excel.Workbook(XlFile, true)
{[Name = "SheetSales", Kind = "Sheet"]}[Data],
// 担当者が "Hayashi Taro" の行のみ抽出
Filtered = Table.SelectRows(Source, each [Staff] = "Hayashi Taro")
in
Filtered
操作手順
- Power Query の起動
- Excel メニュー「データ」タブ → 「データの取得」→「ファイル」→「Excel ブック」から、
SalesData.xlsx
を選択します。
- ナビゲーターが表示されたら、左下の 「データの変換」 をクリックし、Power Query エディターへ進みます。
- 詳細エディターで M コードを置換
- 画面上部「ホーム」リボン → 「詳細エディター」を開き、上記 M コードを全て貼り付けます。
- 「完了」を押すと、プレビューに担当者が“Hayashi Taro”の行のみが表示されます。
- データの読み込み
- プレビューを確認後、「閉じて読み込む」を押すと、シートまたはテーブルとして結果が配置されます。
M コードの解説
ステップ | 説明 |
---|
File.Contents | 指定パスのブックをバイナリとして読み込みます。ネットワーク経由の場合も同様です。 |
Excel.Workbook | ブック内のシート・テーブル・名前付き範囲を一覧として返します。第 2 引数 true は型推論の有無を示します。 |
[Name = "SheetSales", Kind = "Sheet"] | 目的のシートをリストから抽出し、[Data] で本体データを取得します。 |
Table.SelectRows | Staff 列の値でフィルター処理を行います。複数条件は and や or で拡張できます。 |
応用ポイント
目的 | 実装例 |
---|
日付列で最新月のみ抽出 | each [Date] >= Date.StartOfMonth(Date.AddMonths(DateTime.LocalNow(), -1)) |
必要列のみ残す | Table.SelectColumns で列名を配列指定し、不要列を除外します。 |
フォルダー内の複数ブックを統合 | Folder.Files を用いて各シートを展開し、Table.Combine で結合します。 |
まとめ
- シート単位で読み込む場合は、
Excel.Workbook
の返すリストから Kind = "Sheet"
を指定すると確実です。
- 担当者など可変の抽出条件は文字列部分のみを変更することで再利用性が向上します。
- 取り込んだ後は Power Query の更新機能で再読込が可能なため、月次・週次のデータ確認が効率化されます。