• ベストアンサー

エクセル(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#49321
noname#49321

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

  • ベストアンサー
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

  • エクセルのVLOOKUP関数について

    エクセルのシート(1)に組合員コード(7桁),氏名,商品,数量・・・が入力してあって、列を挿入し、その組合員コードの左3桁を表示するLEFTの文字列関数を入力します。 それによって3桁が表示され、その3桁のコードは、支店コードを意味するので、シート(2)に支店コード、支店名が入力してあるのでそこから参照するようにシート(1)の3桁が表示されている隣に新たに列を挿入し、シート(2)の支店コードから支店名を引き出すようにVLOOKUP関数を入力したら、「N#A」という表示が出て支店名が表示されません。 LEFT関数によって表示された文字列だと「N#A」で支店名が表示されないのですが、自分で3桁の数字を入力すると支店名が表示されます。 3桁の文字列の結果の値だけをコピーしても、「N#A」が表示され、支店名が表示されません。 文字列関数によって表示された結果から、VLOOKUPで参照は出来ないのでしょうか? 1つずつ自分で数字を入力するしかないのでしょうか? 他に何か別の方法でも構いませんので、教えていただけないでしょうか?

  • Excelのvlookup関数について

    関数初心者です。よろしくお願いいたします。 例を挙げます。 データベース    A       B       1 種目番号  種目名         2  1     ハードル走     3  2     バスケットボール 4  3     バレーボール    5  4     ソフトテニス     6  5     ソフトボール 7  6     ハンドボール    8  7     マット運動 9  8     跳び箱運動 10  9     平均台運動 上のデータベースで、種目番号をセルD2に入力すればセルD3に種目名が返るように関数を入力したいと思います。 その際の関数は、アクティブセルをD3にして、 =vlookup(D2,$A$2:$B$10,2) でいいと思うのですが、その際、まだ種目番号が決定していない場合(何も入力しない)は、#N/Aというエラーコードが表示されます。 このエラーコードを表示させないようにするためには、どのようにしたらよろしいでしょうか。 分かりづらい文章で申し訳ありません。ご不明な点あればまた説明いたしますのでご指摘ください。 よろしくお願いいたします。

  • VLOOKUP関数で困っています。

    コード番号の下二桁を取り出して、その値を表から探し出して商品名を表示させる作業をVLOOKUPで設定しようとしていますが、うまくいきません。 おそらく、下2桁を取り出したセルにはRIGHTB関数の計算式が入っており、取り出された2桁の文字列ではなく、計算式を表の中から探し出しているようでN/Aのエラーメッセージです。このような場合、どのようにすればよいのでしょうか。

  • ExcelのVLOOKUP関数について教えて下さい

    AのシートにA列に番号、B列に会社名を入力、しB以降のシートは月毎別に作成し、番号を入力して会社名を引っ張ってくると言う形のVLOOLUP関数を作りました。 番号はバラバラに入力するので、1の後に50があったりその後に10があったりします。 今までそれで上手く会社名が引っ張ってこれたのですが、先日24行目に5という数字を入れたら、 「#N/A」のエラーが出ました。 エラー内容は「無効な値のエラー」と出ていますが、Aのシートには5のデータは入力されており、20以降の数字を入れると会社名が正しく表示されます。 関数が間違っているのかと思い、別シートと比べましたが同じでした。 ちなみに関数は次の通りです。Aのシートのデータは2行目から番号1→147行目に番号146のデータが入っています。 =IF(A24="","",VLOOKUP(A24,店名!B22:C167,2,FALSE)) 何がおかしいのか全く分からず、途方に暮れております。 アドバイスをお願いします。

  • エクセルのVLOOKUP関数について

    エクセルの関数で悩んでいます。 やろうとしていることは、たとえばA1のセルに日付(年月日)を入力すれば、入力した月だけを判断してその月の掃除当番の名前がセルB1に表示されるようにしたいのです。 1月から12月までの掃除当番は決まってますので、事前に別のセルに表を作成(たとえばH1~H12には1月、2月・・・・12月と入力し、I1~I12にはそれぞれの掃除当番名を入力して)し、VLOOKUP関数で呼び出せないかなぁと思っていたのですが、セルA1の日付(たとえば2006/8/27)から8月と判断する方法がわからないのです。 どなたかご存知でしたらご教授頂けないでしょうか。 他の関数を使用してする方法などでも結構です。 宜しくお願いいたします。

  • 【エクセル】VLOOKUPが上手くいきません。。。

    VLOOKUP関数がうまくいかないので教えてください。 下のような表になっています。    A     B    C    D    E    F 1  番号  名前               コード 2 11-2345  ABC  11  #N/A  11  あああ 3 22-3456  DEF  22  #N/A  22  いいい  4 33-4567  GHI  33   #N/A  33  ううう 5 44-5678  JKL  44        44  えええ 6 ・・・・ ・・・               55  おおお 7 ・・・・ ・・・               66  かかか A、B列はがもとから打ち込んであるデータです セルC2は =LEFT(A2,2) でA列のハイフンの前を表示しています。 セルD2に =VLOOKUP(C2,$E$2:$F$7,2,FALSE) を入れると#N/Aが表示 されます。ちなみに、セルC2にLEFT関数ではなくて、数字をそのまま、 11と入力すると、セルD2に「あああ」と表示されます。どこがいけない のでしょうか? $E$2:$F$7はC列の二桁の数字に対応するコードの表になっています。 エクセル2003を使っています。

  • VLOOKUP関数の使い方について

    以前コード番号を入力すると自動的に商品番号が出るようにしたいと質問させていただきました。 教えていただいた方法を使い おかげさまでコード番号を入力すると隣のセルに商品番号が出るようになりました。 ただ一緒に単価も入力させたいのですがそれができません。 入力本体は(シート名 「仕入れ表」) E列 コード番号 F列 商品名 G列 数量 H列 単価 I列 小計(G*H) という構成になっています。 (A~C列は他の項目が入っています) 参照するシート名「cade」 同じブック内にあります。 A列コード番号 B列商品名 C列単価 が入っておりA~C列までを名前の定義で 「cade表」としてあります。 「仕入れ表」のI列(小計) の二行目より =IF(E2<>"",G2*H2,"") の数式がコピーしてあります。 同じく 「仕入れ表」のF列には =IF(E2<>"",VLOOKUP(E2,cade表,2,FALSE),"") と数式を入れました。 結果コード番号を入力すると商品名は出ますが 単価は入力されません。 単価も同時に入力する為にはどのようにしたらよろしいでしょうか? どなかた教えていただけると助かります。 宜しくお願い致します。

  • エクセルのVLOOKUP関数

    エクセルでVLOOKUP関数を使ってます。 一般的には、たとえば製品番号(数字)を入力すると 製品名(文字列)を引いてくるという使い方でVLOOKUP 関数を設定すると思いますが、製品名を入力すると、製品番号を引いてくるように設定しようと思ったらうまくできません。 何かよい方法はありますか?

  • エクセル関数(VLOOKUP?)

    エクセル関数の組み方を教えてください。 表Aにランダムな5桁の英数字(商品番号)があります。 表B(表Aとは別のエクセルファイルファイル)に Aとは並び順の異なった5桁の英数字(商品番号)があり 商品番号のとなりのセルに、その商品が載っているページ数があります。 表Aの商品がどのページにあるのかを探したく Aの隣のセルに、その商品のページ数を表示させたいのですが VLOOKUPなどで組めますでしょうか? -- A 00001 00005 00002 00006 -- B 00007 8 00005 10 00003 1 00006 20

  • Excelでの関数vlookupの応用

    関数については、ほとんど初心者の者です。 vlookup関数では、縦型の表の中から必要なデータを取り出すことができますが、それを応用して取り出した数値の合計を出すことはできますか? もし、vlookup関数以外の関数で、そのようなことをできる関数を知っている方、教えてください。お願いします。 (例:セルA列に科目、B列に科目コード、C列に金額の表で、    D列セルに科目コードを打ち込むと、E列にはB列から    抽出した科目コードの金額(C列)を合計して反映)

専門家に質問してみよう