< 目次へ
例
和暦をそのまま文字列として入力するのはアンチパターンです。編集しづらく、機械による読み込みにも向いていません。資料の「修正後」にあるように西暦を併記するのも有効です。
別解として、データは汎用性の高い日付値として入力し「セルの書式設定」で見た目だけを和暦表示にする事もできます。以下に手順を詳述します。
どうすればいいの?
和暦を表示したいセルに、それぞれの年の任意の日付を入力します。サンプルでは一月一日にしています。
セルを選択し、右クリック>「セルの書式設定...」を選択します。
セルの書式設定ダイアログでタブ「表示形式」>「分類:日付」>「カレンダーの種類:和暦」「種類:平成13年3月14日」(微妙に違うかもしれません)を選択します。
このままだと不要な「月」と「日」も表示されてしまうので「分類:ユーザー定義」にして「種類」に「[$-411]ggge"年"
」を入力します(いきなりこっちに来ても良いのですが「ユーザー定義」の書き方をいちいち覚えていられないので、この回り道をとっています)。
これで、データとしては日付値、見た目だけ和暦にする事ができました。
e-Stat 時間軸コードについて
資料の「修正後」例には、e-Stat 時間軸コードを併記したものがあります。このコードの詳細については資料の次のページに詳細があります。
このコードと、Excel に入力する日付値とを変換する数式があれば便利そうです。いくつか考えられるので以下に、例を挙げておきます。
e-Stat 時間軸コードを変換する数式
e-Stat 時間軸コードと、表計算ソフトで扱いやすい日付値とのやり取りが便利になりそうな数式を以下に記述します。
e-Stat 時間軸コードを日付に変換する
e-Stat 時間軸コードから西暦年の部分を抜き出し、その年の一月一日の日付値に変換します。
=DATE(MID(A2,1,4),1,1)
日付を e-Stat 時間軸コードの「年」表現に変換する
=YEAR(A2) & "000000"
日付が一月だったら「0:年」、四月だったら「1:年度」に変換したい場合は以下のようにします。
=YEAR(A2) & IF(MONTH(A2)=1, "0", IF(MONTH(A2)=4, "1", "#VALUE!")) & "00000"
e-Stat 時間軸コードの「年」表現を抜き出す
=IF(MID(A2, 5, 1)="0", "年", IF(MID(A2, 5, 1)="1", "年度", "#VALUE!"))
e-Stat 時間軸コードを、意味がとりやすい文字列に変換する
ユーザー定義関数を使用すると以下のような変換が可能です。詳細は図の下のリンク先をごらんください。