Power BIで8桁の日付データを扱う方法:レガシーデータやCSVをスムーズに変換するコツ

企業のレガシーシステムや外部取引先から受け取ったデータなど、「20230412」 のように数値8桁の形式で日付が記録されているケースは珍しくありません。そのままではPower BIが日付として認識できず、分析に支障をきたす場合もあります。そこで本記事では、Power BIで8桁の日付データを正しく変換する手順やポイントをわかりやすく解説します。

1. なぜ8桁の日付を変換する必要があるのか?

  1. タイムインテリジェンス機能の活用
    Power BIではDAX関数を用いて、日付を軸にした前年同期比や月次・四半期集計などを簡単に行えます。しかし、日付列が単なる数値や文字列のままだと、これらの機能が正しく動作しません。

  2. 可視化やソートの正確性
    グラフやマトリックスビジュアルで日付を正しく時系列順に並べるには、データ型をDateまたはDateTimeに変更しておくことが必須です。さもなければ数値の大小でソートされてしまい、正しい時系列が保たれない可能性があります。

  3. 自動更新レポートへの対応
    外部データを定期的に取り込む場合、Power BIが自動的に日付変換を行えるようにしておけば、メンテナンスコストを大幅に削減できます。


2. 8桁の日付データとは

形式例:

  • 20230412 → 2023年4月12日

  • 20250101 → 2025年1月1日

多くの場合、上位4桁が「年」、次の2桁が「月」、最後の2桁が「日」を表しています。このような「YYYYMMDD」形式は、システム間の連携やファイルインポート時に利用されることが多い一方、人間の目で見ると少しわかりづらく、かつPower BIに取り込む際にも工夫が必要です。


3. Power Queryを使った変換方法

3-1. Power Queryエディタとは?

Power Queryは、Power BI Desktopに標準搭載されているデータ整形用ツールです。インポートしたデータを列の分割・結合、型変換、行フィルタリング、グループ化など、様々な操作で加工できます。データを日付型に変換するときも、このPower Query上で設定するのが一般的です。

3-2. 手順1:列の複製(必要に応じて)

オリジナルの列を残しておきたい場合は、最初に列を右クリックして**「列の複製」**を行います。複製した列を変換対象にすると、万が一トラブルが起きた際に元データを参照しやすくなります。

3-3. 手順2:列の分割による変換

  1. 列を分割する:8桁の日付列を選択し、Power Queryのリボンから「変換」→「列の分割」→「文字数による分割」を選びます。

    • 最初の4文字が「年」

    • 次の2文字が「月」

    • 最後の2文字が「日」

  2. 分割後の列に対して、それぞれの列名(Year、Month、Dayなど)をわかりやすいように変更します。

  3. Year、Month、Dayの列をすべて数値型(Whole Numberなど)に変換します。

3-4. 手順3:日付型の列を作成

列を分割したら、以下の2つの方法で日付列を作成できます。

方法A:Power Queryの「列の追加」→「カスタム列」

  • カスタム列の数式バーに、

    M
    #date([Year], [Month], [Day])

    と入力すると、新しい列に日付型のデータが生成されます。

方法B:変換後の列を結合してから自動変換

  • Year、Month、Dayの列をテキスト型に変換し、「列の統合」を使って「Year-Month-Day」の形に連結します。例:「2023-04-12」

  • 結合された文字列列を右クリックし、「データ型を変換」→「日付」を選択します。

いずれの方法でも、結果として日付型(Date型)の列が作成され、Power BI側でタイムインテリジェンスに対応できる状態になります。


4. DAX関数での変換方法

場合によっては、Power Queryを使わずにDAXで変換したいというケースもあるでしょう。たとえば、すでにレポートが構築済みで、追加計算列として日付型を作りたい場合などです。

  1. 追加列の作成
    レポートビューやデータビューでテーブルを選択し、リボンから「列の追加」をクリック。

  2. DAX関数を入力
    以下のように「CALCULATE COLUMN」するイメージでDAXを記述します。

    DAX
    ConvertedDate =
    DATE(
    LEFT([DateColumn],4), -- 上位4桁を年に
    MID([DateColumn],5,2), -- 5~6桁目を月に
    RIGHT([DateColumn],2) -- 末尾2桁を日に
    )

    ただし、数値列として格納されている場合はテキストに変換したうえで文字列操作を行う必要があります。

    DAX
    ConvertedDate =
    DATE(
    VALUE(LEFT(FORMAT([DateColumn], "00000000"),4)),
    VALUE(MID(FORMAT([DateColumn], "00000000"),5,2)),
    VALUE(RIGHT(FORMAT([DateColumn], "00000000"),2))
    )

    これによって、8桁の日付を「年」「月」「日」に切り出し、DATE関数で日付型に変換できます。


5. 活用のポイントと注意点

5-1. 年度の違いに注意

企業によっては、会計年度が4月~翌年3月のように独自の年度設定をしている場合があります。その場合、日付テーブルカレンダーテーブルを作成して、自社の会計年度に合わせた四半期や年度の列を設定しましょう。

5-2. 元データを常に保持

データクレンジングの際、オリジナルの数値や文字列列を完全に削除するのではなく、可能ならバックアップとして1列残しておくと、後々のトラブルシューティングが容易になります。

5-3. 重複・欠損のチェック

大量のデータを取り扱う場合、重複した8桁日付や存在しない日付(例:20230230)が混入していないかを確認する必要があります。そういった不正データがあると、変換時にエラーや変換失敗が発生する場合があります。


6. まとめ

8桁の日付データ(YYYYMMDD形式)は、Power BIの標準的な日付認識とは異なるため、Power QueryやDAX関数を用いて変換するのが一般的です。しっかりと日付型に変換しておけば、タイムインテリジェンス機能をフル活用でき、棒グラフや折れ線グラフでの可視化、あるいは前年対比・四半期分析などが格段にやりやすくなります。
初めは少し手間に感じるかもしれませんが、正しい手順を覚えてしまえば、様々なソースからのデータをスムーズに変換・分析できるようになるでしょう。

「8桁の日付変換」という基本的なステップを押さえて、ぜひPower BIでのデータ活用をさらに進めてみてください。また、データモデリングや分析設計の全体像をより効率的に学びたい方は、外部の専門家の助言を得るのも有効な手段です。短時間でノウハウを習得できれば、結果的にビジネスへのインパクトが大きくなるはずです。

もし困り事があるなら、まずは無料相談

棒と折れ線を一つのチャートにまとめたい」「大量行データでエラーが出てしまう」「CSV の複雑なパースをどうすればいい?」など、Power BI や Power Automate を活用する上でのお悩みはぜひご相談ください。


セミナーで学ぶ!DAX 関数の実践スキル

📊 Power BI ハンズオンセミナー初級編

  • 短時間で「データモデリングの基本」や「レポート作成」のノウハウを習得。

  • 簡単な組み合わせチャートの作成などを実践形式で学ぶチャンス。

  • 少人数制のため、定員になり次第締切!
    セミナー詳細を今すぐチェック

📈 Power BI ハンズオンセミナー中級編

  • DAX 関数 × データモデル設計 を活用し、複雑な分析・可視化をスムーズに!

  • 2 つのグラフを重ねるなど、より高度なビジュアル設計にも対応。

  • 業務効率をアップし、チームでの評価を高めるチャンス!
    詳細はこちら

DAX を使いこなしながら、最適なチャートを設計できれば、Power BI の真価を最大限引き出すことができます。実践的な知識を身に付け、組織のデータ活用をリードしましょう。

関連記事

この記事へのコメントはありません。

カテゴリー

アーカイブ