• ベストアンサー

エクセル(VLOOKUP関数)~続です。

先程の質問の続きになるのですが、 エクセルにデータを入力をしていきたいのですが、数が何万件とあります。まず、コード表が2つあります。(2つのコード表はコード番号が重複しています) 本店が1で支店が2です。 セルAの1に本店コード1を入力したら本店コード表を基にして、VLOOKUP関数でセルAの2に種類コードを入力したら、セルAの3に種類名がでてくる。セルAの1に支店コード2を入力したら支店コード表を基にして、VLOOKUP関数でセルAの2に種類コードを入力したら、セルAの3に種類名がでてくる。このようなつくりにはできますか? 店名コード コード番号 種類名  1      1111   りんご  1      1112   ぶどう  2      1111   人参  1      1114   なし  2      1112   レタス 上記のような感じです。コード番号自体は重複しています。ただ店名コードが変わると、種類名が果物と野菜と区別されている感じです。 説明が分かりにくかったら補足致します。すみませんが分かる硬いましたら、ご教示ください。宜しくお願いします。

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

  • ベストアンサー
noname#48398
noname#48398
回答No.3

IF関数を使うと作れます。 =IF(A1=1,VLOOKUP(検索値,範囲1,列番号),IF(A1=2,VLOOKUP(検索値,範囲2,列番号),"")) ↑の【範囲1】の部分には、【支店コード1】の表範囲を、 【範囲2】には【支店コード2】の表範囲を入力してください。

その他の回答 (5)

noname#48398
noname#48398
回答No.6

【=IF(A1=1,VLOOKUP(検索値,範囲1,列番号),IF(A1=2,VLOOKUP(検索値,範囲2,列番号),""))】 念の為、応用もできるように、数式の解説も入れておきます。 もし、セルA1(支店コード)の値が「1」だった場合、検索値1(支店コード1)を範囲としたVLOOKUP関数を実行する。 そではなくて、セルA1の値が「2」だった場合、検索値2(支店コード2)を範囲としたVLOOKUP関数を実行する。 どちらでも無い場合「空白を表示する」 (数式の最後カッコの前の""が空白を表しています)

noname#49321
質問者

補足

詳しくありがとうございます。fxをクリックすると表が出てくるのですが、2つの関数の書式はどのようにしていれていけばいいのでしょうか・・。

回答No.5

=vlookup(B2,choose(A2,本店の表,支店の表),2,FALSE) でおしまい。

  • suekun
  • ベストアンサー率25% (369/1454)
回答No.4

   A     B     C     D 1 店コード コード番   種類 2  1    1111    リンゴ 以上の配置で、それぞれの範囲が別に存在するとして まずはそれぞれの範囲の名前定義します。 範囲を選択して、挿入→名前→定義 で、好きな名前をつけます。 (仮にそれぞれを「あ」と「ア」にしたとします。注:数字は使えません) 準備はこれで終りです。 後はC列に =VLOOKUP(B2,INDIRECT(CHOOSE(A2,"あ","ア")),2,0) CHOOSE(A2,"あ","ア") は、数字を1=あ、2=アに変更してます。 INDIRECTは、あとアで範囲を切り替えてます。 先に名前をつけたそれぞれの範囲です。 A列に入力された数字から、範囲を判断してINDIRECTで切り替える。 あとは通常のVLOOKUPです。

  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.2

ちょっと書き方がおかしかったので、訂正します。 誤)本店の表を”hon"として支店の表をとして定義します。 正)本店の表を”hon"として支店の表を"siten"として定義します。

  • Turbo415
  • ベストアンサー率26% (2631/9774)
回答No.1

表の名前を付けるやり方はわかりますよね。それを前提に書きます。 本店の表を”hon"として支店の表をとして定義します。 そして、C列に=IF(A2=1,VLOOKUP(B2,hon,2,FALSE),IF(A2=2,VLOOKUP(B2,siten,2,FALSE),""))と入れればできます。 もし、表の名前の定義がわからなければ、”hon"の部分と”siten"の部分に範囲を(たとえばE1:F10とか)を入れてください。 こんなのでどうでしょう。

関連するQ&A