質問: 上記の内容で、MATCH関数でなぜちゃんと対応した行数が返されるのか、 イマイチよく理解できません・・・・。 おそらく、ISNUMBERの戻り値がTRUEになった行数が返されるのだと思うのですが、 なぜそうなるのかが分からないのです。 詳しい方、ご教示いただけますと幸いです。 よろしくお願いいたします。
回答: これはEXCEL魔境の1つですね。 キモは `FIND()` の第一引数に文字では無くセルの範囲を指定すると、結果が参照内であれば `{#VALUE!;3;#VALUE!}` のような形になることを利用してます。 この結果を `ISNUMBER()` が `{false;true;false}`と変換し `MATCH()` trueと一致した何行目(2)かを `INDEX()` 参照範囲($A$2:$A$4) の2行目変換しA表の"開発"という文字列を引き当てます。 何度かこの仕様(`FIND()`の結果が `{#VALUE!;3;#VALUE!}` のようになる)の根拠を調べましたが、言及してるドキュメントを見つけられません。(なのでEXCEL魔境) なのでもうこのような仕様だと割り切る必要があると思います。