Nota: Minha resposta, abaixo, foi abordada da mesma forma que você faria com circuitos lógicos digitais, onde as condições são avaliadas em paralelo. Nesse caso, você precisa fornecer explicitamente todas as condições. Isso foi totalmente matar aqui; muito mais complicado do que o necessário.
As abordagens mostradas na resposta de Thilina R tiram proveito do fato de que o Excel avalia fórmulas e intervalos em seqüência, então o Excel já está fazendo a maior parte do trabalho de limitar possíveis condições semelhantes às IFs aninhadas na questão.
Nós dois criamos a lógica OR mostrada como minha última abordagem, abaixo. Deixarei essa resposta para qualquer valor educacional ou inovador que ela possa fornecer. Mas a resposta de Thilina R contém as soluções práticas, e meu voto é o Método 1: HLOOKUP.
Não está claro se você está usando uma fórmula mais restritiva do que o necessário. Vou usar uma pequena anotação abreviada para simplificar a discussão. Deixarei de fora os nomes das pastas e me refiro aos testes de igualdade desta maneira: Se for verdade que G2=I2
, eu só chamarei de G2
. Se é falso que G2 = I2, eu vou chamá-lo de Not-G2
. Com essa abreviação, seus IFs aninhados podem ser expressos assim:
G2
or: H2 and Not-G2
or: I2 and Not-G2 and Not-H2
or: J2 and Not-G2 and Not-H2 and Not-I2
etc.
Se essas são as regras de que você precisa, você pode fazer isso com um IF e com toda a lógica AND e OR. Seria assim na forma abreviada:
=IF(OR(G2,AND(H2,Not-G2),AND(I2,Not-G2,Not-H2),...),"Y","")
O preenchimento da fórmula real seria assim:
=IF(OR(Sheet!$G$2=Sheet1!I2,
AND(Sheet!$H2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2),
AND(Sheet!$I2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2,Sheet!$H2<>Sheet1!I2),
AND(Sheet!$J2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2,Sheet!$H2<>Sheet1!I2,Sheet!$I2<>Sheet1!I2),
AND(Sheet!$K2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2,Sheet!$H2<>Sheet1!I2,Sheet!$I2<>Sheet1!I2,Sheet!$J2<>Sheet1!I2),
AND(Sheet!$L2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2,Sheet!$H2<>Sheet1!I2,Sheet!$I2<>Sheet1!I2,Sheet!$J2<>Sheet1!I2,Sheet!$K2<>Sheet1!I2),
AND(Sheet!$M2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2,Sheet!$H2<>Sheet1!I2,Sheet!$I2<>Sheet1!I2,Sheet!$J2<>Sheet1!I2,Sheet!$K2<>Sheet1!I2,Sheet!$L2<>heet1!I2),
AND(Sheet!$N2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2,Sheet!$H2<>Sheet1!I2,Sheet!$I2<>Sheet1!I2,Sheet!$J2<>Sheet1!I2,Sheet!$K2<>Sheet1!I2,Sheet!$L2<>heet1!I2,Sheet!$M2<>Sheet1!I2),
AND(Sheet!$O2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2,Sheet!$H2<>Sheet1!I2,Sheet!$I2<>Sheet1!I2,Sheet!$J2<>Sheet1!I2,Sheet!$K2<>Sheet1!I2,Sheet!$L2<>heet1!I2,Sheet!$M2<>Sheet1!I2,Sheet!$N2<>Sheet1!I2),
AND(Sheet!$P2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2,Sheet!$H2<>Sheet1!I2,Sheet!$I2<>Sheet1!I2,Sheet!$J2<>Sheet1!I2,Sheet!$K2<>Sheet1!I2,Sheet!$L2<>heet1!I2,Sheet!$M2<>Sheet1!I2,Sheet!$N2<>Sheet1!I2,Sheet!$O2<>Sheet1!I2),
AND(Sheet!$Q2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2,Sheet!$H2<>Sheet1!I2,Sheet!$I2<>Sheet1!I2,Sheet!$J2<>Sheet1!I2,Sheet!$K2<>Sheet1!I2,Sheet!$L2<>heet1!I2,Sheet!$M2<>Sheet1!I2,Sheet!$N2<>Sheet1!I2,Sheet!$O2<>Sheet1!I2,Sheet!$P2<>Sheet1!I2),
AND(Sheet!$R2=Sheet1!I2,Sheet!$G$2<>Sheet1!I2,Sheet!$H2<>Sheet1!I2,Sheet!$I2<>Sheet1!I2,Sheet!$J2<>Sheet1!I2,Sheet!$K2<>Sheet1!I2,Sheet!$L2<>heet1!I2,Sheet!$M2<>Sheet1!I2,Sheet!$N2<>Sheet1!I2,Sheet!$O2<>Sheet1!I2,Sheet!$P2<>Sheet1!I2,Sheet!$Q2<>Sheet1!I2)),"Y","")
(Eu não posso garantir que um erro de digitação não tenha entrado lá). Fórmulas longas são muito difíceis de serem inseridas e mantidas. Pode ser útil usar células auxiliares para partes da fórmula.
Se isso não é realmente as regras que você precisa, aqui estão alguns casos mais simples:
-
Se você não precisa dessa sequência, e só se importa que qualquer uma, e apenas uma, célula seja igual a I2, aqui está uma maneira de fazer a mesma lógica com um IF:
=IF((Sheet!$G$2=Sheet1!I2)+(Sheet!$H2=Sheet1!I2)+(Sheet!$I2=Sheet1!I2)+ (Sheet!$J2=Sheet1!I2)+(Sheet!$K2=Sheet1!I2)+(Sheet!$L2=Sheet1!I2)+ (Sheet!$M2=Sheet1!I2)+(Sheet!$N2=Sheet1!I2)+(Sheet!$O2=Sheet1!I2)+ (Sheet!$P2=Sheet1!I2)+(Sheet!$Q2=Sheet1!I2)+ (Sheet!$R2=Sheet1!I2)=1,"Y","")
Cada conjunto de parênteses contém um dos seus testes. Se a igualdade for verdadeira, ela produzirá um valor de
1
. Se não for verdade, o valor será0
. É assim que o Excel representa verdadeiro e falso.Os resultados de todos esses testes são somados. Se a soma for
1
, isso significa que um e apenas um dos testes foi verdadeiro. -
Se, na verdade, você só se importa se pelo menos um desses casos é verdadeiro, você poderia usar um OR simples:
=IF(OR(Sheet!$G$2=Sheet1!I2,Sheet!$H2=Sheet1!I2,Sheet!$I2=Sheet1!I2, Sheet!$J2=Sheet1!I2,Sheet!$K2=Sheet1!I2,Sheet!$L2=Sheet1!I2, Sheet!$M2=Sheet1!I2,Sheet!$N2=Sheet1!I2,Sheet!$O2=Sheet1!I2, Sheet!$P2=Sheet1!I2,Sheet!$Q2=Sheet1!I2,Sheet!$R2=Sheet1!I2),"Y","")
Note que adicionei quebras de linha e espaços extras em todas as fórmulas para que a lógica seja mais fácil de ver. Se você deseja copiar e colar, você precisará removê-los.