これ何て呼びますか

エクセルの別ファイルからのデータを表示できるようにしたいです。
別ファイルを参照元ファイル、データを表示させるファイルを参照ファイルとして、参照元ファイルは開いてることとします。
添付画像の参照元ファイルから参照ファイルにデータを表示させたいです。
自分で考えた数式だと、
=IFERROR(INDEX(INDIRECT($A2&"!$A:$AAA"),MATCH($A$1,INDIRECT($A2&"!$A$1:$A$5000"),0),MATCH($B$1,INDIRECT($A2&"!$A$1:$AAA$1"),0)),"")
表示結果はエラーの為何も表示されませんでした。
数式の検証をしてみたら
MATCH($A$1,INDIRECT($A2&"!$A$1:$A$5000")のところで#N/Aになってしまいました。
参照元ファイルにはいくつかシートがあり、Aファイルに入力された値によって、Bファイルを参照するシートを変更したいのですが、うまくいきません。
どうやれば正しく表示されるようになるでしょうか?
よろしくお願いします。

「エクセル 関数 indirect mat」の質問画像

A 回答 (3件)

>MATCH($A$1,INDIRECT($A2&"!$A$1:$A$5000")のところで#N/Aになってしまいました。


「A1セル」の値と同じ値を指定した範囲に見つけられない…と言っているのではないか。
「A1セル」と「参照先のセル」に何が入っているのか確かめてみよう。
添付された図を見る限りでは参照元(数式を入力しているシート)のA1セルには「半角」の”1”が入力されているように思うのですが、
参照先(参照元から参照されているシート)のA2セルには「全角」で”1”が入力されているような気がするのです。
(逆もあり得ますし、見えていないだけで空白文字が付いていたリ、表示されない改行コードなどを含んでいるかもしれません)

もう一度確かめてみましょう。

・・・
あー、それから
>=IFERROR(INDEX(INDIRECT($A2&"!$A:$AAA"),MATCH($A$1,INDIRECT($A2&"!$A$1:$A$5000"),0),MATCH($B$1,INDIRECT($A2&"!$A$1:$AAA$1"),0)),"")
このダブルクォーテーションで囲まれた
「$A:$AAA」
「$A$1:$A$5000」
「$A$1:$AAA$1」
の参照範囲は絶対参照にする必要はありません。
文字列で記述されているので、セルをコピーしても範囲が置き換わることはないのです。


・・・余談・・・
参照先と参照元の使い方を間違えているような気がします。
A1セルに「=B1」と入力されていたら、
 A1セルは参照元
 B1セルは参照先
になります。
    • good
    • 0
この回答へのお礼

ありがとうございました。
確認してみたら数式を入力しているシートのA1セルの内容が間違っていました。

・・・
確かに、文字列で記述なので絶対参照にする必要はないですね。削除します。
・・・
そうなのですね。逆だと思っていました。ありがとうございました。

お礼日時:2016/10/27 13:26

「#N/A」エラーということは「参照自体は上手くいっているけど 該当


するデータが見つからない」とうことかと思います。

参照元ファイルの A列と 参照先ファイルの A1のデータ形式が一致する
か確認して下さい。

=[参照元.xlsx]データ1!A2=A1

で「TRUE」にならない場合 形式が一致していない可能性が高いです。
    • good
    • 0
この回答へのお礼

ありがとうございました。
確認してみたら数式を入力しているシートのA1セルの内容が間違っていました。

お礼日時:2016/10/27 13:25
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2016/10/27 13:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報