Coloque duas fórmulas do Excel juntas

0

Eu tenho alguns dados específicos na planilha1 e alguns outros dados na planilha2.

Eu preciso comparar um valor específico (Var1) da planilha1 e retornar um valor específico da planilha2 e retornar uma saída para o mesmo. Eu fiz isso com sucesso com esta fórmula

=IF(COUNTIF(Sheet2!A:A, A2), "Yes", "No")

Folha1

+------+------+---------+---------+
| var1 | var2 | result1 | result2 |
+------+------+---------+---------+
|      |      |         |         |
| abc  |  123 | yes     | yes     |
|      |      |         |         |
| bcd  |  234 | yes     | no      |
|      |      |         |         |
| cde  |  456 | no      | blank   |
+------+------+---------+---------+

Folha2

+-------+-------+-------+
| List1 | List2 | List3 |
+-------+-------+-------+
| abc   |   123 |       |
| bcd   |       | 123   |
| def   |       |       |
+-------+-------+-------+

Eu preciso pesquisar var1 em list1 e var2 em list2 e list3

Eu quero comparar outro valor (Var2) na Planilha2, somente se o resultado anterior for "Sim", que pode ser facilmente alcançado com uma função IF; mas o problema é que ele deve comparar valores apenas de linhas específicas de Sheet2, que devem ser mais (+) e menos (-) 2 linhas de onde Var1 foi encontrado em Sheet2.

Eu não sou proficiente no VBA, mas tenho tentado minhas mãos em fórmulas do Excel.

    
por Pratik 26.12.2013 / 14:26

3 respostas

0

Foi divertido passar por: :)

Usando seu exemplo, coloquei esta função em C2 (em 'resultado1') e preencha-a em matriz:

=IF(COUNTIF(Sheet2!A:A,A2),"Yes","No")

E para D2 em "resultado2":

=IF(C2="No","No",IF(COUNTIF(INDIRECT("Sheet2!C"&MAX((MATCH(A2,Sheet2!A:A)-2),1)&":C"&(MATCH(A2,Sheet2!A:A)+2)),B2),"Yes","No"))

Novamente, array preenche-a e ela deve funcionar:)

    
por 28.12.2013 / 23:08
0

Você pode usar OR () e comparar se tiver mais e menos. Algo parecido com isto:

=IF(OR(A1="+";A1="-");"Ok";"")

Então você pode alterar "Ok" para sua fórmula.

=IF(OR(A1="+";A1="-");=IF(COUNTIF(Sheet1!C:C, A2), "Yes", "No");"")

É disso que você precisa?

    
por 26.12.2013 / 14:58
0

Experimente: =IF(C2<>"Yes","",IF(COUNTIF(OFFSET(Sheet2!$B$1:$C$5,MAX(0,MATCH(A2,Sheet2!A:A,0)-3),0),B2)>0,"Yes","No"))

Estou assumindo que:

  • var1 é uma chave única, como você disse. Caso contrário, isso corresponderá apenas à primeira ocorrência.
  • Você deseja corresponder var2 em ambos list1 e list2 . Caso contrário, você deve restringir a janela de pesquisa para $B$1:$B$5 . Se houver mais listas à direita, basta adicionar colunas à janela de pesquisa.

Deixe-me saber se você tem alguma dúvida sobre como isso funciona.

    
por 28.12.2013 / 19:24