Para obter o número da coluna, use
=MATCH(1, (1:1="qtr02")*(2:2=2012), 0)
Esta é uma "fórmula de matriz", então, depois de digitá-la, você deve pressionar Ctrl + Deslocar + Enter .
-
1:1
refere-se a toda a linha1
. Se preferir, você pode usarA1:I1
para se referir apenas às células que possuem dados. -
(1:1="qtr02")
procuraqtr02
na linha1
(ou as células designadas, conforme apropriado) e constrói uma matriz booleana dos resultados. Neste caso, o array é %código% porque a segunda e a sexta colunas contêm{FALSE, TRUE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE}
. - Da mesma forma,
qtr02
cria uma matriz de onde os(2:2=2012)
s estão na linha2012
: ou seja,2
. -
{FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE, FALSE}
, claro, é multiplicação. Como este é um operador aritmético, ele converte seus operandos em números:*
→FALSE
e0
→TRUE
. Em seguida, multiplica as duas matrizes em pares. Isso resulta em1
em cada posição onde cada um dos arrays de operandos tem1
(1
) eTRUE
em outro lugar - Em outras palavras, as colunas onde ambas as condições são verdadeiras. Isso é equivalente a uma função lógica AND . O Excel tem uma função chamada0
que faz exatamente a mesma coisa, mas, infelizmente, não funciona em matrizes. UsandoAND()
é um truque kludgy para contornar essa limitação na função*
. - E, claro,
AND()
encontra o primeiro elemento na matriz que contémMATCH(1, array, 0)
.