一、功能简介
IF () 函数是最常用的函数之一,它可以对值和期待值进行逻辑判断。
因此 IF 语句可能有两个结果:
第一个结果是判断结果为 True(代表条件匹配)
第二个结果是判断结果为 False(代表条件不匹配)。
二、函数说明
函数用法说明:
IF(条件,判断结果为真时的赋值设置,判断结果为假时的赋值设置)
函数示例
假设性别字段值已知,我们要根据性别字段值判断一个人的考试项目,性别为女则考试项目为800米,性别为男则考试项目为1500米。
如果IF函数中条件设置为“性别=男”,数据中性别字段值为男时,则判断结果为True;如果条件不符合,则判断结果为False。
不同的判断结果会返回不同的参数,使用IF函数表达有两种形式:
形式1:
条件为性别为男,符合条件则返回1500米,性别不为男则返回800米;
对应函数表达式形式:IF({当前数据.性别}=男,1500,800)
形式2:
条件为性别为女,符合条件则返回800米,不符合条件则返回1500米
对应函数表达式形式:IF(当前数据.性别}=女,800,1500)
三、IF()函数使用详细讲解
以我们的MBTI人格测试工作区为例:
我们运用IF()函数对填写人的答案进行评分赋值,若选A则赋值为1,若选B则赋值为0,最后将评分相加到一起我们所得出的MBTI人格。
举一反三,那IF() 函数还可以做什么呢?
案例一:判断到货状态为【未到货】或【已到货】
首先,我们先来解决较为简单的第一部分场景。
假设采购明细的到货状态有两种情况【未到货】和【已到货】,那么如何在人工填入到货数量后,系统自动判断到货状态?
这个场景存在两种唯一、独立且不重合的情况:
-
当到货数量等于0,则到货状态为【未到货】;
-
当到货数量等于采购数量,则到货状态为【已到货】。
用以上两种情况,作为工作流的逻辑判断规则,函数可以按照如图步骤写入:
在字段赋值框内输入“IF”,从下方选择系统推荐中的IF函数(或者手动在IF后方添加半角括号)。
根据上面逻辑判断规则中的两种情况,配置IF函数的参数。此规则有两种函数写法。
形式一:
一种是条件写为“到货数量为0”,则函数写为:
IF({当前数据.到货数量-新值}=0,{C:采购明细.到货状态.未到货},{C:采购明细.到货状态.已到货})
形式二:
另一种条件相反,写为到货数量等于采购数量,则函数写为:
IF({当前数据.到货数量-新值}= {当前数据.采购数量-新值},{C:采购明细.到货状态.已到货},{C:采购明细.到货状态.未到货})
两种写法根据个人爱好,择其一即可,如下图:
注意事项:
① 当自动化工作流触发动作仅选择了“修改数据”时,选择字段时才会出现新值原值,其他情况无新值、原值是正常的;
② 当数据发生修改时,保存前的值为该字段值的原值,保存后的值为该字段值的新值,新值原值可能不同,也可能相同。
③ 写好之后保存工作流,进入表格修改数据,验证一下工作流执行结果是否正确。在采购明细表中更改任意一条数据的到货数量,观察对应数据的到货状态返回结果对不对。
案例二:判断到货状态为【未到货】、【部分到货】或【全部到货】
掌握了IF函数的基础用法之后,我们来解决文章开头的问题,进一步掌握IF()函数的嵌套用法:
-
若采购的产品明细中到货数量等于0时,到货状态为“未到货”;
-
若到货数量大于0且小于该明细的采购数量,则到货状态变更为“部分到货”;
-
若到货数量大于等于采购数量,则到货状态变更为“全部到货”。
根据以上逻辑判断规则,我们首先判断到货数量是否等于0,再判断到货数量是否大于0且小于采购数量,当前两种条件都不满足,则说明是全部到货。对应函数写为:
IF({当前数据.到货数量-新值}=0,{C:采购明细.到货状态.未到货},IF(AND({当前数据.到货数量-新值}>0,{当前数据.到货数量-新值}< {当前数据.采购数量-新值}),{C:采购明细.到货状态.部分到货}, {C:采购明细.到货状态.全部到货}))
函数式在第一个IF函数内,第三个参数位置使用了第二个IF判断了第二种情况,前两种情况都不满足则返回第三种情况,即“全部到货”。
保存工作流后,修改数据,验证工作流执行结果 :
在采购明细中输入不同条件范围的数值,观察到货状态的结果是否正确 。