Microsoft Excelで、「令和元年〇月〇日午後0時」(=正午)と表示しようとすると、表示形式「日付」では、「令和1年〇月〇日午後12時」と表示されてしまいます。

これは全く面白くありません、MicrosoftはExcelの仕様と言い切るのでしょうが、仕事の報告書でそんな言い訳が通じるはずはありません。

修正テープを貼って上から手書きしてコピーしている方、文字列で打ち直している方、結構いると思います。

 

Microsoftは高額なofficeを全世界の企業に売り込んでいますが、日本向けでこのことを放置しているのは、不作為でも労働損失が発生して、生産性の低下を生んでいるのではないかと思います。

 

 

こんなことをしていては、時間外労働がなくならないので、これを修正する方法をGoogle先生にご指南いただき、解決できたので、その覚書です。

 

 

1 Excelは、R1年を「令和元年」と表示しない

 

B2に日時を入力して、B3で表示形式を和暦、12時制で表示すると標準ではこうなります。

 

この時の、設定はこれです。

 

 

R1なら良いですが、令和1年では少なくとも私は困るので、

B4に次の式を入れて、「令和1年」→「令和元年」と表示します。

 

B4の式:令和元年と表示
=IF(B2>=43831,"令和"&YEAR(B2)-2018,IF(B2>=43586,"令和元",TEXT(B2,"ggg")&IF(TEXT(B2,"e")="1","元",TEXT(B2,"e"))))&TEXT(B2,"年m月d日(aaa) [$-411]AM/PM h:mm")

 

このように表示されます。

 

 

2 Excelは、「午前0時」を「午前12時」、正午を「午後12時」と表示する

 

正午以降は午後になるので、午前12時1分は不自然な感じがします。午後0時1分のほうが収まりがよいです。

この問題は、Google先生でも解決できないという回答をされている方がかなりありましたが、どうにか解決することができました。

 

 

 

この場合は分けて表示していきます。

C2、D2に次の式を入れて、午前0時・午後0時と表示させます。

C2の式:時刻抽出
=MOD(B2,SIGN(B2))

D2の式:0時と表示
=IF(C2<0.499988425925926,"午前"&TEXT(C2," H時MM分"),"午後"&TEXT(C2-0.499988425925926," H時MM分"))

 

D2の式にC2の式を入れると次の式になります。

=IF(MOD(B2,SIGN(B2))<0.499988425925926,"午前"&TEXT(MOD(B2,SIGN(B2))," H時MM分"),"午後"&TEXT(MOD(B2,SIGN(B2))-0.499988425925926," H時MM分"))

 

さらにこれを令和元年と表示する式に入れると次の式になります。

B5の式:令和元年〇月〇日午後0時と表示する式

=IF(B2>=43831,"令和"&YEAR(B2)-2018,IF(B2>=43586,"令和元",TEXT(B2,"ggg")&IF(TEXT(B2,"e")="1","元",TEXT(B2,"e"))))&TEXT(B2,"年m月d日(aaa) [$-411]")&IF((MOD(B2,SIGN(B2)))<0.499988425925926,"午前"&TEXT((MOD(B2,SIGN(B2)))," H時MM分"),"午後"&TEXT((MOD(B2,SIGN(B2)))-0.499988425925926," H時MM分"))

 

 

これで当初の予定どおりの表示になりました。

Microsoftには、ここまでユーザーがしなくてもよいように望むトコロ