xor 也就是异或运算,在 Excel 还有各类编程语言里面都有对应的 xor 函数,核心作用就是判断两组逻辑值,当两个条件结果不一样的时候返回真,两个条件结果相同的时候返回假,简单理解就是两个逻辑值一真一假结果为真,同真或者同假结果为假,很多人做多条件判断的时候会混淆 and or 和 xor,and 是全部满足才为真,or 是只要满足一个就为真,xor 是必须互斥满足,也就是只能满足其中一个,不能同时满足也不能全都不满足,之所以 xor 函数会在数据校验条件判断场景使用,是因为它可以快速实现互斥条件筛选,奇偶校验数据加密位运算这些业务场景都离不开 xor,掌握 xor 函数的使用方法,要先理解异或的逻辑本质,再学会 Excel 公式写法,还要掌握多参数版本的运算规则,同时区分逻辑异或和二进制位异或,这两个很容易搞混。
xor 基础逻辑定义
xor 全称 exclusive or,中文名称异或,属于逻辑运算的一种。
基础真值表
| 参数 A | 参数 B | xor 结果 |
|---|---|---|
| 真 | 真 | 假 |
| 真 | 假 | 真 |
| 假 | 真 | 真 |
| 假 | 假 | 假 |
逻辑核心,两个输入状态不一致,输出真,输入状态一致,输出假,也就是互斥判断。
Excel 当中 xor 函数的使用方法
Excel 的 xor 函数语法格式,xor 逻辑值 1 逻辑值 2 逻辑值 3 最多支持 254 个参数。
参数要求,参数可以是单元格引用 逻辑表达式 数字,非零数字会被识别成真,0 识别成假。
多参数 xor 运算规则,参数里面真的个数是奇数的时候,最终结果返回真,真的个数是偶数的时候,最终结果返回假,这个是 Excel 多参数 xor 很关键的特点,和两个参数版本逻辑有区别。
基础示例,公式 xor A1 B1,A1 是 true B1 是 false,公式返回 true,A1 和 B1 都是 true,公式返回 false。
业务示例,判断两个订单只能其中一个完成,公式 xor C1 D1,C1 代表订单一是否完成,D1 代表订单二是否完成,如果只完成其中一个,公式返回真,两个都完成或者都没完成返回假。
二进制位异或和逻辑 xor 区分
逻辑 xor,处理的是 true false 布尔值,用于条件判断,就是上面 Excel xor 函数的用法。
位异或,是按二进制每一位单独做异或运算,编程语言里面符号一般是 ^,不是 xor 函数,常用于加密 校验 数值翻转,这个很多新手容易和逻辑 xor 函数弄混。
位异或特点,相同位为 0,不同位为 1,比如十进制 5 二进制 101,十进制 3 二进制 011,按位异或之后得到 110 也就是十进制 6。
xor 函数使用操作步骤
第一步,打开 Excel 表格,确定需要判断的条件单元格,准备好逻辑表达式。
第二步,选中要输出结果的单元格,输入等号,开始编写 xor 函数。
第三步,在括号内部填入需要判断的参数,可以直接写单元格,也可以写大于等于这类比较表达式。
第四步,按回车执行公式,查看返回的 true 或者 false 结果。
第五步,下拉填充公式,批量对整列数据执行 xor 函数运算。
第六步,如果需要嵌套,xor 可以和 if 函数搭配,比如 if xor A1 B1 符合互斥 不符合互斥,实现文字输出。
常见应用场景
互斥条件判断,比如两个选项只能二选一,不能同时选中。
奇偶校验,通信数据校验里面使用异或计算校验位。
数据标记筛选,标记满足奇数个条件的数据行。
简单数据翻转,按位异或可以实现数值快速翻转,密码算法基础运算。
使用注意事项
Excel 低版本,2007 以及更早版本 Excel 没有内置 xor 函数,高版本 Excel 2013 之后才新增这个函数,旧版本需要用其他公式模拟 xor。
参数为空单元格,空单元格会被 xor 识别成假,写公式的时候要留意空单元格带来的误判。
文本类型内容,如果参数是文本,xor 会报错,参数必须是逻辑值或者可识别数字表达式。
【常见问题】
问题 1 xor 函数的使用方法里面,多参数 xor 和双参数 xor 规则一样吗
回答 1 xor 函数的使用方法里面,双参数 xor 是两个值不同才返回真,多参数 xor 函数的使用方法规则是真参数数量为奇数返回真,偶数返回假,两者规则不一样。
问题 2 旧版 Excel 没有 xor 函数,怎么实现 xor 函数的使用方法对应的效果
回答 1 旧版 Excel 没有内置 xor 函数,想要实现 xor 函数的使用方法对应的互斥判断,可以用 and 和 or 组合公式模拟异或逻辑,替代原生 xor 函数。
问题 3 xor 函数的使用方法里面,数字参数是怎么识别的
回答 1 xor 函数的使用方法规定,非零数字会被 xor 识别成真,数字 0 会被识别成假,所以写公式的时候直接引用数字单元格也可以正常参与 xor 运算。
问题 4 xor 函数的使用方法和按位异或 ^ 符号是同一个东西吗
回答 1 xor 函数的使用方法属于逻辑异或,处理布尔条件判断,按位异或 ^ 是二进制逐位运算,两者不是同一个运算,学习 xor 函数的使用方法的时候一定要区分开。
【免责申明】
本文 xor 函数的使用方法属于技术科普内容,不同软件版本编程语言环境下 xor 实现细节存在差异,实际项目请参考对应软件官方文档,本文不承担公式错误运算异常带来的数据错误相关责任。


