PowerQuery 8桁数字(yyyymmdd)と日付の変換|yyyymmも解説!

Power Queryで8桁の数字(yyyymmdd)を日付型のデータに変換する方法を紹介します。

また、反対に日付データからyyyymmddの8桁数字に変換する方法や6桁数字(yyyymm)の変換方法についても解説していますので参考にしてみてください。

目次

8桁(yyyymmdd)と日付の変換

まずは8桁数字と日付型データの変換について紹介します。

yyyymmdd → 日付データ

8桁の数字から日付データに変換するには下記の方法で行います。

  • yyyymmddの列のデータ型をテキストに変更する
  • カスタム列で下記の式を入力する

Date.From(Text.Middle([列名], 0, 4) & “/” & Text.Middle([列名], 4, 2) & “/” & Text.Middle([列名], 6, 2))

ドノ

区切り文字を別の文字に変更したい場合は上記式の"/"部分を変更してください

変換手順

実際にデータを使って手順を解説します。

説明例として、下図のyyyymmdd列から日付データ列を作成します。

STEP
データ型の変更

まず データ型を変更します。

下図のように対象列で「テキスト」を選択して、データ型をテキスト型に変更します。

STEP
カスタム列の作成

列の追加タブにある「カスタム列」をクリックして、下記の式を入力します。

列名にはyyyymmddを設定しています。

Date.From(Text.Middle([yyyymmdd], 0, 4) & "/" & Text.Middle([yyyymmdd], 4, 2) & "/" & Text.Middle([yyyymmdd], 6, 2))
STEP
日付データ型への変更

最後に作成した列のデータ型を「日付」に変更して完了です。

カスタム列追加と同時にデータ型も設定したい方はこちらの記事を参考にしてみてください。

元の列を変換したい場合

元のyyyymmdd列を直接変換したい場合は下記の式を用います。

新しいステップを追加して数式バーに下記の式を入力してください。

Table.TransformColumns(テーブル名, {{“列名“, each
Date.From(Text.Middle(_, 0, 4) & “/” & Text.Middle(_, 4, 2) & “/” & Text.Middle(_, 6, 2))
, type date}})

ドノ

テーブル名や列名は状況に応じて変更してください

上記の説明例でいうと以下のような式となります。

Table.TransformColumns(変更された型, {{"yyyymmdd", each Date.From(Text.Middle(, 0, 4) & "/" & Text.Middle(, 4, 2) & "/" & Text.Middle(_, 6, 2)), type date}})

日付データ → yyyymmdd

次は反対に日付データから8桁の数字に変換する方法を紹介します。

下記の式を用いてカスタム列を作成すればOKです。

Number.FromText(
Text.PadStart(Text.From(Date.Year([列名])), 4, “0”) &
Text.PadStart(Text.From(Date.Month([列名])), 2, “0”) &
Text.PadStart(Text.From(Date.Day([列名])), 2, “0”))
)

ドノ

列名の部分を変更して使用してください

変換手順

実際にデータを使って手順を解説します。

説明例として、下図の日付データ列からyyyymmddを作成します。

STEP
カスタム列の作成

列の追加タブにある「カスタム列」をクリックして、下記の式を入力します。

列名には日付を設定しています。

Number.FromText(Text.PadStart(Text.From(Date.Year([日付])), 4, "0") & Text.PadStart(Text.From(Date.Month([日付])), 2, "0") & Text.PadStart(Text.From(Date.Day([日付])), 2, "0"))
STEP
yyyymmddへの変換完了

この1ステップで変換は完了です。

元の列を変換したい場合

元の日付列を直接変換したい場合は下記の式を用います。

新しいステップを追加して数式バーに下記の式を入力してください。

Table.TransformColumns(テーブル名, {{“列名“, each
Number.FromText(
Text.PadStart(Text.From(Date.Year(_)), 4, “0”) &
Text.PadStart(Text.From(Date.Month(_)), 2, “0”) &
Text.PadStart(Text.From(Date.Day(_)), 2, “0”))
, type number}})

ドノ

テーブル名や列名は状況に応じて変更してください

上記の説明例でいうと以下のような式となります。

Table.TransformColumns(変更された型, {{"日付", each Number.FromText(Text.PadStart(Text.From(Date.Year(_)), 4, "0") & Text.PadStart(Text.From(Date.Month(_)), 2, "0") & Text.PadStart(Text.From(Date.Day(_)), 2, "0")), type number}})

6桁(yyyymm)と日付の変換

次に6桁数字と日付型データの変換について紹介します。

yyyymm → 日付データ

6桁の数字から日付データに変換するには下記の方法で行います。ここでは月始めの日付に変換する方法を解説します。

  • yyyymmddの列のデータ型をテキストに変更する
  • カスタム列で下記の式を入力する

Date.From(Text.Middle([列名], 0, 4) & “/” & Text.Middle([列名], 4, 2) & “/01”)

ドノ

特定の日にしたい場合は式内の"/01"を変更してください

変換手順

実際にデータを使って手順を解説します。

説明例として、下図のyyyymm列から日付データ列を作成します。

STEP
データ型の変更

まず データ型を変更します。

下図のように対象列で「テキスト」を選択して、データ型をテキスト型に変更します。

STEP
カスタム列の作成

列の追加タブにある「カスタム列」をクリックして、下記の式を入力します。

列名にはyyyymmを設定しています。

Date.From(Text.Middle([yyyymm], 0, 4) & "/" & Text.Middle([yyyymm], 4, 2) & "/01")
STEP
日付データ型への変更

最後に作成した列のデータ型を「日付」に変更して完了です。

カスタム列追加と同時にデータ型も設定したい方はこちらの記事を参考にしてみてください。

元の列を変換したい場合

元のyyyymmdd列を直接変換したい場合は下記の式を用います。

新しいステップを追加して数式バーに下記の式を入力してください。

Table.TransformColumns(テーブル名, {{“列名“, each
Date.From(Text.Middle(_, 0, 4) & “/” & Text.Middle(_, 4, 2) & “/01”)
, type date}})

ドノ

テーブル名や列名は状況に応じて変更してください

上記の説明例でいうと以下のような式となります。

Table.TransformColumns(変更された型, {{"yyyymm", each Date.From(Text.Middle(_, 0, 4) & "/" & Text.Middle(_, 4, 2) & "/01"),type date}})

日付データ → yyyymm

次は反対に日付データから6桁の数字に変換する方法を紹介します。

下記の式を用いてカスタム列を作成すればOKです。

Number.FromText(
Text.PadStart(Text.From(Date.Year([列名])), 4, “0”) &
Text.PadStart(Text.From(Date.Month([列名])), 2, “0”)
)

ドノ

列名の部分を変更して使用してください

変換手順

実際にデータを使って手順を解説します。

説明例として、下図の日付データ列からyyyymmを作成します。

STEP
カスタム列の作成

列の追加タブにある「カスタム列」をクリックして、下記の式を入力します。

列名には日付を設定しています。

Number.FromText(
   Text.PadStart(Text.From(Date.Year([日付])), 4, "0") &
   Text.PadStart(Text.From(Date.Month([日付])), 2, "0")
)
STEP
yyyymmへの変換完了

この1ステップで変換は完了です。

元の列を変換したい場合

元の日付列を直接変換したい場合は下記の式を用います。

新しいステップを追加して数式バーに下記の式を入力してください。

Table.TransformColumns(テーブル名, {{“列名“, each
Number.FromText(
Text.PadStart(Text.From(Date.Year(_)), 4, “0”) &
Text.PadStart(Text.From(Date.Month(_)), 2, “0”)
, type number}})

ドノ

テーブル名や列名は状況に応じて変更してください

上記の説明例でいうと以下のような式となります。

Table.TransformColumns(変更された型, {{"日付", each Number.FromText(Text.PadStart(Text.From(Date.Year(_)), 4, "0") & Text.PadStart(Text.From(Date.Month(_)), 2, "0")), type number}})
Power Queryのおすすめ書籍

パワークエリの学習本についてはコチラの記事でまとめてますので参考にしてみてください。

初心者向けおすすめ学習本

初中級者向けおすすめ学習本

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

コメント

コメントする

コメントは日本語で入力してください。(スパム対策)

CAPTCHA

目次