Sua fórmula não funciona porque [Rule operator]
é um intervalo em si, portanto, se sua fórmula for inserida em uma célula na linha 5, o Excel avaliará sua fórmula assim:
=MATCH("THEN",[@[Rule operator]]:[Rule operator],0)
↓↓↓
=MATCH("THEN",$A$5:$A$2:$A$12,0)
Como o A5 está no meio do intervalo A2: A12, o Excel o ignora e usa apenas A2: A12.
Para resolver isso, você pode manter o [@[Rule operator]]
, mas precisa de algo para descobrir onde fica a última célula da sua coluna.
Você pode fazer isso contando o número de linhas em sua tabela usando ROWS([Rule operator])
, adicionando 1 à sua linha de cabeçalho (adicione mais se você tiver outras linhas acima da sua tabela) e usando a função INDIRECT
para montar em uma referência de célula. Isso te dá:
=MATCH("THEN",[@[Rule operator]]:INDIRECT("A"&1+ROWS([Rule operator])),0)
Como isso gerará uma% de posição da linhaMATCH
incluindo a linha da qual você está executando a fórmula , você precisará subtrair 1 para calcular o Deslocamento de THEN valor que você precisa para cada linha:
=MATCH("THEN",[@[Rule operator]]:INDIRECT("A"&1+ROWS([Rule operator])),0)-1
É isso aí:)