C1には、=TODAY()があり、現時点での日時を表しています。
そして、I2からI30000には、色々な日付
(例)2010-10-05 13:00:00
がランダムに記載されています。
C2からC30000に、ある関数を入れたいです。
I2が、C1以前なら、C2に1、C2に以降なら0
I3が、C1以前なら、C3に1、C3に以降なら0
I4が、C1以前なら、C4に1、C4に以降なら0
・
・
・
・
どなたか関数を作って頂けますでしょうか?
一番良い回答にはイルカ賞を進呈させて頂きます。
よろしくお願いいたします。
=IF(I2<=$C$1,1,0)
この数式を C2 に入力し、C30000 までコピーしてください。
ありがとうございました。
すぐに使用可能な関数でした。
Excelでは、内部的には、日付をシリアル値という数値のデータで管理しています。
たとえば2010年10月6日であれば、内部的には 40457 というシリアル値と呼ばれる数値なのですね。
ですから、~~以降、や~~以前という処理を行いたい場合には、単純に数値の多い少ないという考え方で処理することが可能です。通常の数値と同じように、不等号などを用いて大小を比較すればいいわけです。
たとえば……
=IF($C$1>I2,1,0)
上記のような数式で、C1よりもI2の日付が小さい(つまり~~より前)の場合に1を、そうでない場合に0を表示させることができます。ここでは、単純に不等号を使っていますので「以前」ではなく「より前」になる点に注意してください。
たとえば次のような数式を用いれば、完全に同じだった場合には「 true 」、~~より前だった場合には「 1 」、それ以外の場合には「 0 」を表示することができます。
=IF($C$1=I2,"true",IF($C$1>I2,1,0))
完全に同じだった場合には true ではなく 1 を表示したいなどの場合であれば、次のように不等号とイコールをうまく組み合わせれば、目的の結果を得ることができると思います。
=IF($C$1>=I2,1,0)
この数式を30000行分コピーすれば、そのまま使えます。
ありがとうございました。
今回は早かった方にイルカ賞を進呈させて頂く事にいたします。
ありがとうございました。
すぐに使用可能な関数でした。