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:1refere-se a toda a linha1. Se preferir, você pode usarA1:I1para se referir apenas às células que possuem dados. -
(1:1="qtr02")procuraqtr02na 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,
qtr02cria 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:*→FALSEe0→TRUE. Em seguida, multiplica as duas matrizes em pares. Isso resulta em1em cada posição onde cada um dos arrays de operandos tem1(1) eTRUEem 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 chamada0que 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).