アプリ版:「スタンプのみでお礼する」機能のリリースについて

式の中の参照部分を、D1のセルの内容によって変えたいです。
下記が実際の式なのですが
=IFERROR(IF(VLOOKUP(I6,[工場在庫.xlsm]A!$D$3:$D$1000,1,FALSE)=I6,"OK","新規追加!!"),"新規追加!!")

この式の [工場在庫.xlsm]A! の部分をD1のセルから持ってくるにはどうしたらいいかがわかりません。
D1のセルが[工場在庫.xlsm]B!だったら
=IFERROR(IF(VLOOKUP(I6,[工場在庫.xlsm]B!$D$3:$D$1000,1,FALSE)=I6,"OK","新規追加!!"),"新規追加!!")
としたいです。
ご教授お願いいたします。

A 回答 (2件)

こんにちは



簡単にやるなら、INDIRECT関数を利用して参照範囲を可変にすればよさそう。

[工場在庫.xlsm]A!$D$3:$D$1000
  ↓ ↓
INDIRECT(D1 & "$D$3:$D$1000")

ただし、INDIRECT関数等は揮発性関数と言われる種類ですので、他の方の質問でこのような(↓)ものもありますのでご注意。
https://oshiete.goo.ne.jp/qa/10893054.html
    • good
    • 1

範囲の変更に関しては、№1さんの書かれているINDIRECT関数を使うのが一番やりやすいと思います。



ところで、VLOOKUP関数でなくてもI6のデータをそれぞれのシートのD列からCOUNTIFで1個(以上)あるかどうかを判定すればいいのでは?
    • good
    • 1

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