• 締切済み

Excelで、日付をIF文の中に入れたい

エクセルで、あるセルに日付が入っているものに0を返し、それ以外は、 また別のセルの値を返すと言うIF文を作りたいのですが、 日付で引っかかっています。 お分かりの方、教えて下さい。

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.5

この質問の表現があいまい。 (1)あるセルの値が、ある特定の(決まった)日付であるか判定したい (2)あるセルのデータが、日付の意味であるとかどうかを判定したい。 ーー (2)は、日付のセルの値が日付シリアル値で、正整数でしかないので、日付たらしめているものは、表示形式でしかない と思う。 しかし表示形式を判別することは、関数の機能に含まれてない。 しかし例外があるので(LOTUSから来たCELL関数の"format")、それを使おうという回答が出る。 その内容は http://www.vitesse.cc/excel/cell.html 参照。 (1)は、多分質問にもならない事項と回答者は判断して、既回答は、(2)の方向になっているがそうなのだろうか。 日付のケースではないが、(1)のレベルの質問をする質問が時どきあるから思うので確認が必要と思う。 ーー それとVBAでもセルの値が日付になりうるかはIsDateで聞けても、日付で使われているかは、IsDateでは判らないのでは。 その個々のセルの表示形式はVBAで捉えられるが、表示形式の型は多数あり、日付の表示形式かどうか、判定するのは煩雑ではないでしょうか。 設定された表示形式が日付書式かどうかを一括して返してくれるプロパティなど無い様に思う。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

・数値が入ってて表示形式が日付になってると、cell("format",範 囲)で"D"で始まる文字列が返ってきます。 ・「日付ではない数値」に書き換えるには書式を「標準」や「数 値」に変更しないといけないので、次の再計算のタイミングで上記 の返り値がDで始まらなくなります。 ・日付を消したり文字列を入力しても上記は変化しませんが、今度 はisnumber(範囲)がFALSEを返すようになります。 以上を踏まえて、 =if(and(left(cell("format",範囲),1)="D",isnumber(範囲)),0,別のセル) てな感じになるんじゃないかと思います。 ってもういつもの面子が答えてますね。解説書いてる間に出遅れちゃったよ。

全文を見る
すると、全ての回答が全文表示されます。
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.3

=IF(AND(COUNT(A1),LEFT(CELL("format",A1),1)="D"),0,B1) 上記でA1が数値で且つセルの書式設定が日付の場合に0を返します。 ※VBAを使ったユーザー定義関数を使うなら、ISDATE関数で一発ですが...

全文を見る
すると、全ての回答が全文表示されます。
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんばんは。 A列 に日付が入る可能性がある場合、 =IF(AND(ISNUMBER(A1),LEFT(CELL("format",A1),LEN(A1)>0)="D"),0,B1) ただし、日付は、シリアル値で、書式は日付型になっていなければなりません。 シリアル値のみ、たとえば、39388 という数字では、これは、日付とはみなしません。しかし、仮に、1でも、書式が日付型になっていれば、日付が表示されますから、それは、日付として解釈されます。

全文を見る
すると、全ての回答が全文表示されます。
  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.1

例えば、次の様な事でしょうか。 A1が今年の日付ならば0、以外はB1セル内容を表示。 =IF(AND(A1>="2007/01/01"*1,A1<="2007/12/31"*1),0,B1)

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • excelのif文について

    excelのif文でうまくいかないことがあり御相談します。セルH4内にIF((B4-B3)=0,"","F4")という文章を組んで、セルB4とB3の値が等しい場合はブランクにして、等しくない場合はセルF4内の値を表示するようにしたいのですが、F4とそのまま表示されます(セルF4内部の値を表示したい)。何か間違っていると考えますが、それをご指摘いただきたいとお願いします。

  • ExcelでIF文などを使いこなしたいのですが・・

    Excelのセルの中にIF文などを埋め込んだりする処理を 何というのでしょうか? Excelをよく使うのですが、SUM関数などしか知らない為、 セルにIF文を埋め込む処理をもっと覚えたいと思うのですが どういう本を買えばいいのか分かりません・・。 Excelの関数の本でしょうか? Excelの関数の本については初歩的な本をもってるのですが、 関数ウィザード?を使ったものしか載ってなくて、 IF文などについては全く載っていません・・。 マクロ?とかいうものについて書かれた本を 買えばいいのでしょうか? それから、IF文等は、Excelだけではなく、Wordも使えるのでしょうか? 使えるとしたら、文法は全く一緒でいいのでしょうか?

  • エクセルのIF文

     エクセルの表で、セルに数字0が入っている場合は2、そうでなければ0と定義するのに、=IF(E$2=E5,E$3,0)という文を作ったのですが、セルが空欄でも2が返されてしまいます。  セルが空欄の場合は、0を返したいのですが、このIF文に何を補足すればよいでしょうか。

  • エクセルのIF文

    IF文が簡単なものしか分からないレベルの者です。 以下の条件においてIF文を作成する場合、どのようにしたら良いでしょうか? 御教示願います。なおエクセルのバージョンはエクセル2000です。 (1)A~C列の十数行のセルには文字が並んでいる(たとえばAXY12341,FAC236等)。 (2)あるセル内(A~C列以外のセル)に入力した文字が、A列のセルにある文字と同じものがあれば、 あるセルの色は赤色になる。 (3)あるセル内(A~C列以外のセル)に入力した文字が、B列のセルにある文字と同じものがあれば、 あるセルの色は青色になる。 (4)あるセル内(A~C列以外のセル)に入力した文字が、C列のセルにある文字と同じものがあれば、あるセルの色は黄色になる。

  • エクセル2003又は2007 IF文

    私は老人ホームのショートステイ(宿泊施設)で働いているものですが、今回はお泊りにくる利用者さんの予約表をエクセルで作ろうと思いやっていましたが、IF文を使った命令文?で少しわからなくなったので皆様のお力を借りたいと思います。 画像の表が見れたらいいのですが、見て頂きたいのは「予約太郎」さんの所なのですが、太郎さんは月に何度もショートステイ(宿泊)を利用されます、IF分で8月1日~9日までは「-(ハイフン)や>、<(大なり小なり)」が入るようにしてみたのですが、残りの入所2、退所2や入所3、退所3にも日付どおりのところにハイフン等を入れたいのですが、本を見ながらやっても詳しく書いておらず試行錯誤して命令文をいじってみてもエラーばかりになってしまい煮詰まってしまいました。 使用している命令文はこんな感じで =IF(C4=Sheet2!$C$46,"<-",IF(AND(C4>Sheet2!$C$46,C4<Sheet2!$D$46),"-",IF(C4=Sheet2!$D$46,"->",""))) でくみ上げています、利用する日付等がSheet2が入っているのは、利用する方が多く一つのシートでは入りきらずSheet2を使用しています。 また、予約太郎さんは毎月必ずこの日程でのお泊りではなく月に2~3日ほどのズレが生じます、なので8月1日~8月9日で予約をとってますが、帰る日は11日まで伸びたりするので、翌日の12日から先ほどのIF文のセルの値を変えるわけにもいかず…今使用している命令文の入所日1であるC46だけでなくE46、G46の3つを混同できるような命令文というのは作れないでしょうか。 退所日も然りでD.F.Hの各46セルの3つを一つの命令文に組み込めれたらと思っています。 使い方としては、シート2のC46から入所される日を、D46からは退所される日を入力すれば、日付がシート1のC5のカレンダー通りに、ハイフン等が入る用になっています。 それを同じ行であるシート1のC5行に「E46とF46」と「G46とH46」に日付を入力した時に同じ行にハイフン等を入る用にしたいのです。 要約したほうが伝わるかもしれませんが・・・なんかもう書いてて訳がわからなくなってすみません。 こんな説明で理解できる方がおられればご助力をお願いいたします・・・。

  • エクセル2007 if文の中に式を書く方法

    B1とA1に日付値が格納されていると想定します。 もし、B1が-の場合、0をセルに代入、-以外の場合、以下の計算をしたいです。 どのようなif文をかけばよろしいでしょうか? =(B1-A1)*24*60 宜しくお願いいたします。

  • エクセルの関数(IF文)について

    エクセルで表を作り、土・日を除いた日付を表示し、日付の隣のセルに水曜日の場合には○を付けるようにしております。もし水曜日が祝日の場合には、火曜日に○を付けようにしたいのですが、マクロを使用しないでIF文等で可能でしょうか。よろしくお願いします。

  • excel IF文について教えて頂きたいです

    excelのIF文を用いセルO5に対して 0~0.5のとき0 0.5~2.0   1 2.0~5.0  10 5.0~  100 のような分類を行いたく =IF(0<O5,0,IF(0.5<O5,1,IF(2<O5,10,IF(5<O5,100,"")))) このような入力を行ったのですが上手くいきません。 間違いについてご指摘頂きたいです。 よろしくお願いします。

  • Excel97で、If文をなんとかしたい

    IF文でなんとかなりそうなんですが、IF文を使った事がなくて。 A列   B列   C列    任意の位置のセルD 数式  文字列   数式  文字列 数式  文字列 数式  文字列 こんな表で、Bの文字列の値と、Dのセルの値が一致した時、Aの数式の値(数字)をCの列に表示させ、BとDの文字が一致しない時は、”エラー”を表示させたいんですが、どういう風にすればいいのでしょうか? IF文を使えばいいのでしょうか? どういう風に、数式を立てればいいのかわかりません。 どなたか詳しい方、教えていただけませんか?

  • エクセルのIF文で10個の条件を指定できるのですか

    単純な質問かもしれませんがよろしくお願いします。 エクセルのIF文でセルの値が1ならA、2ならB、・・・10ならJと表示せよというように10個の条件を指定した式を作ることができるのでしょうか。

専門家に質問してみよう