- 締切済み
excel vlookup関数の情報テーブル範囲について
Excelのvlookup関数を使用しています。 商品コードを入力すると金額をvlookup関数を利用して表示しています。 データは別のシートに登録していますがデータ量が多くなってきたので 部門毎にシートを分けて、データのレイアウトは同じにしましたが 金額を表示出来ません。 vlookupの情報テーブルの範囲が複数シートで同レイアウトにした場合にどうすればいいかを教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
下記でかろうじてできると思うが、この辺になると、エクセルでは無理があるのではと思う。 散らばった表の索引表を追加せざるを得ない(下記Sheet5)ように思う。INDIRECT関数を使って検索表を振り分けている。 -- 例データ(検索表が3つに分かれた例) (シート1) シート名=TBL1 商品コード 単価 1201 1250 1203 1150 1205 2550 (シート2) シート名=TBL2 商品コード 単価 2201 250 2203 150 2205 550 (シート3) シート名=TBL3 商品コード 単価 3201 200 3203 100 3205 500 (シート4)(索引表シート) シート名=Sheet5 商品コード 表名 1201 TBL1 1203 TBL1 1205 TBL1 2201 TBL2 2203 TBL2 2205 TBL2 3201 TBL3 3203 TBL3 3205 TBL3 --- Sheet1の A列 B列 商品コード 単価 1203 1150 2205 550 2203 150 3205 500 B2の式は =VLOOKUP(A2,INDIRECT(VLOOKUP(A2,Sheet5!$A$2:$B$100,2,FALSE)&"!$A$2:$B$100"),2,FALSE) と入れて下方向に式を複写する。 A列が空白の場合、空白にする、などの式は、判ると思うので省略した。付加してください(=IF(A1="","",上記))
別セルに(部門シート名)を入力するようにして このセルをA1、検索値がB1だと仮定すると、 =VLOOKUP(B1,INDIRECT(A1&"!検索範囲"),2,FALSE) 或いは、それぞれの部門別のシート毎の検索範囲に 部門名と同じ名前をつけておけば =VLOOKUP(B1,INDIRECT(A1),2,FALSE) で済みます。