• ベストアンサー

VLOOKUP関数で2シート分検索したい

1つのデータに2つシートがあり、 両方のシートで該当する値がないかを確認したいのですが どのようにしたら上手くできるのでしょうか? 「現在のシートで検索対象値がなく、Bのシートでも検索対象値がなかったら何も入力しない」 というイメージです。 ↓イメージを形にすると下記のようになるかと思ったのですが 「0」という数字がかえってきてしまいます。 =IFERROR(OR(VLOOKUP(E2,E:F,2,0),VLOOKUP(E2,B'!E:F,2,0)),"") 関数を修正、もしくは別方法があるのでしたら教えていただけないでしょうか。 どうぞ宜しくお願い申し上げます。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.3

やること: 1.検索値を現在のシートのE:F列から探す   有ればF列の値を取ってくる 2.無ければBシートのE:F列から探す   有ればBシートのF列を取ってくる 3.Bシートにも無ければ””にする ここで最初の1の「検索値」が「E2」では,まったくお話になりません。それじゃF2を取ってきて終わりです。 一応数式はこうなります。 =IFERROR(VLOOKUP(検索値,E:F,2,FALSE),IFERROR(VLOOKUP(検索値,B!E:F,2,FALSE),"")) #補足 多分あなたの本当のシート名は「B」じゃないんでしょう,変に間違った’とかが,あなたの数式には書き込まれてます。

piropiro24
質問者

お礼

早速ありがとうございました、またこちらが言い表したい内容をわかりやすくしていただき助かります。 仰る通りシート名はBではないのでシートらしき箇所を修正してご相談していました。 もう一度教えていただいた式で確認してみます、ありがとうございます。

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

その他の回答 (3)

回答No.4

E2 の有無を E:F という範囲で確認するという理屈は変だよという指摘は、No.1 さんと No.3 さんがおっしゃっているとおりです。ないわけがないですものね。(E2 がエラー値といった特殊な状況を除きます) 他に、残念ながら根本的に違っちゃってるな~という点を下に書きますね。よかったら今後の研究のご参考になさってください。 (1) IFERROR 関数と OR では、組み合わせがよろしくありません。理由は次のとおり。 IFERROR は、ある数式がエラーになるのかならないのかを判定する関数ですね。ある条件下ではエラーになることを期待しているわけです。 OR は、複数の等式や不等式の中に、真となるものが 1 つでも含まれていれば TRUE を、そうでなければ FALSE を返す関数。数値の 1 か 0 に相当します。つまりエラーを返すことは想定されていない関数ということになります。 OR の中身の数式がエラーとなる場合は全体もエラーにはなるのですが、それは OR が使われていなくても、元々エラーなわけです。OR がエラーにしたわけではありません。 ですから IFERROR で判定しようとするなら、OR に登場してもらう必要は全然ないということです。No.1 さんのように IF との組み合わせなら、OR も考えられます。 (2) OR の中身には、複数の等式や不等式を書きます。ですから VLOOKUP ではなく VLOOKUP>1 とか VLOOKUP="あ" などになっていないと、あまり意味を成しません。 OR(VLOOKUP,VLOOKUP,...,VLOOKUP) といった数式で、全ての VLOOKUP が数値を返すというケースでは意味がある可能性もありますが、そんなトリビアよりも、まずは OR の基本的な使い方からマスターしましょう。

piropiro24
質問者

お礼

関数について説明していただきありがとうございます。 すみません、そこまで深く理解していませんでした… これを機にOR関数勉強します。 アドバイスありがとうございました。

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

次のような式にします。 =IFERROR(VLOOKUP(E2,E:F,2,0),"") & IFERROR(VLOOKUP(E2,B'!E:F,2,0),"")

piropiro24
質問者

お礼

早速ありがとうございます。 &で関数をつなげることもできるのですね、勉強になります! ありがとうございました!

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

こんにちは! >現在のシートで検索対象値がなく、Bのシートでも検索対象値がなかったら何も入力しない とありますが、 >VLOOKUP(E2,E:F,2,0) の部分を見ると検索値がVLOOKUP関数の範囲内になりますので、「現在のシート」に検索対象がない! というコトはあり得ないコトになってしまいます。 まぁ~その辺は深く考えず、オーソドックスに =IF(OR(COUNTIF(E:E,検索値)=0,COUNTIF(B!E:E,検索値)=0),"","計算式") といった感じにしてみてはどうでしょうか?m(_ _)m

piropiro24
質問者

お礼

早速ありがとうございました、また説明が足らず申し訳ありません。 E列に新しい情報を入力していくので 同じ頁のE列で既に入力があればそこから検索値を出してほしい、 なければ別シートのE列で既に入力があればそこから検索値を出してほしい という意図で作成いたしました。スタートなのでE2としていますが 実際にはE125等になります。 関数も簡潔にと思ったら逆に変な相談になってしまいました、すみません。 アドバイスありがとうございます!

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

関連するQ&A

  • 関数VLOOKUP IFERRORについて教えてください。

    関数VLOOKUP IFERRORについて教えてください。 セル(A1)でドロップダウンリストから会場名を選択。 SHEET2から住所・郵便番号・電話番号等を自動展開させています。 =IFERROR(VLOOKUP(B4,SHEET2!A:E,2,FALSE),"")など SHEET2に該当データがない場合は、SHEET1のセル1に手入力をしたいのですが 入力値が正しくない・・とエラーで返されてしまします。 どうしたら手入力できるようになりますか? ドロップダウンリストの指定がいけないのでしょうか? また手入力したとき、SHEET1のセルA2~A5にも手入力をしたいのですが (これは一応入力できるのですが) 入力と同時に、A2~A5の関数指定が消えてしまいます。 関数を保護したまま入力値を入れる方法はあるのでしょうか? ご回答いただけますようお願いいたします。 エクセル2007で作業中です。

  • VLOOKUP 関数に関連して・・・・

    VLOOKUP 関数に関連して・・・・ Excel のBOOK名 「JAPAN」 があり 中に2Sheetあります。 Sheet 名 は「東京」 と 「日本」です。 Excel のVLOOKUP を使うために、 Sheet 「東京」の カラムBの範囲に 名前を「商品」とつけました。 2Sheet目 の「日本」 の カラム EとFに検索対象があり、範囲に名前「台帳」とつけました。 それで、 VLOOKUP 関数を 2Sheet目 の カラムGに  =Vlookup('東京'!商品,台帳,1,0) と入力すると、 Sheet名がBook名に勝手に置き換えられて しまい、  =Vlookup('JAPAN'!商品,台帳,1,0) となってしまいまい、 #Value! が出てしまいます。 1.この置き換えは問題無いのでしょうか? 2. 問題があるとすれば、どうやればとめられるのでしょうか? 3. 検索値は 数字13桁のJANコードなんですが、 数値あるいは文字列で統一が    必要でしょうか? 環境は   Windows  XP   Office  2003  です。 よろしくお願いいたします。

  • Excel2007 VLOOKUP関数の相談

    もし検索不足で重複した質問でしたら申し訳ありません。 VLOOKUP関数について、シート「A」に文字列を入力したら シート「リスト」シート上に同じ文字列があれば その文字列関係の情報を持ってくるというVLOOKUP関数を使用していました。 <使っていた関数> =IF(ISERROR(VLOOKUP(H306,リスト!A:B,2,0)),"",VLOOKUP(H306,リスト!A:B,2,0)) この入力する文字列が数字(別データからコピーして貼り付ける)に変わっただけなのですが、 何故か対象情報の抽出をしてくれません。 <使おうとしている関数> =IF(ISERROR(VLOOKUP(I2,データ0501!A2:F695,3,0)),"",VLOOKUP(I2,データ0501!A2:F695,3,0)) ネットで検索したのですが、関数情報が不足しているのか、 コピーした数字列の貼り付け方が間違っているのかわからない状況です。 恐れ入りますが解決策があればお教えいただければと思います。 どうぞ宜しくお願い申し上げます。

  • VLOOKUP関数で検索できません

    A列に勤務時間帯、B列に人数を入力したリストがあります。 E1にVLOOKUP関数を入力しましたがエラーになるので困っています。 A1 → 8:00~18:00  B1 = 5 A2 → 9:00~19:00  B2 = 7 D1 → 8:00~18:00 E1 → =VLOOKUP(D1,A1:B2,2,0) チルダを抜くと検索できるようになりますが、 VLOOKUP関数でチルダは使えないのでしょうか。 チルダありでも検索できるうまい方法があれば教えて下さい。

  • VLOOKUP関数について

    VLOOKUP関数を使用して、大項目あ~うに該当する小項目a~dを拾い出します。 [Sheet1]  A B C D 1 あ a  c 2 い b 3 う d [Sheet2]  A B C 1 い  b Sheet1に大項目と小項目のデータを、Sheet2を検索シートとします。 A1には検索する大項目を、B1にはVLOOKUP関数を使って小項目を拾い出します。このときに、B項目がbというのは単純に拾えるのですが、小項目が2つ以上ある場合が拾い出せません。 2つ以上ある場合はC1、D1とに表示させたいのですが、どんな関数を使えばいいのか分かりません。 マクロを使うのでしょうか? 教えてください。

  • Excel関数:vlookup関数について

    Excel関数:vlookup関数について 前回質問した内容に関連したことですが、vlookupで四番目の引数[検索の型]を省略した場合、対象となる検索値が見つからない時に、近似値を引っ張ってくるということなのですが、前回私が困った問題においては、対象となる検索値があったにも関わらず、「検索の型」を省略したことで、対応する値を正しく引っ張ってきてくれませんでした。 =vlookup(year()&"/"&month(),B:C,2)という式において、2010/1~2010/8までは対応する値を引っ張ってきますが、2010/9以降は正しくない値を引っ張ってきました。2010/9は2010/12に対応する値を、2010/10~2010/12は2010/1に対応する値を引っ張ってきていました。 この理由を教えて頂きければと思います。すみませんが、宜しくお願いいたします。

  • VLOOKUP関数について

    BとC列に抽出表があり検索範囲データがEとF、HとI列の2グループに分かれています。 VLOOKUP関数を使って検索範囲が2つのグループに分かれている場合の計算式を教えてください。 VLOOKUP関数以外でも出来る方法があれば教えてください。

  • VLookup関数でのソートについて

    お世話になります。 エクセルのVLookup関数でのソートについて質問いたします。検索して、似たような質問がなかったので、こちらで質問させていただきます。 画像をご覧ください。sheet1とsheet2の2つがあります。sheet1が元データで、sheet2にIDを入力すれば、その該当IDのみ、sheet1でソートされ、sheet2に値で張り付けられるような、関数?やり方は何か ないでしょうか?簡単に出来そうですが、なかなかよいやり方が見つかりません。 どうぞよろしくお願いします。

  • ExcelでのVLOOKUP関数について

    キー1を1000倍したうえで完全一致のVLOOKUP関数を使うと#N/Aエラーが発生します。 表示上は同じように見えますが内部的に異なる値となっているのでしょうか? 試しにエラー行に対して、キーとターゲットとなる当該セルを「=」でつないで確認しても「TRUE」となります。 添付画像は、 検索先としてA列に基準キーを130.168~130.192(step 0.001)で各行へ入力し、B列はA列を1000倍、C列はB列をROUND関数で整数値に丸めたものをキーとしました。 D列にVLOOKUPで参照する値を入力し、E列以降で以下の異なるパターンで値を参照しています。 (1)【E・F列】 ・E列に整数値をキーとして130168~130192(step 1)で入力。 ・E列をキーとしてB~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,B:D,3,FALSE)』 (2)【G・H列】 ・G列にE列/100をキーとして計算。 ・G列をキーとしてA~D列のVLOOKUP関数としています。   『=VLOOKUP(G3,A:D,4,FALSE)』 (3)【I列】 ・E列をキーとしてC~D列のVLOOKUP関数としています。   『=VLOOKUP(E3,C:D,2,FALSE)』 シートを複製し、キーの入力範囲を0.001~0.025(E列は1~25)にした場合はエラーがでませんでした。 その他の確認としてはTEXT、JIS、ASCなどを組み合わせて文字列としたキー同士のVLOOKUPではエラーにならず値を参照できています。

  • VLOOKUPの検索値の集計について

    複数シートのデータをVLOOKUPを使って、sheet1(B2~B50)に検索表示させ、更にその値を縦集計し、sheet1(B1)に表示させたいのですが、検索値が文字列のため集計ができません。 VLOOKUPの式に、文字列を数値に変換するように組み込む方法があれば教えてください。 (元データの表示形式は「標準」になっております。) sheet1(B2~B50)には、現在このような式を入れています↓ =IF(COUNTIF(sheet2!$A$2:$E$50,sheet1A!$2),VLOOKUP(sheet1!$A2,sheet2!$A$2:$E$50,2,FALSE)*1,"")&IF(COUNTIF(sheet3!$A$2:$E$50,sheet1!$A2),VLOOKUP(sheet1!$A2,sheet3!$A$2:$E$10,2,FALSE)*1,"")

このQ&Aのポイント
  • Windowsのアップデートが進まない場合、コンピュータの電源を入れたままにしておくことが重要です。
  • 更新プログラムが構成中で進行が停止した場合、電源を切るとデータが破損する可能性があります。
  • 安全な方法としては、マニュアルで再起動するか、特定のキーを押して更新を取り消すことができます。
回答を見る

専門家に質問してみよう