[Rule operator]
範囲自体であるため、数式は機能しません。したがって、5行目のセルに数式を入力すると、Excelは次のように数式を評価します。
=MATCH("THEN",[@[Rule operator]]:[Rule operator],0)
↓↓↓
=MATCH("THEN",$A$5:$A$2:$A$12,0)
A5はA2:A12の範囲の中央にあるため、Excelはそれを無視し、A2:A12のみを使用します。
これに対処するには、[@[Rule operator]]
ビットを保持できますが、列の最後のセルがどこにあるかを解決するために何かが必要です。
これを行うにはROWS([Rule operator])
、を使用してテーブルの行数をカウントし、ヘッダー行に1を追加し(テーブルの上に他の行がある場合はさらに追加します)、INDIRECT
関数を使用してそれをセル参照にアセンブルします。これにより、次のことが可能になります。
=MATCH("THEN",[@[Rule operator]]:INDIRECT("A"&1+ROWS([Rule operator])),0)
これにより、式を実行している行を含むMATCH
行の位置が出力されるため、各行に必要なTHEN値のオフセットを計算するには、1を引く必要があります。
=MATCH("THEN",[@[Rule operator]]:INDIRECT("A"&1+ROWS([Rule operator])),0)-1
それでおしまい :)