エクセルで
A1にTODAYで今日の日付が入ってます(2009/5/21)
B1~B10に任意の西暦を入力します
2009/05/19など
C1~C10に今日2009/5/21より過去だったら”1”を
未来だったら”2”を返すような関数はありますか?

A 回答 (7件)

エクセルのセルの日付は、セルの値が、日付シリアル値という、1900年1月1日からの実経過日数の正整数で入ることを理解していれば、こんな質問は起こらないでしょう。


関数で使うセル番地の示す実態は、セルの見た目ではなく、セルの値なのです。
この日付シリアル値の考えだと過去はその正整数値が、当然今日より小さいし、未来だったら大であるわけです。ですから正整数の大小比較の問題をIF関数で取り上げるだけです。これならここに質問しなくても済むのでは。私はこの点回答を繰り返してます。
しかし既出の回答者さえも、日付シリアル値の考えを説明して無いのが不思議です。
書式の設定で表示形式を「数値」の設定すると
39952 <-2009/5/19
39955 <--Now()
39958 <-2009/5/25
となり、質問の答えは
=IF(A1<TODAY(),1,2) が式です。
今日はどちらに入れるかは決めてください。
    • good
    • 0

こんにちは。



#1の方の数式をお借りました。

 =2-($A$1>B1)*1

比較式は、ひとつでよいはずです。
    • good
    • 0

回答番号 No.3です


失礼しました。

>同じ日は、1です。は
間違いでした

正しくは
同じ日は、2です。 
    • good
    • 0

基本的なIF分の論理関数で出来ると思います



C1=IF(B1="","",IF(B1<$A$1,1,2)) を入力、C10セルまで数式をコピーしますが、この式はB1の値が未入力の場合C1セルは空白にするという関数です
    • good
    • 0

回答でてました。


=IF(B1<$A$1,1,2) 下方にオートフィル
同じ日は、1です。
「エクセル 関数について」の回答画像3
    • good
    • 0

式は#1さんのよりもややこしくなりますが、



=IF($A$1<B1,1,IF($A$1>B1,2,0))

#1さんと異なり、「今日」ならば「0」を返しています。
    • good
    • 0

一例です。


現在は未来に含みました。
C1に=($A$1>B1)*1+($A$1<=B1)*2として下方向にコピー
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング