Encontrando um número em um intervalo

0

Você poderia por favor me ajudar com o requisito abaixo.

Eu mantive os intervalos nas colunas A e B. Os valores relevantes para cada intervalo são mencionados na coluna C. Por exemplo, veja abaixo:

| Column A | Column B | Column C |
| 1        | 10       | A        |
| 15       | 20       | B        |
| 21       | 30       | C        |

Agora eu tenho outra coluna E onde eu inseri um número, por exemplo 17. Agora eu gostaria de saber em que intervalo este número cai para que o valor relevante da coluna C possa ser incluído. Neste exemplo, 17 cai no faixa de 15 a 20 que está na linha 2 e cujo valor na coluna C é B. Assim, para a figura de 17, a saída deve vir como B. Caso eu digite 25, a saída deve ser C. Mas se eu inserir 12, a saída deve ser # N / A porque esse número não está em nenhum intervalo.

Posso saber se há alguma fórmula do excel que eu possa usar para obter esse tipo de saída. Eu prefiro usar fórmulas ao invés de qualquer codificação. Obrigado pelo seu tempo para me orientar a esse respeito.

Atenciosamente, Sridhar

Sridhar
fonte

Respostas:

1

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 INDEXfunção para decidir qual linha eu preciso retornar.
Para calcular a linha, eu uso SUMPRODUCTpara 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 D1

Percorrendo a 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 0, portanto, retornará o primeiro valor no intervalo, que será o # N / A. Mesma fórmula, mas com 12no 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

SeanC
fonte