Power Query で列ごとにデータ型を変換する方法【初心者向けサンプル】

目次

概要

本記事では、Excel Power Query エディタの Table.TransformColumnTypes 関数を用いて、各列のデータ型を一括で変更する手順を解説いたします。正しいデータ型を設定しておくと、後続の集計やクエリ処理が安定し、エラー防止やパフォーマンス向上につながります。


前提条件

項目内容
Excel バージョンMicrosoft 365 または 2016 以降
サンプルテーブル名transaction_log
追加アドイン不要(標準機能のみ)

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

以下のコードを Power Query エディタの 「詳細エディター」 に貼り付けて実行してください。テーブル名や列名は例示用に変更してありますので、そのままご利用いただけます。

let
    // ブック内テーブル一覧を取得
    bookData    = Excel.CurrentWorkbook(),

    // 対象テーブル transaction_log を参照
    transSource = bookData{[Name = "transaction_log"]}[Content],

    // 列ごとにデータ型を設定
    typedTable  = Table.TransformColumnTypes(
        transSource,
        {
            {"TradeDate",  Date.Type},
            {"Partner",    Text.Type},
            {"Amount",     Currency.Type}
        }
    )
in
    typedTable

コードのポイント

  1. Excel.CurrentWorkbook() で現在のワークブックに含まれるテーブルを取得いたします。
  2. [Name = "transaction_log"] で対象テーブルを指定し、[Content] でデータ部分を取得いたします。
  3. Table.TransformColumnTypes に列名とデータ型のペアを配列形式で渡し、一括変換を行います。
    • Date.Type で日付型
    • Text.Type で文字列型
    • Currency.Type で通貨型

活用例

  • 数値演算の安定化
    金額列を Currency.Type に設定することで、四則演算や集計処理の精度が向上いたします。
  • 日付フィルタの効率化
    日付列を Date.Type に変換しておくと、期間フィルタや年月別グループ化を簡潔に実装できます。
  • 文字列操作の安全性
    文字列列を Text.Type に統一することで、不要なデータ型変換エラーを防止できます。

よくある質問

質問回答
列数が多い場合、毎回列名を列挙するのは大変ではありませんか。Table.Schema() で列情報を取得し、Table.TransformColumns と組み合わせることで、条件に応じた一括変換が可能です。
既定のデータ型を保持しつつ特定列だけ変更したい場合は。対象列を配列で指定し、それ以外の列はスキップするロジックを組み込むと効率的です。

まとめ

Power Query で列ごとに適切なデータ型を設定することで、後続の処理を安全かつ効率的に進められます。今回のサンプルを実行し、正しくデータ型が変換されることをご確認ください。業務で扱うテーブル名や列構成に合わせてカスタマイズすれば、より高度な前処理も容易に実現できます。

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

この記事を書いた人

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

目次