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関数で別ファイルを指定するとき、ファイルのパスを変数にしたい
Microsoft ASP
-
-
4
エクセルで他のシートを動的に参照する(シート名だけ)
Excel(エクセル)
-
5
vlookup関数の引数を変数で指定することはできますか?
Excel(エクセル)
-
6
エクセル関数>参照ファイル名をセルから呼び出す
Excel(エクセル)
-
7
Excel 相対パス
Excel(エクセル)
-
8
INDIRECT関数の代替方法は?
Excel(エクセル)
-
9
エクセルで開いていないbookのセルの値が欲しい
Excel(エクセル)
-
10
シート参照で変数を使いたい(EXCEL)
Excel(エクセル)
-
11
エクセルでエラーが出て困っています。
Excel(エクセル)
-
12
エクセルのエラーメッセージ「400」って?
Visual Basic(VBA)
-
13
EXCEL関数での文字の色での判別
Excel(エクセル)
-
14
エクセルでリンク貼り付けしたリンク先のシート名を可変にしたい
Excel(エクセル)
-
15
VLOOKUPとINDIRECTで別のEXCELファイルのシートを参照したい
その他(Microsoft Office)
-
16
EXCELで他のファイルデータをドロップダウンさせるには?
その他(コンピューター・テクノロジー)
-
17
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルの関数について教えて...
-
Excelカスタム関数(アドイン登...
-
Excelデータをコピペして、ペー...
-
Excel関数-文字列で自動作成さ...
-
スプレッドシート、Excelでの数...
-
Excelで50個のセルに同じ文字を...
-
Microsoft Officeの中古は信用...
-
スプレッドシートで使う数式を...
-
エクセルVBA、別ブックへ転記す...
-
エクセルで会社の従業員のデー...
-
エクセルで不等号記号(≠)が上に...
-
エクセルの表で1年間の曜日を...
-
A列とB列を参照してC列に連番を...
-
エクセルの空欄をつめて、次の...
-
エクセルでの特別な文字を上に...
-
エクセルでセルに標準で入力さ...
-
エクセル日付 文字列の関数がエ...
-
エクセル2013で月間勤務表から...
-
エクセルの日付を編集する
-
EXCELの質問です 119から足した...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルVBA、別ブックへ転記す...
-
エクセルでの作業計算方法について
-
時間によってファイル名が変わ...
-
【関数】適切な文字数の数字を...
-
Excelについて教えてください
-
エクセル初心者です 関数の入れ...
-
【マクロ】ファイル名の変更に...
-
UNIQUE関数が使えないバージョ...
-
エクセルの計算
-
【関数】先頭だけにある、半角...
-
Excelで、決まった行を繰り返し...
-
Excelでセルの値が同じか...
-
LOOKUP関数を使えばいいのでし...
-
Excel
-
はがきについて。
-
エクセルの条件付き書式につい...
-
エクセルのデーターが2か月前の...
-
エクセル②
-
エクセルで「-0.0」と表示さ...
-
Microsoft1Officeの互換ソフト...
おすすめ情報