Sim, isso pode ser feito - você precisa de uma linha extra na tabela para fazê-lo funcionar.
eu adicionei a linha
| 0 | 0 | #N/A |
na tabela como a primeira linha, então a tabela agora ocupa A1: C4 .
Eu uso a função INDEX
para decidir qual linha eu preciso retornar.
Para calcular a linha, eu uso SUMPRODUCT
para calcular a linha que o INDEX usará.
A fórmula completa torna-se:
=INDEX(C1:C4,SUMPRODUCT(--(A1:A4<=D1),--(B1:B4>=D1),ROW(C1:C4)))
, com o valor a ser verificado em D1
Correndo pela fórmula com D1 contendo 17
:
=INDEX(C1:C4,SUMPRODUCT(--(A1:A4<=17),--(B1:B4>=17),ROW(C1:C4)))
=INDEX(C1:C4,SUMPRODUCT(--({0,1,15,21}<=17),--({0,10,20,30}>=17),{1,2,3,4}))
=INDEX(C1:C4,SUMPRODUCT(--({True,True,True,False}),--({False,False,True,True}),{1,2,3,4}))
=INDEX(C1:C4,SUMPRODUCT({1,1,1,0}),({0,0,1,1}),{1,2,3,4}))
=INDEX(C1:C4,(1*0*1 + 1*0*2 + 1*1*3 + 0*1*4))
=INDEX(C1:C4,3)
="B"
Se o número estiver fora do intervalo, não haverá uma parte no SUMPRODUCT em que a linha de valores não seja igual a 0
, por isso retornará o primeiro valor no intervalo, que será o # N / UMA. Mesma fórmula, mas com 12
em D1 :
=INDEX(C1:C4,SUMPRODUCT(--(A1:A4<=12),--(B1:B4>=12),ROW(C1:C4)))
=INDEX(C1:C4,SUMPRODUCT(--({0,1,15,21}<=12),--({0,10,20,30}>=12),{1,2,3,4}))
=INDEX(C1:C4,SUMPRODUCT(--({True,True,False,False}),--({False,False,True,True}),{1,2,3,4}))
=INDEX(C1:C4,SUMPRODUCT({1,1,0,0}),({0,0,1,1}),{1,2,3,4}))
=INDEX(C1:C4,(1*0*1 + 1*0*2 + 0*1*3 + 0*1*4))
=INDEX(C1:C4,0)
="#N/A"
Não é tecnicamente # N / A , é uma matriz de todas as respostas possíveis, mas como não inserimos a fórmula como uma fórmula de matriz, ela nos fornece apenas o primeiro valor