日付(和暦)の数字を漢数字に変換する

 日付を和暦で表示する場合でも数字の部分はアラビア数字で表記するのが一般的になっていますのであまり使う機会もないと思いますが、参考まで。

方法1:Excelからコピーする方法(TEXT関数)

f:id:accs2014:20160731221226p:plain:right:w400

 Excelの場合はセルの書式により日付を漢字表記することができますし、TEXT関数により文字列として取得することができます。これを用いて出力した文字列を取り込むのが一つの方法かと思います。
 ただし、1件1件追加していく時には手動で入力した方が早いですし、もとの日付を日付型のフィールドとして残しておく必要があるとすれば、同じ意味の列を2つ持つこととなり、ちょっと面白くないかもしれません。


方法2:関数で変換する方法

f:id:accs2014:20160731210943p:plain:right:w400

 ユーザー定義関数を作るのが通常の対策ですが、ここでは例によって組み込み関数でムリヤリなんとかしてみます。
 例として右のテーブルの「生年月日」列の日付を、クエリ上で漢字に変換してみます。


f:id:accs2014:20160731210944p:plain:right:w400

 クエリデザインの画面で次のような列を設けます。



生年月日漢字: Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Format(Format([生年月日],"gggeemmdd"),"@@@\十@\年@\十@\月@\十@\日"),"1","一"),"2","二"),"3","三"),"4","四"),"5","五"),"6","六"),"7","七"),"8","八"),"9","九"),"一十","十"),"0十",""),"0","")

※ ¥がスラッシュとして表示されているかもしれません。

例によってReplace関数まつりになります;-o-)
Format関数が2回出てきますが、年(月、日)を2桁表示して間に文字を挟もうとすると失敗するためです。具体的にいいますと「e¥十e¥年」は「15十15年」などと出力されてしまいうまくいきません。そこで、一度文字数のそろった文字列に変換してからもう一度Format関数を用いて文字を挟んでいます。

f:id:accs2014:20160731210945p:plain:right:w400

 出力は右のようになります。