• ベストアンサー

エクセルで範囲外のものを入力したらエラーを出したい(入力規則なしで)

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

質問者が選んだベストアンサー

  • ベストアンサー
  • fiva205c
  • ベストアンサー率43% (234/533)
回答No.1

こんな式でどうでしょうか =IF(ISNA(VLOOKUP(C3,Sheet1!A1:A30,1,0)),"エラー","OK") 関数VLOOKUP()でC3の値でSheet1のA1:A30を検索します。 関数ISNA()でVLOOKUP()の結果がエラー値#NAかどうか検査します。

eco2002
質問者

お礼

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

その他の回答 (4)

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

参照する日付けテーブルを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 という数(日付けシリアル値)の表に過ぎないことを 見据えてください。

eco2002
質問者

お礼

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

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.4

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

回答No.3

こんばんわ。 これでどうでしょうか? D3のセルに以下の数式を入れてみてください。 =IF((ISERROR(VLOOKUP(C3,Sheet1!A1:A30,1,FALSE)))=TRUE,"error","") この場合A1:A30までない日付であればD3のセルに『error』とでます。 もし、sheet1のシート名を変更しているようでしたらSheet1の部分を変更してください。

eco2002
質問者

お礼

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

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.2

D3=IF(COUNTIF(Sheet1!A1:A30,C3)=1,"エラーじゃ、ヴォケ","") ではどうでしょう?

eco2002
質問者

お礼

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

関連するQ&A

  • EXCELの入力規則について質問です

    EXCELの入力にセルに関数が入っている為、 入力規則を使って指定したセルに全く 文字入力をさせない方法を 考えているのですが、やり方がわかりません。 前に「シートの保護」で教えて頂いたのですが、 データを追加する場合は使えないので、 「シートの保護」、VBAでを使わない方法で、ご存知の方、 教えて下さいます様よろしくお願いします。 もし、出来ない様でしたら、「シートの保護」、VBA以外の方法でしたら 構いませんので、よろしくお願いします。

  • エクセルでの入力規則と自動入力について

    質問の前に検索をしてみたのですが、 似たようなものが見つからなかったので、質問させてもらいます。 シート2に名前→定義で「登録者名」と作り シート1での入力を入力規則を使い、リスト(コンボボックス) を設定しました。 シート2では 登録者名 会員番号 AAA  1234 BBB  5678 CCC  9101 DDD  1112 と名前の横のセルには会員番号を作っています。 そこで質問ですが、 シート1で登録者名を入力規則のリスト(コンボBOX) で選択して入力した場合、 隣のセルに自動で会員番号が表示できるような関数などは ないでしょうか? VBAなどはできないので、できれば関数でやりたいと思います。 【シート1】    A      B 1 AAA ▼   1234(←この1234を自動で表示させたい) 2     ▼ 3     ▼ 説明不足かも知れませんが教えてください。 よろしくお願いします。 エクセル2003です。

  • Excel 入力規則の複数指定について

    1つのセルに対し、複数の入力規則は出来ないのでしょうか? 例えば、Excelシートで A1に学校名を入力 B1に入学する年(西暦) C1に入学する月 を入力させたいのですが、 A1に学校名が入力されてなかった場合、 B1とC1は入力規則でエラーメッセージを出して入力不可にしたいのです。 逆に、A1に学校名が入力された場合、 B1には、入力規則で適切な西暦だけを入力可能にしたいのです。 C1には、入力規則で適切な月だけを入力可能にしたいのです。 適切な西暦や月が入力されなかった場合は、 入力規則でエラーメッセージを出して入力不可にしたいのです。 ちなみに現在使用している仕様は「WinXP、Excel2003」です。 Excel初心者なので、VBAは分かりません・・・。 関数は、少々分かりますので、入力規則以外でこの様な 複数指定の方法が出来るのでしたら、教えていただけないでしょうか? なにとぞ、ご教授のほど宜しくお願い致します。

  • エクセルの入力規則

    こんにちは。どうかお力貸してください。 A・Bの列に各数字が入っているとします。       A       B 1   目標値    実績値 2   500      600 3   200      100 4   300      200 5   600      800 この場合、「A2」より「B2」の方が大きい場合、 「B2」を青く表示したいのです。 色々考えて、入力規則で、 「隣のセルより値が大きい時、文字を青くする設定」 をいたしました。 1つ1つ設定していくのは面倒なので、 入力規則のみコピーをしてみましたが はじめの一つの条件でしかコピーされず、 結局1個1個設定しているのですが、数が多く途方にくれています。 ちなみに実際の表はいろんなデータが組み込まれていて すでに関数も入っています。 (「シート1」が一覧になっていてそれに入力すると  グループごとのデータが各シートに分かれて表示する感じです。) 入力規則の上手な使い方や、他の方法など どなたか御存知でしたら教えてください。 よろしくおねがいいたします。

  • エクセル 関数を自動的に入力するVBAで困っています

    VBA初心者です。 エクセルの入力シートで行ごとにデータを下記のように入力しています。      A      B       C 1   日付    品番     商品 2   10/25    10     りんご 3   10/26    20     みかん 4 5 6 2行目から順にデータを入力すると自動的にC列にVBAで VLOOKUP関数をセットして商品を検索したいのですが 上手くできませんでした。 教えてください。よろしくお願いします。

  • エクセルで入力規則が崩れてしまう。

    エクセル2003を使用しています。 入力規則を入れてから並べ替えをすると、せっかく入れた入力規則が崩れてしまいます。 ~入力内容~  あるデータの1つの項目に3つの分類があり、入力する際にその案件はA分類なのかB分類なのかC分類なのかを見て入力してもらうため、入力ミスがないようにデータには入力規則のユーザー設定を入れて、間違ったセルに入力するとエラーが出て入力できないようにしました。  その後、案件順び並べ替えたら、崩れてしまいました。  並べ替えてから入力規則を入れればいいと思いますが、案件は都度増えていき、そのたびに並べ替えをしたいのです。  何かいい方法があったら教えてください。

  • エクセル 入力規則について教えてください

    エクセルで顧客管理をしています。 C列に顧客名を入力していくのですが、 同じ顧客のデータは1行にまとめたいため、 C列には同じ名前が入力できないようにしたいのです。 C列全部に データ→入力規則→設定→数式  =countif(c:c,c1)=1 と、入力規則を設定しました。 この後、ダブリ入力をすると警告のメッセージボックスが出るようになったのですが、 中にはまったく同じ顧客名なのに入力できてしまったり、 また同じ名前はないのに、入力できなかったりします。 これは何が原因なのでしょうか? どうしてもダブリ入力はできないようにしたいのですが、他に何か方法はないでしょうか? 入力規則のようなものをVBAではできますか??

  • エクセル入力規則で関数を使ってエラーを表示させたい

    エクセル2003を使用しています。 入力規則の条件設定でユーザー設定を選び、関数を使用して、 E5のセルに「A」、もしくは、「B」で始まるデータを入力したときに、 エラーメッセージを表示させたいのですが、 うまくエラーメッセージを表示させることができません。 COUNTIF関数を使って =OR(COUNTIF(E5,"A*"),COUNTIF(E5,"B*")) と数式に入れてみたのですが、うまくいきませんでした。 どなたかご教示いただければありがたいです。よろしくお願いします。

  • エクセル2003で入力規則を使った場合、思った結果が出ない

    エクセル2003で入力規則を使った場合、思った結果が出ない A1セルに日付を入力します。但し入力規則を使って指定期間のみ入力可能としています。 指定期間とはB1セルとB2セルの日付の期間という意味です。 例えば、B1セルに2010年7月10日-B2セルに2010年8月10日とあれば、両日を含む、その期間です。 但し、B1セルとB2セルに入る日付はVLOOKUP関数にて別のシートより転送しています (ファームコントロールボタンを使って) そこで、A1セルに日付2010年7月15日を入力することが出来ます。 また、指定期間外(例-2010年7月9日)で入力すると、指定期間しか入力できませんと エラーメッセージがでます。 ここで A1セルより先に、B1セルとB2セルに日付が入ってる場合は、A1セルに入力規則通りの効果があるのですが A1セルに日付が入力されたままで、ファームコントロールボタンを使いB1セル、B2セルに違う日付を選ぶと A1セルの日付が期間外でも残ってしまいます。 この場合でも、A1セルに入力出来ないように、且つエラーメッセージが出るように出来ないでしょうか。

  • エクセル データの入力規則

    いつも参考にさせていただいています A列B列はロックをかけず、C列D列はロックをし、シートの保護をかけています。 A3~A10 入力可 B3~B10 条件により入力可 C3~C10 入力不可 D3~D10 入力不可 C列D列は 一定の条件で保護を解除し入力しています。 B列の条件は、 入力規則で C列D列が空欄でないときは 停止のエラーメッセージが出るようにしていました。 通常に入力すると停止メッセージが出て入力が出来ないのですが、 貼り付け入力をした場合入力が可能となっております。 貼り付けなどでも入力が出来ないような設定方法 (入力をしようとすると、エラーメッセージが出るような)があればと思い、質問させていただきました。

専門家に質問してみよう