
Excelにて、VLOOKUP関数を使用し別ファイルを参照してます。
(こちらをAファイルとします)
別ファイル(こちらをBファイルとします)にはいくつかシートがあり、Aファイルに入力された値によって、Bファイルを参照するシートを変更したいのですが、うまくいきません。
AファイルはC:\workに
BファイルはC:\work\workにそれぞれ配置してあります。
AファイルのセルA1には任意の値を入力可能で、その値によって参照するBファイルのシートを変更できます。
VLOOKUP(B1,INDIRECT("'C:\work\work\[Bファイル.xls]"&A1&"シート'!$A$1:$B$100")
Aファイルに上記のような関数を書いても、#REFと表示されてしまいます。
どこがおかしいのでしょうか?
#AファイルとBファイルを同時に開いている状態だとうまく表示されました。

No.3ベストアンサー
- 回答日時:
VLOOKUPの問題というよりもINDIRECTの問題ですね。
INDIRECT関数は閉じているブックへの参照を作ることはできません。
代替案としては…
A案
各シート別の参照をそれぞれ用意しておいて、CHOOSEで選ぶ。
1.Aファイル上で、Bファイルへの参照をそれぞれ名前定義する
挿入>名前>定義
甲:='C:\work\work\[Bファイル.xls]甲シート'!$A$1:$B$100"
乙:='C:\work\work\[Bファイル.xls]乙シート'!$A$1:$B$100"
丙:='C:\work\work\[Bファイル.xls]丙シート'!$A$1:$B$100"
丁:='C:\work\work\[Bファイル.xls]丁シート'!$A$1:$B$100"
2.数式を下記のように設定
=VLOOKUP(B1,CHOOSE(MATCH(A1,{"甲","乙","丙","丁"},0),甲,乙,丙,丁),2,0)
B案
Bファイルのデータを、同一シートの単一の範囲として取得できる形に整形し、
INDEX,MATCH等を使って引く。
※VLOOKUPでは検索列を指定できないことに注意
※OFFSETでは閉じたブックを参照できないことに注意
=INDEX(INDEX(【データ範囲】,,【戻値列】),MATCH(B1,INDEX(【データ範囲】,,【検索列】),0))
【戻値列】,【検索列】はA列の値とMATCHを使って数値で指定する
C案
Bファイルのデータを、
Aファイルの非表示のシートにまるまる引っ張っておいて、
そこから選ぶ。
D案
VBAを使う
代替案まで提示していただき、本当にありがとうございました。
色々方法があるんですね。
締め切りまでもう少し時間があるので、
教えていただいた方法で何が一番ベストなのか試してみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Excel(エクセル) excelで検索した商品の画像(ネットワーク上の)を表示させたい。 3 2023/06/28 00:32
- Excel(エクセル) Excelで、別シートの表のステータスに伴った動的な自動転記をしたいです。 2 2023/06/14 15:56
- Visual Basic(VBA) VBAの参照先のファイル名をセルに書いて代入したい 2 2022/04/04 13:42
- Excel(エクセル) Excelの複数人での参照について 2 2022/06/01 13:38
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
- UNIX・Linux JSLinuxについて。 Linuxのこの手順のプログラミングは合っているでしょうか。 ①ホームディ 2 2022/06/20 15:33
このQ&Aを見た人はこんなQ&Aも見ています
-
別ファイルを開かず、INDIRECT関数を使用せずに、別ファイルのデータを求めたい
Excel(エクセル)
-
エクセル関数>参照ファイル名をセルから呼び出す
Excel(エクセル)
-
VLOOKUP,INDEX,MATCH 関数 開いていないファイルより複数の値を参照できない
Excel(エクセル)
-
-
4
シート参照で変数を使いたい(EXCEL)
Excel(エクセル)
-
5
エクセルで別ブックのセルを参照する式の内部
Excel(エクセル)
-
6
リンク先のファイルを開かなくても、値が読み込めるようにできますか?(SUMIFSを使ってます)
Excel(エクセル)
-
7
開いてないブックへの参照の変更方法
Excel(エクセル)
-
8
エクセルで開いていないbookのセルの値が欲しい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
9月17日でサービス終了らし...
-
エクセル ドロップダウンリスト...
-
特定のセルだけ結果がおかしい...
-
エクセルのdatedif関数を使って...
-
【関数】同じ関数なのに、エラ...
-
エクセルの循環参照、?
-
エクセル
-
【マクロ】アクティブセルの時...
-
【マクロ】A列にある、日付(本...
-
iPhoneのExcelアプリで、別のシ...
-
【マクロ】3行に上から下に並...
-
【条件付き書式】シートの中で...
-
【マクロ】EXCELで読込したCSV...
-
【エクセル】期限アラートについて
-
【マクロ】列を折りたたみ非表...
-
【マクロ】WEBシステムから保存...
-
【マクロ】オートフィルターの...
-
Excel 複数のセルが一致すると...
-
エクセルに、105と入力すると、...
-
3〜400人分のデータをExcelで管...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelファイルを開くと私だけVA...
-
エクセルについてどう関数を使...
-
マクロ・VBAで、当該ファイルの...
-
エクセルのセルに画像は埋め込...
-
エクセルで、一部のセルだけ固...
-
【マクロ、画像あり】A表かB表...
-
エクセルでカウントする
-
【マクロ】コードを少しでも、...
-
VBA_日時のソート
-
エクセルで教えてください。 例...
-
エクセル 月間シフト表で曜日ご...
-
セルの左に余白を付ける
-
エクセル
-
エクセルについて教えてください
-
2枚のエクセル表で数字をマッチ...
-
ExcelのIF関数との組み合わせの...
-
エクセルのファイルのコピーを...
-
エクセルで二つのブックの違い...
-
空白処理を空白に
-
Excelのチェックボックスについ...
おすすめ情報