Power Query で新規テーブルを生成する方法【コード例付き】

目次

概要

本記事では、Power Query(M 言語)の #table 関数を使って、ワークブック外部のデータソースを用いずに 新しいテーブルをコードだけで作成する手順 を解説いたします。テンプレート化しておけば、検証用データの準備やサンプル共有を効率化できます。


前提条件

項目内容
Excel バージョンMicrosoft 365 または 2016 以降
必要アドインなし(Power Query 標準機能で完結)

サンプルコード(M 言語)

以下のコードを Power Query エディタの 「詳細エディター」 に貼り付けてそのまま実行してください。列名・行データは著作権配慮のため変更してあります。

let
    // #table で型情報とデータ本体を同時定義
    sampleTable = #table(
        type table [
            RecordID = Int64.Type,        // 整数型
            Staff    = text,              // 文字列型
            OrderDate = date,             // 日付型
            Units    = Int64.Type         // 整数型
        ],
        {
            {101, "森",   #date(2023, 4, 10), 150},
            {102, "林", #date(2023, 4, 11),  80},
            {103, "木", #date(2023, 4, 10), 220}
        }
    )
in
    sampleTable

コードのポイント

説明
3–7type table で列名とデータ型を明示し、後続処理を安定化しています。
9–11行データはリスト形式で記述します。必要に応じて追加・削除が可能です。
12in sampleTable で作成したテーブルを出力しています。

応用例

目的実装のヒント
検証用データの自動生成RecordIDList.Numbers(1, n) で動的作成し、List.Transform で値を埋め込む方法があります。
列の初期値一括設定すべての行に共通値を設定したい場合、List.Repeat で行リストを生成し #table に渡すと効率的です。
型変更の自動化列定義をレコード化し、Record.ToTableTable.TransformColumnTypes を組み合わせると汎用化できます。

よくある質問

質問回答
データ行だけを後で差し替えられますか。sampleTable を生成するステップを分割し、行リストを別クエリで管理すると差し替えが簡単です。
行数が多い場合はパフォーマンスに影響しますか。数百行程度であれば影響は軽微ですが、数千行を超える場合は外部ソースから読み込む方法を検討してください。

まとめ

#table 関数を用いると、Power Query 内で完結する形でテーブルを作成できるため、テストデータの用意や関数検証が容易になります。まずは上記コードを実行し、任意の行・列を追加して動作を確認してください。業務に合わせて列構成やデータ内容を調整すれば、再利用性の高いサンプルクエリとして活用できます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次