- ベストアンサー
エクセル・参照元の2列後ろのデータ抽出
一覧表の項目A、項目Bがあります。 各行の項目Aは別のBOOKのデータを参照して入力します。項目Bに 項目Aの参照した先の2列後ろのデータを抽出するようにするにはどうすればいいでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
具体的な情報が少ないのでできるかどうか分かりませんが BookA.xlsとBookB.xlsがあって、BookAのA1に =[BookB.xls]Sheet1!$A$1 や =[BookB.xls]Sheet1!A1 と入っていた場合は まず、BookAとBookBを両方保存しておいて、BookBのA列 とB列を選択して、一時的に空の列を2列挿入します。 そうすると、式は =[BookB.xls]Sheet1!$C$1 =[BookB.xls]Sheet1!C1 となります。 この状態で、BookAを上書き保存して、BookBを「上書き 保存せずに」終了した後、再度BookBを開きなおせば、 BookAのうち、BookBのSheet1を参照している項目だけが 全て、2列後ろを参照するようになります。 当然、式によってはそのまま使えないことも多いと思い ますが、ご参考まで。
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
多分不可能ではないでしょうか。 VBAですがPrecedentsと言う参照もとのアドレスを返すプロパティがあり Sub test01() For i = 1 To 5 Worksheets("sheet1").Cells(i, "A").Activate a = ActiveCell.Precedents.Address MsgBox a Next i End Sub を実行すると、 A1に式=C1 $c$1 A2に=F4 $F$4 A3に=F1+E1+G2 $F$1:$E$1,$G$2 A4に=SUM(E1:E4) $E$1:$E$4 A5に=Sheet2!B3と入れて 上記を実行するとA1からA4までは、上記のように、正しく番地を返すが、A5はエラーになる。多分、他シートを参照している故ではないかと思う。増して他ブックではエラーになり不可能でしょう。ということでこれは使えない。 またエクセル関数には、これに類する関数はなかったと思う。 また複数セルを参照して演算している場合、この問題に即して言うと、どうなるのでしょうか。どれを指すかはっきりしないわけです。 ●それより、式を入れた人が参照したセル番地はわかっているのだから、2列後ろを(AならC、CならFと言う風に)指定すれば済むことではないのでしょうか。 問題の趣旨が判らない。
お礼
早速のアドバイスありがとうございました。 ん~やはり関数では無理なんですね。 参考に致します。 また、最後の趣旨の件です。説明が足りませんでした。入力する欄がたくさんあり、入力しているものもまた別のシートの部分を入れることがあります。置換では全て対応できないので今回質問させて頂きました。 説明不足ですみませんでした。
お礼
hakoneさん ありがとうございます。 参考に致します。