• ベストアンサー

エクセルで任意でエラーメッセージを表示したいのですが

こんにちは。 エクセルでコード表を別シート上につくりVLOOKUP関数でコードを入力して表示しているのですが、別シートのコード表に登録されていない場合任意でエラーメッセージで ”登録されておりません”と言うように表示したいのですが 教えてください。 ちなみにAの1に10 Bの1には りんご と表示出来るようになってます。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

litoruさん、こんにちは。 Wendy02です。 >今作っているものは他の人が使うのでエラーメッセージを出してあげた方親切かなって思ったので。 私も、他人の使うものは、いくつかの「エラー処理」は考えてあげたほうが良いと思っています。 >ご指摘いただいたとおりエラーになっております。 そこで、 =VLOOKUP(A1,範囲,列番号,0) この式をもう一度、データの元の範囲をきちんと設定し直してみてください。次に列の数は範囲内ですか?何か、ずれているのではありませんか? 式を修正しようとすると、同じシート内でしたら、カラーリファレンスと言って、その引数の範囲に色の枠が付きますから、それで確認できるかと思います。

litoru
質問者

お礼

遅くなり誠に申し訳ありませんおかげさまで何とかなりそうです。 ありがとうございました。

その他の回答 (6)

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

#4です。 回答が続いているので、#4で述べたことをコードにしてみました。 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo errdesp Dim sh1 As Worksheet Dim sh2 As Worksheet Set sh1 = Worksheets("Sheet1") Set sh2 = Worksheets("Sheet2") If Target.Address = "$A$1" Then W = Application.WorksheetFunction.VLookup(sh1.Range("a1"), sh2.Range("a2:B6"), 2, False) sh1.Range("b1") = W End If Exit Sub errdesp: MsgBox "品名コードが表にありません" sh1.Range("a1:B1") = "" End Sub Sheet1のChangeイベントに下記を貼り付ける。 A1にコードを入力する。 Sheet2に コード 品名 1 りんご 2 みかん 3 バナナ 4 もも 6 ぶどう を作ったので、5や7以上を入れるとエラー表示が出ます。 使えるかどうかは心配ですが検討してください。 「Sheet1のChangeイベントに・・」は勉強してくだくとして、略します。

litoru
質問者

お礼

遅くなり誠に申し訳ありませんおかげさまで何とかなりそうです。 ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

#2 の Wendy02 です。 単に、この式だけで、 =VLOOKUP(A1,範囲,列番号,0) 範囲、列番号の引数を入れて、A1 に「登録がされているコード」を入れたら、正しく、値が返りますか? エラーが返っているのではありませんか?

litoru
質問者

補足

お答えありがとうございます。 ご指摘いただいたとうりエラーになっております。 >< VLOOKUP関数を使用しているものを今までは、自分専用に使っておりましたが、今作っているものは他の人が使うのでエラーメッセージを出してあげた方親切かなって思ったので。 お願いしますm(_”_)m

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

VLOOKUP関数の前にISERRORでIF文で、エラーメッセージを表示されるということは、セルの値にエラーメッセージ文字列がセットされてしまいます。普通はそれで苦情がないのですが、それを避けてメッセージだけを出して、値は空白にしたいとなると、VBAでも使わないとできないように思います。 VBAでもWorksheetFunctionでVLOOKUP関数が使えます。 これをユーザー関数の中で使い、エラーを捕らえて、MSGBOXでメッセージを出し(エラー各行で出る)、値は空白を返す。

litoru
質問者

補足

お答えありがとうございます。 遅くなって申し訳ありません。 VBAですか・・・。今まで使った事ないですね・・・。 うまく組めるかな・・・? 今まではVLOOKUP関数を使用している表を自分専用として使っておりましたが、今作っている表は初めて使う人用に作っておりエラーメッセージをだして上げた方が解かりやすいかと思って下ります。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

B1: =IF(ISERROR(VLOOKUP(A1,範囲,列番号,0)),"登録されておりません",VLOOKUP(A1,範囲,列番号,0)) というような、IFの論理関数で、分けてみたらいかがですか?

litoru
質問者

補足

お答えありがとうございます。 =IF(ISERROR(VLOOKUP(A1,範囲,列番号,0)),"登録されておりません",VLOOKUP(A1,範囲,列番号,0)) 確かに"登録されておりません”と表示されるのです、 登録がされているコードを入力しても"登録されておりません”と出てしまってます  T-T

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

=if(isNA(VLOOKUP(…)),"登録されておりません",VLOOKUP(…))

  • TAK_999
  • ベストアンサー率43% (42/96)
回答No.1

データメニューに「入力規則」というのがあります。 ここでセルに入力できる数値の範囲や、範囲外の入力があった場合の エラーメッセージを定義できます。

関連するQ&A

  • エクセルでVLOOKUP関数でエラーが出ました教えてください

    ある表を作り、違うシートに工種コードの表を作り 下記の関数を作ってみました =VLOOKUP(B5,工種コード!$C$2:$D$129,2,FALSE) すると #N/A このエラーが出ます ちゃんと表示されるところもあるのですが どうすれば良いか分かりません 教えてください

  • VLOOKUP関数のエラーについて

    ExcelでVLOOKUP関数を使って表を作成しようと思っています。コードを入力することによって、品名を表示させるようにしたいのですが、今までVLOOKUP関数は使ったことがないので、練習用として簡単な表を作成しました。コードはアルファベットA~Eと、数字1~5を使っています。コードが数字の場合は品名が正しく表示され、アルファベットの場合はAだけがエラーとなります。別の表で試したところ、やはりコードがAのものだけがエラーになります。なぜAがエラーになるのか理由がわかりません。 何が原因なのか、どうすれば正しく表示されるのかを教えていただきたく、よろしくお願いいたします。

  • Excel エラー表示を回避するようにしたのに・・・

    Excelで、VLOOKUP関数を使って、 「今日の日付の横のセルの中身を表示」させているのですが、 該当データがなかった時のエラー表示や0表示を回避したくて =IF(ISNA(VLOOKUP(TODAY(),元シート!A1:B10,2,0))="","", VLOOKUP(TODAY(),元シート!A1:B10,2,0)) としたのですが、これでもまだエラーや0が表示されます。 多分、日付そのものがない時に#N/A、 日付はあるが横に何も入っていない場合に0が 出ているように思うのですが、・・・ 何かいけないのでしょうか。自分では間違いが見つけられません。

  • Excelで都道府県を入力するとそのコードを表示させるようにするには?

    Excelについて質問です。 例えばセルB1に都道府県を入力すると、A1に都道府県コード(1~47までの数字)を表示させたいと思っています。 別シートのA列に都道府県コード、B列に都道府県を作って47都道府県コードとその都道府県を作ってVLOOKUPで表示させようとしましたがうまくできませんでした。 次にif関数を使って「B1が北海道ならA1に1を表示」というように47都道府県をif関数を重複させて作っていきましたがif関数を8つぐらいまでしか重複させることができず失敗に終わりました。 何か良い方法はありますでしょうか?

  • (再)VLOOKUP関数のエラーについて

    4/28にNo.9165193で質問し、データ不足にもかかわらず、複数の方からご回答をいただきましてありがとうございました。回答者の方からデータの不備をご指摘いただき、図を添付して再度質問をさせていただきます。Excelは2010です。よろしくお願いいたします。 sheet1は、コードを入力したら品名を表示するようにしたいのです。sheet2にはコード表があります。sheet2のコード表を参照して、sheet1の品名を表示させる形式にしたいと思っています。コードはA~Eと1~5です。コードAの場合、エラーとなり品名が表示されません。(sheet1のB3、B13、B14)  sheet1のC3の関数式は、=VLOOKUP(B3,コード一覧!$B$3:$C$13,2)です。C3以下はB列のセルが下に移動します。 以下は説明が重複しますが、図を添付するのは初めてで心配なので、念のため文章を付け加えます。 sheet1のB3 に「コード」、C3に「品名」、B3~B15までコードをランダムに入力しています。 コードを入力すると、C3~C15に品名が表示される。(表の作成時はブランク) sheet2のB1 に「コード一覧」、B3に「コード」、C3に「項目」、B4~B13は上から「A~E、1~5」、C4~C13は上から「キャベツ、レタス、白菜、小松菜、じゃがいも、りんご、みかん、もも、ぶどう、レモン」と入力しています。

  • VLOOKUP関数のエラーメッセージ

    VLOOKUP関数(エクセル2000)について質問です。 参照する表に該当する値がない場合、#N/Aというエラーメッセージ が表示されてしまうのですが、これを表示させなくする方法を教えて ください。

  • エクセル VLOOKUP について

    エクセルのVLOOKUP関数について質問です。 VLOOKUPでは文字列検索で、指定の値(文字列)を含むという検索値はできないのでしょうか? 現在A列に検索したいワードを含む文章が入っており、ワードを含む列の2番目のセル(Bの列)を 別シートへ呼び出そうとしたのですが、エラーになってしまします。 例えば、「りんご」という言葉を含む文章、含まない文章がある列で、検索値を「りんご」にして VLOOKUP関数を使用する事はできないのでしょうか? エラーになってしまうので、別シートにりんごと入力したセルを作成し、セル番号で指定してみたり、 書式設定を確認したりとしたのですが、成功しません。 もちろんFALSE(0)でもTRUE(1)でも試したのですが、できませんでした。 無理ですか?どこか自分が間違っていそうな点をご指摘いただけませんでしょうか?

  • excel vlookup関数の情報テーブル範囲について

    Excelのvlookup関数を使用しています。 商品コードを入力すると金額をvlookup関数を利用して表示しています。 データは別のシートに登録していますがデータ量が多くなってきたので 部門毎にシートを分けて、データのレイアウトは同じにしましたが 金額を表示出来ません。 vlookupの情報テーブルの範囲が複数シートで同レイアウトにした場合にどうすればいいかを教えてください。

  • エクセル2007 オートフィルのような

    請求書をエクセル2007で作りたいのです。  わからないことは、VLOOKUP関数で1つ作る。たとえばB3のセルに作った場合、B4から仮にB20までオートフィルでいっせいに作る方法はないのでしょうか?  別シート(シート2)に作成した商品一覧表から自分で商品コードをつけそれをもとにVlOOKUP関数で商品を摘出しています。それはできるのです。  やはり、B3のセルもB2のように1つ1つVLLOKUP関数をしていかなければいけないのでしょうか?

  • エクセル BLOOKUP関数について。

    =IF(B7="","",VLOOKUP(B7,中間,2,FALSE)) 上記のような式を入れて、エクセルで集計をしているのですが、1つのフォルダに同様の書式を用いたものが7枚あります。そのうちのシートの1枚だけが、上記関数が上手く動きません。#N/Å となります。コードをB7に入力すると、1~6までのシートはきちんと動くのに、7枚目のシートだけエラーになります。どのシートも関数は全く一緒です。数原因は何なんでしょうか・・。分かる方いましたら宜しくお願いします。

専門家に質問してみよう