找回密码
 立即注册

QQ登录

只需一步,快速开始

caoqihong110

注册会员

13

主题

46

帖子

161

积分

注册会员

积分
161
caoqihong110
注册会员   /  发表于:2021-2-25 13:22  /   查看:2496  /  回复:5
1金币
在使用活字格开发时遇到个奇怪的问题,不知道是我理解错了还是真的是BUG。
背景:我在做条件规则对单元格进行判断时候写了一个“=IF(OR($AR$15<>"HR",$AR$15<>"总经理"),1,0)”,用的是角色“%CurrentUser.Role%”=“$AR$15”进行判断;
问题:按理说这句函数翻译过来是不等于HR或者总经理就执行,为什么没有效果,后面我改成AND生效了。


最佳答案

查看完整内容

您好,您这个公式的逻辑翻译一下应该是:如果该单元格不等于HR,或者不等于总经理,则为true。 那么现在有三种情况: 1、AR15=“HR”,此时满足AR15"总经理",所以OR($AR$15"HR",$AR$15"总经理") 返回 true; 2、AR15=“总经理”,此时满足AR15"HR",所以 OR($AR$15"HR",$AR$15"总经理") 返回 true; 3、AR15=“HR”与“总经理”以外任何值,如“aaa”,此时满足AR15"HR",也满足AR15"总经理",所以OR($AR$15"HR",$AR$15"总 ...

5 个回复

倒序浏览
最佳答案
最佳答案
Timothy.Xu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-2-25 13:22:43
来自 2#
本帖最后由 Timothy.Xu 于 2021-2-25 14:35 编辑

您好,您这个公式的逻辑翻译一下应该是:如果该单元格不等于HR,或者不等于总经理,则为true。
那么现在有三种情况:
1、AR15=“HR”,此时满足AR15<>"总经理",所以OR($AR$15<>"HR",$AR$15<>"总经理")
返回 true;
2、AR15=“总经理”,此时满足AR15<>"HR",所以
OR($AR$15<>"HR",$AR$15<>"总经理")
返回 true;
3、AR15=“HR”与“总经理”以外任何值,如“aaa”,此时满足AR15<>"HR",也满足AR15<>"总经理",所以OR($AR$15<>"HR",$AR$15<>"总经理")
返回 true;

综上,您这个 OR 逻辑是恒为 true 的,公式返回值也恒为1。

其实由德摩根定律也可以知道,
IF(OR($AR$15<>"HR",$AR$15<>"总经理"),1,0)
等价于
IF(AND($AR$15="HR",$AR$15="总经理"),0,1),
翻译一下,您的逻辑其实相当于如果 AR15等于 HR 并且 AR15 等于 总经理,则为0,这显然是不可能的,所以恒为1。

我这边猜测您希望达到的效果是,AR15只要不等于 HR 或总经理任意一项,就执行逻辑,那么确实是需要像您改的那样,改用 AND 函数的。这部分应该是逻辑学的知识点,我这里就是抛砖引玉给您讲解一下,具体的可能需要您自行查阅资料再做了解哈

回复 使用道具 举报
Tracy.Liu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-2-25 14:36:49
3#
OR($AR$15<>"HR",$AR$15<>"总经理")

前半句 $AR$15<>"HR",包含了=总经理的情况;
后半句,$AR$15<>"总经理",包含了=HR的情况;

这俩OR以后,相当于取了并集,就成了任何情况都满足条件了。

对于你说的不等于HR或者总经理,逻辑应该是“不等于(HR或者总经理)”,所以这块肯定是需要用AND的,也就是取并集。
画个图就清楚了
回复 使用道具 举报
caoqihong110
注册会员   /  发表于:2021-2-25 14:49:40
4#
Tracy.Liu 发表于 2021-2-25 14:36
OR($AR$15"HR",$AR$15"总经理")

前半句 $AR$15"HR",包含了=总经理的情况;

回复 使用道具 举报
caoqihong110
注册会员   /  发表于:2021-2-25 14:50:13
5#
Timothy.Xu 发表于 2021-2-25 14:34
您好,您这个公式的逻辑翻译一下应该是:如果该单元格不等于HR,或者不等于总经理,则为true。
那么现在有 ...

EXCEL函数理解错了= =
回复 使用道具 举报
Timothy.Xu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2021-2-25 14:55:51
6#
caoqihong110 发表于 2021-2-25 14:50
EXCEL函数理解错了= =

您现在理解了就好
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部