プロが教えるわが家の防犯対策術!

いつも参考にさせていただいています。

エクセルで,シート1のA1:A30に日付のデータがあり
シート2のC3に日付を入力するのですが,この日付が
シート1のA1:A30の中にない日付だったら,エラーを
出したいのです。エラーは隣のD3に出します。
これを入力規則とVBAは使わずに関数だけでやろうと
思っているのですが,うまくいきません。

もし良かったら知恵をお貸しください。お願いします。

A 回答 (5件)

こんな式でどうでしょうか



=IF(ISNA(VLOOKUP(C3,Sheet1!A1:A30,1,0)),"エラー","OK")

関数VLOOKUP()でC3の値でSheet1のA1:A30を検索します。
関数ISNA()でVLOOKUP()の結果がエラー値#NAかどうか検査します。
    • good
    • 0
この回答へのお礼

ありがとうございました!
エラーを出すことが出来ました。
VLOOKを使うなんて考え付きませんでした。
お礼が遅れてしまってすいません。

お礼日時:2003/09/28 20:28

参照する日付けテーブルをSheet1のA1:A5に


2003/4/30
2003/9/24
2003/8/25
2003/7/21
2003/5/2
とします。
Sheet2のC1:C6にテスト値として(質問のケースではC3だけ)
2003/8/25
2003/9/24
2003/9/25
2003/7/21
2003/5/2
2003/10/1
をいれ、Sheet2のD1に(質問ではD3のみに)
=IF(ISERROR(MATCH(A1,Sheet1!$A$1:$A$5,0)),"なし","あり")と入れD2:D5に複写します(質問のケースでは複写なし)。$は必ず付けること。
結果はC1:D5に
2003/8/25あり
2003/9/24あり
2003/9/25なし
2003/7/21あり
2003/5/2あり
2003/10/1なし
となります。未入力セルを対象としたエラー表示防止は
略。
本質問の「表が日付けである」と言っても、上記例では
37741
37888
37858
37823
37743
という数(日付けシリアル値)の表に過ぎないことを
見据えてください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました!
私も最初はMATCH関数を使って出来ないかな、と
悩んでおりました。こうすればよかったのですね。
お礼が遅れてしまい、すいませんでした。

お礼日時:2003/09/28 20:36

#2です。

ヴォケはアタシでした。
D3=IF(COUNTIF(Sheet2!A:A,C3)>=1,"","スカ")
ですね。
    • good
    • 0

こんばんわ。



これでどうでしょうか?
D3のセルに以下の数式を入れてみてください。
=IF((ISERROR(VLOOKUP(C3,Sheet1!A1:A30,1,FALSE)))=TRUE,"error","")

この場合A1:A30までない日付であればD3のセルに『error』とでます。
もし、sheet1のシート名を変更しているようでしたらSheet1の部分を変更してください。
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございました!
いろんな方法があるのですね。
助かりました。
お礼が遅れてしまいすいませんでした。

お礼日時:2003/09/28 20:31

D3=IF(COUNTIF(Sheet1!A1:A30,C3)=1,"エラーじゃ、ヴォケ","")


ではどうでしょう?
    • good
    • 0
この回答へのお礼

ご回答、ありがとうございました!
きちんとエラーを出すことが出来ました。
大変助かりました。
お礼が遅れてしまいすいませんでした。

お礼日時:2003/09/28 20:30

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