如何简化excel公式中的嵌套if条件
excel公式是如何简化excel公式中的嵌套if条件,excel,if-statement,excel-formula,Excel,If Statement,Excel Formula,excel公式是 =IF(OR(B42="First Proof",B42="Revised First Proof"),IF(WEEKDAY(J42-1)=1,J42-2,J42-1),IF(OR(B42="Revises2",B42="Revises3",B42="Revises4",B42="Revises5",B42="Revises6",B42="Revises7"),IF(WEEKDAY(Q42-1)=1,Q42-2,Q42*1),IF(B42="Revises1",IF(WEEKD
=IF(OR(B42="First Proof",B42="Revised First Proof"),IF(WEEKDAY(J42-1)=1,J42-2,J42-1),IF(OR(B42="Revises2",B42="Revises3",B42="Revises4",B42="Revises5",B42="Revises6",B42="Revises7"),IF(WEEKDAY(Q42-1)=1,Q42-2,Q42*1),IF(B42="Revises1",IF(WEEKDAY(J42-1)=1,J42-2,J42-1),IF(B42="Typescript",IF(WEEKDAY(J42-1)=1,J42-2,J42-1),IF(B42="Finals",IF(WEEKDAY(J42-1)=1,J42-2,J42-1),IF(OR(B42="ELDs",B42="Post Conversion",B42="Revised ELDs"),"NA"))))))
请帮助我减少公式长度。不要忘记,您可以使用alt+enter和空格设置多行公式的格式并提高可读性
=IF(or(right(B42, 11)="first proof", or(b42={"revises1", "typescript", "finals"})), J42-1-(WEEKDAY(J42, 2)=1),
IF(AND(LEFT(B42, 7)="Revises", OR(RIGHT(B42)={"2","3","4","5","6","7"})), Q42-(WEEKDAY(Q42, 2)=1)*2,
IF(or(b42={"elds", "post conversion", "revised elds"}), "NA", "")))
从437个字符减少到约275个字符,甚至不需要使用
或(右(B42)={“2”、“3”、“4”、“5”、“6”、“7”),因为已检查了修订1。是否尝试使用开关?这可能会减少它@xoox-哇!我想说的是,开关箱仅适用于VBA。我不知道这个功能,谢谢!OP-你能检查一下“证据”吗?此外,如果我们能看到一些样本数据,以及您公式的预期输出样本,这将非常有帮助。你想做什么?@xiox,它取决于已经定义的几个单元格值。fwiw,或者像(或者(B42=“First-Proof”,B42=“Revied-First-Proof”)
这样的语句可以写成(或者(B42={“First-Proof”,“Revied-First-Proof”})
,它少了几个字符,而且(在我看来)可读性更强。也许如果(和)(左)(B42,7)=“修订”,或(右(B42)={“2”、“3”、“4”、“5”、“6”、“7”),…,
感谢您的简要解释。