excel公式中缺乏清晰的格式让我很难做到这一点。
我需要编写一个公式:
- 检查J2是否为“否”
- 如果不是,请将值设置为“N/A”
- 如果是这样,请根据给定日期检查 E2 中的日期
- 如果在给定日期之后,将值设置为“通过”
- 如果在给定日期之前,请检查 G2 是否为“取消”且 K2 为“否”,或者 G2 为“无效”且 K2 为“是”
- 如果 true 将值设置为“失败”
- 如果 false 将值设置为“通过”
如果我使用的是 Javascript,它可能看起来像这样:
function formulasMakeMyHeadHurt(J2,E2,G2,K2,givenDate){
if(J2=="No"){
if(E2>givenDate){
if((G2=="Cancel"&&K2!="No")||(G2=="Void"!="Yes")){
return "Fail"
}
else return "Pass"
}
else return "Pass"
}
else return "N/A"
}
这是我尝试过的,至少有一个语法错误,更不用说一些可能的逻辑问题了。我在编写公式时尝试过以不同的方式格式化公式,但我一直迷失在括号中,无法弄清楚去哪里。
=IF( ISNUMBER(SEARCH(J20,"No"))
, IF($E20>=DATE(2014,4,10))
,"Pass"
, IF( OR( ISNUMBER(FIND("Void",G20)) , AND(ISNUMBER(FIND("Cancel",G20)), ISERROR(SEARCH("No",K20))) ) )
,"Pass"
,"Fail")
)
,"N/A")
如果你的眼睛更容易,没有间距的相同公式:
=IF( ISNUMBER(SEARCH(J20,"No")),IF($E20>=DATE(2014,4,10)),"Pass", IF(OR(ISNUMBER(FIND("Void",G20)),AND(ISNUMBER(FIND("Cancel",G20)),ISERROR(SEARCH("No",K20))))),"Pass","Fail")),"N/A")
- 这个公式应该怎么写?
- 使用 VBA 脚本会更好吗?