
[EXCEL] 12:00PMは正午?深夜0時?「セルの書式設定」の「AM/PM」「午前/午後」表示にはトラップあり!(時刻は24時間表示が基本)~日付と時間のトラブルレスキュー~
▶ 目次 > 日付と時間のトラブルレスキュー
【まとめ】

・時刻は「セルの書式設定」で「AM/PM」「午前/午後」表示できるが、正午が午後12時(深夜0時)になってしまうので、使用は避ける。

・これは、英語圏と日本との表示の違いによるもの。
・正しい「午前/午後」表示には、数式を使う(結果は文字列)。
例:=IF(時刻セル<0.5,"午前","午後")&TEXT(MOD(時刻セル,0.5)," h時mm分")
・通常は24時間表示を基本とする。
【説明】
こんな記事を拝見しました。
【整うExcel】時間や曜日表示を使いこなす(裏技だけ紹介)
始めてまだそれほどでもないようですが、端的な表現や画像の多用で分かりやすく、それが多くの「スキ」を得る要因と拝察します(私は、どうも冗長になってしまいます・・・)。
引き続きの活躍に期待! です。
上記記事は、日付と時間に関するもので、これも端的でわかりやすい。
ただ、ちょっと引っかかったところが・・・。
ここです。
午前/午後を日本語で表示する
上記記事中の「12:00」が「午後12:00」となっている図に目が留まりました。

これ、エクセルの仕様トラップなんですよね。
英語圏と日本語の「午後」の扱いの違いによるトラップ。
滅多に嵌ることはないと思いますが、レアなトラップは気づきづらいがゆえに要注意です(特に公式文書では)。
実務での利用は少ない表示方法と思いますが、備忘的に記事にしておきます。
というか、以下の記事に「匂わせ」を書いたまま放置してしまっていました(需要ないだろう、という思いもありましたが)。
[言葉] お昼(正午)は、「12:00PM」なのか?
「セルの書式設定」でも「AM/PM」「午前/午後」表示はできるが・・・
24時間表記の時刻を「セルの書式設定」で「AM/PM」表記にするのは簡単です。

「ユーザー定義」の「種類」欄に以下を入れると、「午前/午後」表記も可能です。
[$-ja-JP]AM/PM h"時"mm"分"

ただし、これは単にAMを午前に、PMを午後に置き換えているだけ。
これの何がいけないかというと・・・。
この表示形式では、下の表のとおりとなります。

お昼の12時(正午)が「12:00PM」あるいは「午後12時00分」になってしまいます。
12:01(正午の1分過ぎ)なら、「12:01PM」あるいは「午後12時01分」。
上の表なら「午前11時59分」の次に「午後12時00分」が来るので(午前が午後に変わっている)、違和感を抱きやすいかと思いますが、単体で見たら、正午のはずの「午後12時00分」が、深夜12時と誤解されるかもしれません。
そんな時間(深夜12時)に、会議や行事が始まることは、まずありませんが、締め切りモノだと、「12:00が期限」というものもありそうです。
それが「午後12時」と表示されたら、「深夜12時」つまり、「日付が変わる前に出せばいい」(メール等)と誤解されるおそれがあります。
そうなると、「締め切り時刻を守った人」と「誤解して遅れた人」の扱いが難しくなります(誤解が生じない表現なら、締め切り後=アウト でおしまいですが)。
これについては、既述の「[言葉] お昼(正午)は、「12:00PM」なのか?」でくどく書いていますが、国(参議院法制局や天文台)HPでも、「正午は午後0時」とあります(法的には定義されていないのが、問題の根源)。
英語圏では、正午は12:00PMだそうです(私は違和感あり)。
この差が、トラップになっています。
では、正午の12:00を「午後0時00分」と表示するにはどうしたらいいでしょうか?
でも、その前に・・・
時刻表示の基本は「24時間表示」
エクセルの一覧表は、時刻は「24時間表示」が理想です。
・理由1:入力が楽(数値と「:」だけでいい)
・理由2:書式を変える必要がない
・理由3:セル幅が狭くて済む(これ大きい)
・理由4:誤解を招かない(正午が「12:00PM」とならない)

普通に入力していれば、24時間表示になります。
理由1~3は、入力や作表の問題ですが、理由4は「ミス」防止なので、重要な部分です。
一覧表では「24時間表示」を基本としつつ、正式文書等で使う場合には「午前/午後」表示を用います。
では、本題に。
「午前/午後」表示にする方法(結果は文字列)
以下の数式を使います。
例:B3に時刻が入っている場合
=IF(B3<0.5,"午前","午後")&TEXT(MOD(B3,0.5)," h時mm分")
=IF(B3<0.5,"午前","午後")&TEXT(MOD(B3,0.5)," h時mm分")
[数式の説明]
① IF(B3<0.5,“午前”,“午後”)
時刻(B3)のシリアル値が
0.5 未満 ⇒ 午前
0.5 以上 ⇒ 午後
・時刻は、シリアル値(数値)に直すと24時間(1日)=1となる。
従って、正午(12:00)は「0.5」となる。

②MOD(B3,0.5) : 時刻(B3)を 0.5(12時間)で割った余り(小数点以下)を出す。(=12時間表記の時刻になる)
③ TEXT(...,“h時mm分”): 時刻を「h時mm分」形式で表示
④「&」で「午前 又は 午後」と「h時mm分」を合体させて表示。
これで、下表の左端の時刻は、右端の通り表示されます。

[注意]
この数式の結果は「文字列」になります。
従って、計算には使えません。
また、時刻を入力するセルとは別に、数式の結果を表示するセルも必要です。
なので、実際の使途は限定的でしょう。
計算を行った後、正式文書(資料)に表示する際に使う位でしょうか(ワードへの差し込みにも使えます)。
繰り返しになりますが、通常のエクセル表では、時刻は24時間表示にして「AM/PM」「午前/午後」は表示しないのが得策です。
別解(非推奨)
上記とは別の方法で「数値」のまま「午前/午後」表示することも可能ですが、手順が複雑なので、お勧めしません。
考え方参考:セルの値が0.5より大きいか判断し、条件付き書式で2パターンの書式を作る(午前または午後を付ける)。ただし、入力セルとは別セルが必要。
*簡単な方法をご存じの方がいたら、是非、ご教示ください!
以上、ニッチな内容でした。
お役に立ったら♡を是非!(アカウント不要)。励みになります。 &フォローしておくと必要なときにすぐ見つかって便利です。
軽めのトラブルはこちらをどうぞ
「プチトラブルレスキュー」シリーズ 一覧記事