• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 複数条件VLOOKUPの質問です。)

エクセルで複数条件のVLOOKUP関数を使って顧客情報を表示する方法

このQ&Aのポイント
  • エクセルで複数条件のVLOOKUP関数を使って、顧客番号に応じたエリアと担当者を表示する方法を教えてください。
  • メインデータベースとサブデータベースには異なる顧客情報があり、表示ファイルに顧客番号を入力すると、対応するエリアと担当者が自動的に表示されます。
  • VLOOKUP関数の使用方法について試行錯誤してみましたが、うまく機能しませんでした。助けていただけると幸いです。

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

  • ベストアンサー
  • kouji_124
  • ベストアンサー率46% (283/605)
回答No.2

VLOOKUP関数は、指定した範囲の左端の中で一致する値を検索します。 つまり、メイン・サブのデータの並び方が現在のままですと、C列ではなくA列を検索してしまいます。 なので、VLOOKUP関数では、データの並び替えを行わない限り不可能と言うことになります。 何らかの形でA列のデータの前にC列のデータが挿入できれば、以下の式で可能な筈です。 たとえば、メインデータベースに空のシートを挿入し、A1に[=メインデータベース!C1]、B1に[=メインデータベース!A1]、C1に[=メインデータベース!B1]とします。 以降は順に行番号を増やしていきます。 こうする事で列を入れ替えたデータが用意できる筈です。 行方向は数式をコピーするだけで番号が自動で加算されて行く為、何千件もデータがあっても問題にはならないと思います。 また、EXCELの関数はセルの[値]に対して実行される為、セルの内容が数式であってもその結果の値に対して実行されますので、上記のやり方で列の情報を並び替えても問題なくVLOOKUPで 検索出来る筈です。 ※A1顧客番号、B1エリア、C1担当者とした場合 B2 =IF(ISNA(VLOOKUP(A2,メインデータベース!A:B,2,FALSE),VLOOKUP(A2,サブデータベース!A:B,2,FALSE),VLOOKUP(A2,メインデータベース!A:B,2,FALSE)) C2 =IF(ISNA(VLOOKUP(A2,メインデータベース!A:B,3,FALSE),VLOOKUP(A2,サブデータベース!A:B,3,FALSE),VLOOKUP(A2,メインデータベース!A:B,3,FALSE)) 以下[A2]の部分を[A3]、[A4]、[A5]、・・・・と置き換えれば良いです。 ISNA関数は引数がエラーを表す[N/A]で有るかを検査する関数です。 VLOOKUP関数の最後の引数に[FALSE]を指定することで、完全に一致する物を検索し見つからなかった場合は[N/A]を返させる事が出来ます。 メインデータベース内にデータが見つからなかった場合、ISNA関数の結果がTRUE(真)になる為、サブデータベースに対しVLOOKUP関数を実行します。 メインデータベース内にデータが見つかった場合、ISNA関数の結果がFALSE(偽)になる為、メインデータベースに対しVLOOKUP関数を実行します。

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

その他の回答 (4)

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.5

 今仮に、「メインデータベースは「MainDB.xls」という名前のブックのSheet1に入力されていて、 サブデータベースは「SubDB.xls」という名前のブックのSheet1に入力されていて、 表示先は「View.xls」という名前のブックのSheet1であるものとします。  その場合、表示ファイルのB2セルに、次の数式を入力してから、B2セルをコピーして、B2~C9の範囲に貼り付けると良いと思います。 =IF(COUNTIF([MainDB.xls]Sheet1!$C:$C,$A2),INDEX([MainDB.xls]Sheet1!A:A,MATCH($A2,[MainDB.xls]Sheet1!$C:$C,0)),IF(COUNTIF([SubDB.xls]Sheet1!$C:$C,$A2),INDEX([SubDB.xls]Sheet1!A:A,MATCH($A2,[SubDB.xls]Sheet1!$C:$C,0)),""))

g0189
質問者

お礼

回答ありがとうございました!

全文を見る
すると、全ての回答が全文表示されます。
  • mar00
  • ベストアンサー率36% (158/430)
回答No.4

全ての顧客番号が必要なのであれば 表示ファイルのSheet1にメインデータをコピー その下にサブデータをコピーして、顧客番号の列を A列に移動(右へシフトして移動)して並べ替えれば 終わりだと思います。 入力された一部だけ必要なのであれば、上の作業をしてから Sheet2にでもVLOOKUPを使って表示させればいいと思います。

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

「メインデータベース」がブック MainDB.xls のシート MainSheet1 に、 「サブデータベース」がブック SubDB.xls のシート SubSheet1 に、 それぞれ入力されていると仮定したとき、別ブック View.xls のシート ViewSheet1 における式は、例えば次のとおりです。添付図参照 1.セル B2 に次の[条件付き書式]を設定     数式が   =ISERROR(B2)     フォント色 白 2.セル B2 に次式を入力して、此れを右隣のセルにドラッグ&ペースト     =IF(ISERROR(MATCH($A2,[MainDB.xls]MainSheet1!$C:$C,0)),INDEX([SubDB.xls]SubSheet1!$A:$B,MATCH($A2,[SubDB.xls]SubSheet1!$C:$C,0),COLUMN(A1)),INDEX([MainDB.xls]MainSheet1!$A:$B,MATCH($A2,[MainDB.xls]MainSheet1!$C:$C,0),COLUMN(A1))) 3.範囲 B2:C2 を下方にズズーッとドラッグ&ペースト

g0189
質問者

お礼

回答ありがとうございます! わざわざ画像まで貼って頂き、感謝しています。

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

この表からは、VLOOKUP関数は使用できません。(検索列は表の最左端にある事が条件です) 抽出はINDEX(メインファイルのA:A,MATCH($B2,メインファイルの$C:$C,0))の組合わせになります。 かなりラフですが一例です。 =IF(COUNTIF(メインファイルの$C:$C,$B2),メインファイル抽出式,サブファイル抽出式)

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

関連するQ&A

  • Excel 2007 vlookupについて

    Excel 2007 vlookupについて 同じシートでA列とB列の2列にある型番で一致するものをC列に表示させたいです。 実際A列の型番は一意の番号です。 B列の型番は同じ番号がございます。 型番1は100行ぐらい。 型番2は300行ぐらい。 C列にどのようなvlookupを記載すればよろしいでしょうか。 ※C2以降に結果が表示されるようにしたいです。

  • 複数条件でのVlookup

    Vlookupなのですが複数条件でも使えるのでしょうか? たとえばふと津のファイルを比較し、違いの部分を抜き取る作業をするとします。 一つのファイルでは A       B C 名前    電話番号 会員番号 佐藤    000-000-00  21 田中    111-111-11 22 池田    222-222-22 33 もう一方のファイル(Newファイルとします)で 佐藤   000-000-11 55 田中   111-111-11 22 池田   222-22-33 44 vlookup で名前だけ一致するものを選び、Newファイルの会員番号を返すようにすると、佐藤、田中、池田が全てえらばれてしまい、会員番号として、55,22,44が帰ってきてしまいます。 しかし、両ファイルで名前と電話が一致するものを選びNEWファイルの会員番号を返すならば、 田中だけの会員番号が帰ってくるとおもいます。 複数条件のVlookupというのはできないのでしょうか? Dget関数というのをしらべましたがいまいちよくわからずvlookupとかでできればいいなと思うのですが。 教えてください。  

  • エクセルのVLOOKUPに関して

    お世話になっております。 VLOOKUP関数になるのか他の関数になるのか分からないのですが ご教授よろしくお願い致します。 A1セル      A2セル      A3セル 店番号      商品名       担当 1         ア          山口 2         イ          大山 3         ウ          斎藤 1         エ          中村 1         オ          山口 上記のような情報がシート1にあり、 シート2のA1セルに店番号を入力した時に シート2のB列に同じ店番号を持つ商品名をB1、B2、B3...セルへとリスト化し、 C列に担当をC1、C2、C3...セルへとリスト化したいのですが、 どのような関数を使用すれば可能となりますでしょうか。 よろしくお願い致します。

  • 複数条件を満たすVLOOKUP関数

    Excel独習者です。 次の3つのシートがあります。 「入力窓口」「M1組」「M2組」「M3組」 シート「M1組」「M2組」「M3組」には各クラスの生徒の出席番号(B列)と氏名(C列)が名票としてあります。 シート「入力窓口」のcells(C,6)にクラス名を入力します。 シート「入力窓口」のcells(H,7)に出席番号を入力するとcells(I,7)に該当クラスの該当番号の氏名が 表示されるようにcells(I,7)に次の式を入力しましたがエラー表示でうまくいきません。 =IF(H7="","",IF(C6="M11",VLOOKUP(H7,'M11'!$B$4:$C$11,2,IF(C6="M12",VLOOKUP(H7,'M12'!$B$4:$C$11,2, IF(C6="M13",VLOOKUP(H7,'M13'!$B$4:$C$11,2,))))))) どのような式を入力すべきかご助言いただけたら幸いです。 なお、OSはVISTA、Excelは2007です。 よろしくお願いいたします。

  • エクセルで基本となるファイルからデータを自動で取込みたい

    パソコン初心者です。宜しくお願いします! エクセル同士です。 ファイル(1)は元となるデータ、 a口座番号・b顧客名・c担当者が入力されています。 ファイル(2)には、a口座番号のみ入力されています。 ファイル(2)にファイル(1)からのb顧客名やc担当者が自動で取込まれる様にしたいのですが可能ですか? (例えば) ファイル(1) a、口座番号  b、顧客名  c、担当者 100          くま       あじ 200          いぬ      しゃけ ファイル(2) 100     (自動で入力) (自動で入力) できれば簡単な方法で教えてください-.-;

  • vbaにvlookupを組み込む

    お世話になります。 エクセルのマクロにvlookupを組み込みたいのですが,エラーが出てしまいます。 用意したものは「顧客名簿」というシートで,A列に顧客番号(6ケタの数字),B列に顧客名が入っています。C列以降はその他のデータが入っています。 「トップメニュー」というシートにあるマクロボタン「顧客抽出」を押すと,インプットボックスが現れます。これに顧客番号を入力すると,メッセージボックスが現れます。 この時のメッセージボックスに,インプットボックスに入力された番号により「顧客名簿」から顧客名を取り出し,「○○さんのデータを表示しますか」としたいのですが,ここでエラーが出ます。(○○は,「顧客名簿」のB列にある名前です) 実行時エラー 1004 WorksheetFunctionクラスのVLookupプロパティを取得できません。 組んであるマクロは以下の通りです。 Sub 顧客抽出() Dim ans As String, ans2 As String     ans = InputBox("顧客番号を入力", "入力", "")         If ans = "" Then             MsgBox "顧客番号が空白です" & vbNewLine & _                "処理を中止します", vbOKOnly         Else             If WorksheetFunction.CountIf(Worksheets("顧客名簿").Range("A1:B5000"), ans) = 0 Then                 MsgBox "顧客番号が登録されていません", vbOKOnly             Else                 ans2 = WorksheetFunction.VLookup(ans, Worksheets("顧客名簿").Range("A1:B5000"), 2, False)                 If MsgBox(ans2 & " さんのデータを表示しますか", vbYesNo) = vbYes Then                     Sheets("顧客情報").Select                     Range("D4").Value = ans                 Else                     MsgBox "処理を中止します", vbOKOnly                 End If             End If         End If End Sub 途中にある ans2 = WorksheetFunction.VLookup(ans, Worksheets("顧客名簿").Range("A1:B5000"), 2, False) の部分でエラーが出るのですが,解決策が見当たりません。 おそらくRange("A1:B5000")の部分に不具合があると思うのですが,どう対処すればいいでしょうか。 詳しい方,ご教授願います。

  • エクセル VLOOKUP 番号重複でも表示させたい

    初めて質問いたします。 以下の表を別シートで検索して価格を表示させたいのですが、 顧客番号が重複により、表示させたい価格が出せません。 ------------------------------------ 例:シート1      A      B    C    D    1 顧客番号_会社名_商品_価格 2     01_A社__テレビ_5,000 3     01_A社__モニタ_2,000 4     02_B社__テレビ_5,000 5     03_C社__テレビ_5,000              :              : ------------------------------------ シート2 B2に以下の式を入れています。  =VLOOKUP($A2,シート1!$A$2:$D$5,4,0)      A      B      1  顧客番号_価格  2      01_5,000 3      01_5,000 ←ここを、2,000と表示させたい。 ------------------------------------ わかる方がおりましたら、ご教示ください。 よろしくお願いいたします。

  • 複数条件によるVLOOKUP?というか・・・

    小売を営むと仮定します。 取り扱いは、仮に 商品A 仕入先:a 仕入れ:100円 販売:110円 商品A 仕入先:b 仕入れ:105円 販売:115円 商品B 仕入先:a 仕入れ:200円 販売:230円 商品B 仕入先:c 仕入れ:220円 販売:250円 商品C 仕入先:b 仕入れ:300円 販売:350円 (商品A同士、商品B同士は全くの同一物) とします。 この条件下、 ・A1に、リストからの入力で商品を選択(仮に商品B) ・そうするとB1に、A1を反映して仕入先がaとcしか現れないような リスト入力を設定。 ・次に上の2つを反映してC1に仕入れ、D1に販売の価格が自動に 出てくる。 ・実質の手入力は、数量だけ みたいな事は実現できないでしょうか? 宜しくお願い致します。

  • エクセルで複数の条件を入れる

    エクセルの計算式で分からない事があるので教えて頂けないでしょうか。 以下の様に、あああ支店A評価の数。あああ支店B評価の数。あああ支店C評価の数。・・・おおお支店C評価の数。とカウントしたい時の計算式を教えて下さい。    A    B   C 1 支店  点数 ランク 2 あああ  30   A 3 あああ   2   C 4 いいい  11   A 5 おおお   4   B 6 あああ   5   C とデータベースがある時に、以下の様に表示させたいのですがどの様な計算式を使用すればいいでしょうか?       A     B  C  D 8           A  B  C 9  あああ支店  1  0  2 10 いいい支店  1  0  0      ・      ・ 13 おおお支店  0  1  0  

  • EXCEL VLOOKUPで含む検索

    _|    A    |  B   | C  | | Z | 1 |赤いイチゴ |みかん |\30 | |   | 2 |        |リンゴ  |\50 | |   | 3 |        |イチゴ  |\80 | |   | A1に検索値(例:赤いイチゴ)を入力すると、検索範囲(B:C列)のっている単語が含まれていれば値段をZ1に表示したいのですが、うまくいきません。 検索値が一致ならば、=VLOOKUP(A1,$B:$C,1,FALSE)だとおもうのですが、=VLOOKUP("*"&A1&"*",$B:$C,1,FALSE)だと#N/Aエラーが出ます。 どなたか、知恵をお貸しください。

専門家に質問してみよう