Execute um VLOOKUP dentro de uma condição IF

0

Eu preciso VLOOKUP um valor X em uma tabela quando (IF) uma coluna Y dessa tabela é INFERIOR para um valor Z.

Escrever esta fórmula está retornando o primeiro valor da tabela e não o que eu preciso:
=IF(PI_UWF!S:S < Search!$L$19 ; VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE) ; "boh")

  • Valor X = VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE)
  • Coluna Y = PI_UWF!S:S
  • Valor Z = Search!$L$19

Como posso fazer isso?

    
por Mariana Marques 11.11.2016 / 11:29

2 respostas

0

Você segue a lógica incorreta, verificando se os critérios fora de VLOOKUP não funcionam.

Em vez de VLOOKUP usar INDEX e MATCH, você pode criar uma fórmula mais flexível:

=INDEX(PI_UWF!Q:Q;MATCH(O18,IF(PI_UWF!S:S<Search!L19,PI_UWF!C:C,""),0))
É uma fórmula de matriz, então pressione CTRL + SHIFT + ENTER após inseri-la.

Como funciona:

  • IF(PI_UWF!S:S<Search!L19,PI_UWF!C:C,"") - seleciona o valor de C: C somente se S: S for inferior a Search! L19
  • MATCH(O18,IF(...),0) - corresponde ao valor da lista filtrada
  • =INDEX(PI_UWF!Q:Q;MATCH(...)) - seleciona o valor correto de Q: Q

(como não tenho dados de amostra, não consegui verificar a solução, pode ter problemas menores, mas o conceito está correto).

    
por 14.11.2016 / 08:59
0

Não é confiável usar =IF(PI_UWF!S:S < Search!$L$19;;) Não saberia se você deseja compará-lo com a soma da coluna ou um único valor. E não será confiável.

Existem muitas funções que você pode usar, dependendo do que deseja fazer.
Se você quiser comparar Z com a soma de Y , poderá usar SUM()

Com isso, você pode substituir PI_UWF!S:S por SUM(PI_UWF!S:S) , o que lhe daria:

=IF(SUM(PI_UWF!S:S) < Search!$L$19 ; VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE) ; "boh")

É mais provável que você queira comparar Z a todas as células de Y . Para isso, você poderia usar algo como COUNTIF(range, criteria) .

=COUNTIF(PI_UWF!S:S;">="&Search!$L$19) Contará o número de células em Y com um valor igual ou maior que Z .
Se esse valor for 0, você sabe que cada célula em Y é menor que Z . Isso significa:

=IF(COUNTIF(PI_UWF!S:S;">="&Search!$L$19)>0;"Not inferior";"Inferior")

ou no seu caso

=IF(COUNTIF(PI_UWF!S:S;">="&Search!$L$19)>0;"boh";VLOOKUP(O18;PI_UWF!$C:$Q;15;FALSE))

Boa sorte!

    
por 14.11.2016 / 09:15