Excel上なら、TEXT関数で「"gggee年mm月dd日"」とすれば簡単に済む話なんだけど、Power Queryの Date.TeText関数は和暦には対応していない。
画像のような和暦表示の列を作りたい場合、カスタム列の追加で「= Date.ToText([日付], "gggee/MM/dd"」とすると、下のような表記になってしまう。
なんじゃこりゃ。
対応していなら直接計算するしかない訳で、手間をかければ計算はできる。
日付列がある「テーブル1」が読み込まれているものとして、
和暦表記列の追加 = Table.AddColumn(テーブル1, "和暦表記", each [
しきい値 = {18681023, 19120730, 19261226, 19890108, 20190501},
補正値 = List.Transform(しきい値, each Number.RoundDown(_/1E4)-1),
年月日 = Number.From(Date.ToText([日付], "yyyyMMdd")),
件数 = List.Count(List.Select(しきい値, each _<=年月日)),
元号 = {"明治", "大正", "昭和", "平成", "令和"}{件数-1},
年 = Number.RoundDown(年月日/1E4)-補正値{件数-1},
和暦表記 = 元号 & Number.ToText(年, if 年=1 then "元年" else "00年")
][和暦表記]),
列の削除 = Table.RemoveColumns(和暦表記列の追加,{"日付"})
こんな形。せっかくなので初年は元年表記にしてみた。
因みに和暦の文字列から西暦を計算するのは簡単。
予め和暦が「gggee/MM/dd」の形式になるようにしておいて、カスタム列の追加で「= Date.From([和暦文字列])」とするだけ。