Encontrando um número em um intervalo

0

Poderia, por favor, me ajudar com o requisito abaixo?

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 qual faixa esse número se encaixa para que o valor relevante da coluna C possa ser inserido. Neste exemplo, 17 cai no intervalo 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 digite 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

    
por Sridhar 09.12.2013 / 05:14

1 resposta

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 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

    
por 09.12.2013 / 18:05