セルの日付が「何月何日」以前か?等、日付を判断する数式で苦労することはありませんか?
「2019/12/1」や「令和2年1月1日」を直接数式の中に書き込んでもエクセルは日付として正しく認識してくれません。
実はエクセル内では日時が「数値」で扱われています。この数値を「シリアル値」と呼んでいますが、わかりやすく解説しますのでぜひご覧ください。きっと「な~んだ!」ということになるはずです。
↓ 簡単解説動画からご覧ください。
専門知識は不要、見るだけで夢が広がります!
すごいEXCEL改革事例
EXCEL自動化ファイルプレゼント
この世でもっともわかりやすい関数解説
VLOOKUP関数なぁんだそーだったのか!
IF関数これなら即使える!
セルの表示と数式バーの表示
シリアル値って何?
今さらですが、①は「セル」②は「数式バー」と呼び、セルに入力した文字列や数値は数式バーにそのまま表示されるはずなのですが、「日付」に関してはセル値と数式バーの表示が違う場合があります、どうなっているのでしょうか?
①数式バーを見ながら、セルA2へ「令和1年5月1日」とまで入力して行くと、
②「ENTER」キーで確定する直前までは、数式バーの表示も「令和1年5月1日」となっていますが‥!
③「Enter」キーをポンと押すと、数式バーの表示が西暦に変わりました。セル上の表示と数式バー上の値が別物であることがわかります。
セルの表示形式
セルに表示される「令和1年5月1日」という日付は「セルの表示形式」に従って表示されています。
④「令和1年5月1日」のセルを選択しておき、セルの書式設定 → 表示形式 を調べてみると、「[$-ja-JP]ggge”年”m”月”d”日”」という書式が適用されていました。
⑤「セルの書式設定」を出したまま、今度は表示形式を「標準」に切り替えてみましょう。
⑥表示形式=「標準」ではセルの表示は「43586」という数字に変わりました、数式バーの表示も同じ数字を表示しています。
この数値こそが「シリアル値」なのです。
シリアル値から日付へ変換
⑦真上のセルA1へ1つ少ない「43585」を入力してみましょう。
⑧セルA1:セルA2 の両セルを選択し、表示形式を再び
「[$-ja-JP]ggge”年”m”月”d”日”」へ戻します。
「43586」だったセルA2は「令和1年5月1日」
「43586」と入力したセルA1は「平成31年4月30日」へと表示を変えました。
エクセル上の値とシリアル値
人間のように平成31年4月30日の翌日から「令和」に変わる、と覚えているわけではなく、シリアル値が 43586 以上を「令和」として表示することがわかりました。
コンピュータ内の値はシリアル値という「数値」でありながら、エクセルのセル上では表示形式に従い、さらに数式バーには西暦表示する、という3重構造になっていたわけです。
日付と日付の比較
平成は「H」令和は「R」と表示させるIF式を使った数式の例です。数式の中に日付を直接書き込むとエラーを起こす理由は、書き込んだ日付がコンピュータには判断できない表示上の(人間用の)日付だから、ということになります。
セル同士で比較
⑨式「=IF(A1>=$A$2,”R”,”H”)」
セルの値は人間に対しては表示形式、コンピュータ内ではシリアル値として扱われているため、比較が可能です。
シリアル値で比較
⑩式「=IF(A1>=43586,”R”,”H”)」
式の中で日付を「定数」として扱うにはシリアル値で書き込む方法が確実な方法です。
式中で日付をシリアル値に変換も可能です。
(例)=IF(A1>=VALUE(“2019/5/1″),”R”,”H”)