dポイントプレゼントキャンペーン実施中!

初歩的な質問で申し訳ありません。

Excelのif関数で、2007/3/31以前か以降か、という式を作りたいのですが、
2007/3/31をどう入力したらいいのかわかりません。

=if(a1>2007/3/31,"以前","以降")

こんな感じにしたいのですが、
このままだと2007÷3÷31、という結果になってしまいます。

他のセルに日付を入れるのではなく、式中に直接入れるにはどうしたらいいでしょう。
あとでわかりやすいよう、シリアル値ではなく、日付表示の形でいれたいのです。

ご回答、よろしくお願い致します。

A 回答 (6件)

=IF(A1-"2007/3/31">0,"以降","以前")

    • good
    • 0
この回答へのお礼

ありがとうございます!できました!

これぞ求めていた方法です。
でもなんで、a1-"2007/3/31">0はよくて、a1>"2007/3/31"はだめなんでしょうね…。

お礼日時:2008/04/15 09:08

#3さんの尻馬に乗りますが、


「以前」「以降」も両立しませんね。
この式なら、「以前」と「より後」とか「以前」と「越え」などでしょうか。
何気なく使ってしまいますが、微妙な場合表現に困りますね。
    • good
    • 0
この回答へのお礼

ご指摘、ありがとうございます。
たしかにそうですね。

お礼日時:2008/04/15 08:56

(1)DATE関数で()の中に具体的な数字を入れる


(2)DATEVALUE関数を使う。
=IF(A2>DATEVALUE("2008/4/12"),"以後","以前")
(3)日付リテラル(表現)を使う
(4)空きの1セルに2008/4/15などと入れて、IF関数の中でH1と参照して利用する。
などの方法が考えられる。
--
(3)を、小生は以前から気にしているが、記述が見つからない。アクセスは
#・・#
VBAでは
Sub test03()
For i = 1 To 30
If Cells(i, "A") >= #4/12/2008# Then
Cells(i, "C") = "以後"
Else
Cells(i, "C") = "以前"
End If
Next i
End Sub
であるが、関数の中でのリテラルの日の記述が見つからない。
時刻は"12:30"であるが。
IFの中で、"2008/4/12"はダメのようだ。
=A2-"2008/3/31"はうまくいくが。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

アクセスだと##なんですね。勉強になります。

お礼日時:2008/04/15 09:10

>=if(a1>2007/3/31,"以前","以降")



式云々の前に、結果の以前、以降が逆ではありませんか?

=IF(A1>DATEVALUE("2007/3/31"),"以降","以前")

このように日付を直接式に入れると、違った日を比較したいとき日付の変更が必要になるので、
比較する日付を別なセル、例えば、F1 とかに入れておいてそれで比較した方が、
別な日付で比較したいとき、式の変更は必要ないので便利だと思いますが。

=IF(A1>F1,"以降","以前")

以上。
 
    • good
    • 0
この回答へのお礼

ご指摘、ありがとうございます!
確かに逆ですね。恥ずかしい(><)

日付を簡単に変更できないよう、式の中に入れ込みたかったのです。
できれば、関数も使いたくないのですが…。難しいですよね。

お礼日時:2008/04/14 18:39

次の方法は如何でしょうか。


=if(a1>"2007/3/31"*1,"以前","以降")
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます!

一番理想に近い形です…が、試してみるとエラーになってしまいます(><)
""で囲むと文字列扱いになってしまうから。*1はできないのでは?

お礼日時:2008/04/14 18:41

=IF(A1>DATE(2007,3,31),"以前","以降")


これでいかがですか?
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございます。

わかりやすいですね!
でもできれば、関数も使いたくないのです。

こう、なにかしらの記号ではさめばシリアル値として認識してくれる、
みたいな便利な方法ないでしょうか?

お礼日時:2008/04/14 18:43

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