Windows版ExcelのPower Queryで、サンプルデータの変換結果を確認しました。
確認日:2026年10月19日(日本時間)
確認した内容と、確認していない範囲
確認した範囲
- 掲載M全文を専用ExcelのPower Queryエンジンで実行
- 入力例から独立に計算した期待表と列名・全行の値を照合
未確認・対象外
- GUIクリック手順・他OS・他Excel版・実業務データ
数式・コードの処理結果を確認した記録です。記事の全画面操作を確認したものではありません。Excel等のバージョンや検証方法の詳細は実行確認の記録(JSON)で参照できます。
できあがるもの
完成表の列は 値/前値、値は [[10,null],[15,10],[12,15]] です。前の値が隣にあると差分確認の開始点が分かります。 グループ化の結果は行順が変わる場合があるためキーと値の組み合わせで照合します。日付・日時・durationは表示形式が異なっても同じ値か型も確認してください。
始める前に
- Windows版Excel for Microsoft 365に含まれるPower Queryエディターを対象とします。Excelの画面名・メニューは更新状態で異なる場合があります。Power BIやMac版の画面操作は本記事では確認していません。
- 新しい検証ブックで空のクエリを一つ作成します。コード中の架空表だけを使う自己完結例であり、実ファイル・Web・データベースへの接続権限や認証情報は必要ありません。
入力表は 値 の1列、3行です。値は [[10],[15],[12]] です。表は以下のMコードのSourceに埋め込まれているので、シート上の表を別に作る必要はありません。
| 値 |
|---|
| 10 |
| 15 |
| 12 |
掲載手順と同じ小さな入力例です。まずは、この値で試してください。
手順
- [データ]から[データの取得]→[その他のデータソースから]→[空のクエリ]を開きます。エディターの[詳細エディター]を開く前に、既存の業務クエリではなく新しい検証用クエリを選んでいることを確認します。入力順が時系列になっている前提です。最初の行は比較対象がないためnullを残します。
- 詳細エディターの内容を次の完全なMコードへ置き換えます。Sourceが架空の入力表、Resultが変換結果です。日本語の列名や大文字小文字、引用符を変えずに貼り付けて[完了]を押します。
let Source = #table(type table [#"値" = number], { {10}, {15}, {12} }), Result = let Values=Source[値], Indexed=Table.AddIndexColumn(Source,"位置",0,1,Int64.Type), Added=Table.AddColumn(Indexed,"前値",each if [位置]=0 then null else Values{[位置]-1},type nullable number) in Table.RemoveColumns(Added,{"位置"}) in Result - 適用したステップのSourceをクリックして入力3行を確認し、Resultへ戻して完成表と比べます。前の値が隣にあると差分確認の開始点が分かります。 出力列は 値/前値、期待行数は3件です。nullと空文字、0を別の値として確認してください。
- [閉じて読み込む]の読み込み先を新しいシートにして、元の入力を持つシートへ上書きしないようにします。読み込み後に[すべて更新]を一回行い、件数と値が変わらないことを確認します。入力順が時系列になっている前提です。最初の行は比較対象がないためnullを残します。 本記事のアプリでの実行結果は未確認のため、完成表の照合を省略しないでください。
できあがる結果を表で確認する できあがる結果 値 前値 10 None 15 10 12 15 前の値が隣にあると差分確認の開始点が分かります。
期待結果と照合する
完成表の列は 値/前値、値は [[10,null],[15,10],[12,15]] です。前の値が隣にあると差分確認の開始点が分かります。 グループ化の結果は行順が変わる場合があるためキーと値の組み合わせで照合します。日付・日時・durationは表示形式が異なっても同じ値か型も確認してください。
まずこの入力例で確認し、件数や値が一致しているかを見ます。完了表示だけで判断せず、重複・空欄・対象外データも残っていないか確認してください。
うまくいかないとき
- 入力順が時系列になっている前提です。最初の行は比較対象がないためnullを残します。
- Expression.Errorが出た場合は、コードの列名と入力の列名、大文字小文字が一致するか調べます。入力の型を安易にanyへ変えてエラーを隠さないでください。例は小さな表向けであり、大量データに移すときは行数と更新時間も確認します。
止める・元に戻す
検証用に追加したクエリと新しい出力シートを削除するか、開始前の保存版を開き直します。元ファイル・外部サービスの更新や削除は行わないコードです。本番クエリへ採用する前に複製を作り、入力行数・出力行数・エラー件数を比較できる状態にしてください。
公式資料・対応範囲
参照日:2026-10-19。公式資料の一般的な機能説明と、本記事固有の入力例の実行検証は別です。実務での短縮時間や効果は未計測です。