メインコンテンツへスキップ
見出し画像

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

    ▶ 目次 > 日付と時間のトラブルレスキュー

    【まとめ】

    画像
    画像は、本記事を元にGeminiが生成しました

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

    画像
    午前11:59の1分後は、12時?

    ・これは、英語圏と日本との表示の違いによるもの。
    ・正しい「午前/午後」表示には、数式を使う(結果は文字列)。
    例:=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」とならない)

    画像
    下2つは誤解を生む惧れがあります

    普通に入力していれば、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パターンの書式を作る(午前または午後を付ける)。ただし、入力セルとは別セルが必要。

    *簡単な方法をご存じの方がいたら、是非、ご教示ください!


    以上、ニッチな内容でした。

    お役に立ったら♡を是非!(アカウント不要)。励みになります。 &フォローしておくと必要なときにすぐ見つかって便利です。

    軽めのトラブルはこちらをどうぞ
    「プチトラブルレスキュー」シリーズ 一覧記事

    あなたへのおすすめ