目次
概要
本記事では、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
コードのポイント
Excel.CurrentWorkbook()
で現在のワークブックに含まれるテーブルを取得いたします。[Name = "transaction_log"]
で対象テーブルを指定し、[Content]
でデータ部分を取得いたします。Table.TransformColumnTypes
に列名とデータ型のペアを配列形式で渡し、一括変換を行います。Date.Type
で日付型Text.Type
で文字列型Currency.Type
で通貨型
活用例
- 数値演算の安定化
金額列をCurrency.Type
に設定することで、四則演算や集計処理の精度が向上いたします。 - 日付フィルタの効率化
日付列をDate.Type
に変換しておくと、期間フィルタや年月別グループ化を簡潔に実装できます。 - 文字列操作の安全性
文字列列をText.Type
に統一することで、不要なデータ型変換エラーを防止できます。
よくある質問
質問 | 回答 |
---|---|
列数が多い場合、毎回列名を列挙するのは大変ではありませんか。 | Table.Schema() で列情報を取得し、Table.TransformColumns と組み合わせることで、条件に応じた一括変換が可能です。 |
既定のデータ型を保持しつつ特定列だけ変更したい場合は。 | 対象列を配列で指定し、それ以外の列はスキップするロジックを組み込むと効率的です。 |
まとめ
Power Query で列ごとに適切なデータ型を設定することで、後続の処理を安全かつ効率的に進められます。今回のサンプルを実行し、正しくデータ型が変換されることをご確認ください。業務で扱うテーブル名や列構成に合わせてカスタマイズすれば、より高度な前処理も容易に実現できます。