Qual seria a melhor maneira (mais fácil de ler e manter e menos intensiva em recursos) de fazer o que preciso, em vez de instruções if aninhadas?
As fórmulas nas 4 colunas da direita são todas iguais, apenas se referem a partes diferentes de guias diferentes, que funcionam exatamente da mesma maneira. A coluna Email Inicial Enviado é escolhida pelo usuário (validação de dados). A fórmula destacada é:
=IF(OR([Initial Email Sent]="on hold",[Initial Email Sent]="not applicable"),[@[Initial Email
Sent]],IF(COUNTIF(a414engagement[Status],"<>Not Applicable")=0,"Not
Applicable",(IF((COUNTIF(a414engagement[Status],"Not
Started")+(COUNTIF(a414engagement[Status],"In
Progress"))=0),"Completed",(IF(COUNTIF(a414engagement[Status],"In
Progress")+(COUNTIF(a414engagement[Status],"Completed"))>0,"In
Progress","Not Started"))))))
Um pouco de boca cheia. Refere-se a parte da guia A414, que se parece com isto:
O objetivo da fórmula:
- Se o e-mail inicial enviado nesta linha fornão aplicávelesta célula deveria dizernão aplicável.
- Se o e-mail inicial enviado forem esperaesta célula deveria dizerem espera
Todas as outras funções estão relacionadas ao que está na planilha de destino, não à planilha de visão geral:
- Se todos os elementos estiverem marcadosnão foi iniciado, a célula A414 na visão geral deve dizernão foi iniciado
- Se todos os elementos estiverem marcadosconcluído, a célula de visão geral deve dizerconcluído.
- Em qualquer outra combinação (por exemplo, todosem andamento, metadeconcluído& metadenão foi iniciado) a célula de visão geral deve dizerem andamento.
Responder1
Sua fórmula não cobre totalmente sua descrição. Aqui está uma fórmula para o cenário que você descreveu:
=IF( OR( [Initial Email Sent]="on hold", [Initial Email Sent]="not applicable" ), [@[Initial Email Sent]], IF( COUNTIF( a414engagement[Status], "<>Not Started" )=0, "Not Started", IF( COUNTIF( a414engagement[Status], "<>Completed" )=0, "Completed", "In progress" ) ) )
Ou talvez mais fácil de entender:
=IF(
OR(
[Initial Email Sent]="on hold",
[Initial Email Sent]="not applicable"
),
[@[Initial Email Sent]],
IF(
COUNTIF(
a414engagement[Status],
"<>Not Started"
)=0,
"Not Started",
IF(
COUNTIF(
a414engagement[Status],
"<>Completed"
)=0,
"Completed",
"In progress"
)
)
)
O truque aqui é, em vez de contar todos os que "não foram iniciados", você procura 0 ocorrências em que a célula não "não foi iniciada".