Excelのよく使われるワークシート関数の中で、仕様がもっとも誤解されている関数といえば、IF関数だと思っています。
IF関数を、何らかの判定を行う関数だと誤解している方が、少なくないと感じています。
例えば、ある日付が過去の日付(今日より前の日付)かどうかを判定するのに、IF関数が必要だと誤解してらっしゃる方が少なからずいらっしゃいます。
このサイト・インストラクターのネタ帳のアクセスログを眺めていても、
「excel if式で過去の日付を区別するにはどうすれば」
といった検索キーワードでのアクセスがあります。
過去の日付かどうかを判定する
過去の日付かどうかを判定するのに、関数は必要ありません。※A1セルに入力された日付が今日より前の日付かどうかをB1セルに入力した論理式で判定する
B1セルに
=A1<TODAY()
という論理式を入力する
例えば2017年2月14日に、B1セルに「=A1<TODAY()」という数式が入力されていて、A1セルに「2017/2/10」という日付が入力されていれば、
過去の日付ですからB1セルにはB1セルには「TRUE」と表示され、
「2017/2/15」という日付が入力されていれば未来の日付ですから「FALSE」と表示されます。
過去の日付かどうかの判定をするために、IF関数は必要ありません。
過去の日付の場合に表示を変更するときにはIF関数
「TRUE」「FALSE」という表示ではなく、何らかの文字列を表示したいというような場合には、IF関数が必要です。※A1セルに入力された日付が今日より前の日付の場合に「過去」とB1セルに表示する例
B1セルに
=IF(A1<TODAY(), "過去", "")
という数式を入力する
注目していただきたいのは、IF関数の第1引数に入力された「A1<TODAY()」という論理式です。
先ほどの「TRUE」「FALSE」表示を行った「=A1<TODAY()」と同じ論理式がIF関数の第1引数に入力されています。
IF関数の第1引数には論理式「A1<TODAY()」だけ入力されていて、先の例ではExcelの計算式の形にしなければならないので「=」が前について「=A1<TODAY()」となっていただけです。
- Newer:RGB値を取得するユーザー定義関数
- Older:グラフの種類を表すChart.ChartTypeのデータ型は?
Home » Excel(エクセル)の関数・数式の使い方 » 論理・情報 » 過去の日付かどうかを判定する