¿Cuál sería una mejor manera (más fácil de leer y mantener y que requiere menos recursos) de hacer lo que necesito en lugar de declaraciones if anidadas?
Las fórmulas en las 4 columnas de la derecha son todas iguales, solo que se refieren a diferentes partes de diferentes pestañas, y todas funcionan exactamente de la misma manera. La columna Correo electrónico inicial enviado la elige el usuario (validación de datos). La fórmula resaltada es:
=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"))))))
Un poco bocado. Se refiere a parte de la pestaña A414, que se ve así:
El propósito de la fórmula:
- Si el correo electrónico inicial enviado en esta fila esno aplicaesta celda debería decirno aplica.
- Si el correo electrónico inicial enviado esen esperaesta celda debería deciren espera
Todas las otras funciones se relacionan con lo que hay en la hoja de trabajo de destino, no con la hoja de trabajo de descripción general:
- Si todos los elementos están marcadosno empezado, la celda A414 en la descripción general debería decirno empezado
- Si todos los elementos están marcados.terminado, la celda de descripción general debería decirterminado.
- En cualquier otra combinación (por ejemplo, todosen curso, medioterminado& mediono empezado) la celda de descripción general debería deciren curso.
Respuesta1
Su fórmula no cubre completamente su descripción. Aquí hay una fórmula para el escenario que ha descrito:
=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 tal vez más 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"
)
)
)
El truco aquí es que, en lugar de contar todas las que "no están iniciadas", busca 0 apariciones en las que la celda no "no está iniciada".