- ベストアンサー
エクセル(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 レタス 上記のような感じです。コード番号自体は重複しています。ただ店名コードが変わると、種類名が果物と野菜と区別されている感じです。 説明が分かりにくかったら補足致します。すみませんが分かる硬いましたら、ご教示ください。宜しくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
IF関数を使うと作れます。 =IF(A1=1,VLOOKUP(検索値,範囲1,列番号),IF(A1=2,VLOOKUP(検索値,範囲2,列番号),"")) ↑の【範囲1】の部分には、【支店コード1】の表範囲を、 【範囲2】には【支店コード2】の表範囲を入力してください。
その他の回答 (5)
【=IF(A1=1,VLOOKUP(検索値,範囲1,列番号),IF(A1=2,VLOOKUP(検索値,範囲2,列番号),""))】 念の為、応用もできるように、数式の解説も入れておきます。 もし、セルA1(支店コード)の値が「1」だった場合、検索値1(支店コード1)を範囲としたVLOOKUP関数を実行する。 そではなくて、セルA1の値が「2」だった場合、検索値2(支店コード2)を範囲としたVLOOKUP関数を実行する。 どちらでも無い場合「空白を表示する」 (数式の最後カッコの前の""が空白を表しています)
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
=vlookup(B2,choose(A2,本店の表,支店の表),2,FALSE) でおしまい。
- suekun
- ベストアンサー率25% (369/1454)
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)
ちょっと書き方がおかしかったので、訂正します。 誤)本店の表を”hon"として支店の表をとして定義します。 正)本店の表を”hon"として支店の表を"siten"として定義します。
- Turbo415
- ベストアンサー率26% (2631/9774)
表の名前を付けるやり方はわかりますよね。それを前提に書きます。 本店の表を”hon"として支店の表をとして定義します。 そして、C列に=IF(A2=1,VLOOKUP(B2,hon,2,FALSE),IF(A2=2,VLOOKUP(B2,siten,2,FALSE),""))と入れればできます。 もし、表の名前の定義がわからなければ、”hon"の部分と”siten"の部分に範囲を(たとえばE1:F10とか)を入れてください。 こんなのでどうでしょう。
補足
詳しくありがとうございます。fxをクリックすると表が出てくるのですが、2つの関数の書式はどのようにしていれていけばいいのでしょうか・・。