プロが教える店舗&オフィスのセキュリティ対策術

={IFERROR(INDEX(A!$E$5:$E$34,MATCH($B5&$C5&$D5,A!$B5:$B34&A!$C5:$C34&A!$D5:$D34,0),1),"0")}

上記のようにINDEX関数とMATCH関数を組み合わせて配列数式でデータを抽出したいのですが
「A!$E$5:$E$34」部分をこのようにすると下にコピーすると同じ数字を抽出してしまいます。
どうしたら回避できますでしょうか?
また、上記数式に参照先のデータを「4列」ごとに抽出したいという数式を加えたいのですがどのような数式を加えたら良いでしょうか?

恐れ入りますが、関数お詳しい方いらっしゃいましたらご教授願います。

A 回答 (1件)

match関数の検索値は一つだけだしそもそもindex関数は0でない限り一つの値しか返さないので、配列数式にする意味がないんですが、match関数で検索範囲を数式にしたら配列数式にしないと#Valueエラーになっちゃう。

とかですかね。

index(ホゲホゲ, match(あれこれ, index(ホニャララ, 0), 0))

のようにmatch関数の検索範囲をきちんと配列として明示すればいいはずです。ついでいうとiferror関数の返り値が数値ではなく文字列の"0"なのは悪い呪いですね。
    • good
    • 1
この回答へのお礼

ご教授頂きましてありがとうございます。

お礼日時:2019/03/01 17:06

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