|
本帖最后由 shenghua8 于 2015-8-26 17:53 编辑
也谈逻辑值与数值,逻辑函数与运算符。
(一)众所周知
对于逻辑值来说:
四则运算中,TRUE=1,FALSE=0;
逻辑判断中,非0数值=TRUE,0=FALSE。
对于逻辑函数来说:
AND函数,“逻辑与”运算,也叫“逻辑乘”运算,可用“乘法”(“*”)代替;
OR函数,“逻辑或”运算,也叫“逻辑加”运算,可用“加法”(“+”)代替。
Excel 中,还有两个逻辑函数:
XOR函数,“逻辑异或”运算;
NOT函数,“逻辑非”运算。
这两个函数,能用什么运算代替呢?似乎很少有人提及。
(二)本人认为
XOR函数,可用“不等于”(“<>”)代替;
NOT函数,可用“1减”(“1-”)代替。
异或(XOR)的运算规律为:
若两值相同,异或结果为FALSE;
若两值不同,异或结果为TRUE。
XOR 用 <> 代替,推导如下:
两值相同,都为TRUE,异或结果应为FALSE
- =XOR(TRUE,TRUE)
- =TRUE<>TRUE
- =FALSE
复制代码
两值不同,一个为TRUE,另一个为FALSE,异或结果应为TRUE
- =XOR(TRUE,FALSE)
- =TRUE<>FALSE
- =TRUE
复制代码
- =XOR(FALSE,TRUE)
- =FALSE<>TRUE
- =TRUE
复制代码
两值相同,都是FALSE,异或结果应为FALSE
- =XOR(FALSE,FALSE)
- =FALSE<>FALSE
- =FALSE
复制代码
NOT 用 1- 代替,推导如下:
- =NOT(TRUE)
- =1-TRUE
- =1-1
- =0
- =FALSE
复制代码
- =NOT(FALSE)
- =1-FALSE
- =1-0
- =1
- =TRUE
复制代码
从上面推导结果可以看出:
XOR函数,可用“不等于”(“<>”)代替;
NOT函数,可用“1减”(“1-”)代替。
(三)还有一个问题
NOT函数可以返回数组结果,“1-”运算能返回数组结果吗?
下面用“多单元格数组公式”试试,如图,都跟A2:A5的值进行运算:
选中H2:H5区域(H2激活),整体使用一个数组公式:
按 Ctrl+Shift+Enter 三键结束,
运算结果正确,这个证明NOT能返回数组结果。
选中I2:I5区域(I2激活),整体使用一个数组公式:
按 Ctrl+Shift+Enter 三键结束,
因为0可代替FALSE,1可代替TRUE,所以运算结果也正确,这个证明“1-”照样能返回数组结果。
顺便试试代替 XOR 的“<>”能否返回数组结果,
选中G2:G5区域(G2激活),整体使用一个数组公式:
按 Ctrl+Shift+Enter 三键结束,
运算结果正确,这个证明“<>”能返回数组结果。
看来,用“1-”代替 NOT,没问题,同样能返回数组结果;
用“<>”代替XOR,也没问题,还能返回数组数组结果呢。
奇妙的是:
AND、OR、XOR其实都不能返回数组结果;
而代替它们的“*”、“+”、“<>”却都能返回数组结果。
(NOT 跟“1-”就不用说了,都能返回数组结果。)
(四)再解决一个疑点
前面的推导中,“1-TRUE”等于“1-1”,进而等于0,也就等于FALSE,确定吗?
这个疑点的原因在于,逻辑判断中,所有非0数值都能等于TRUE,那么“1-TRUE”会不会出现“1-2”、“1-(-1)”,导致结果为-1、2等非0数值,都表示TRUE,而不是FALSE呢?
这里存在一个是否互换的问题,“非0数值=TRUE”这两个式子,左右两边是不可以互换的。也就是说 TRUE 并不是全等于“非0数值”。
用试验来证明:
对 TRUE 进行 减负运算、加减乘除运算、乘方运算以及 N 函数运算,公式分别如下:
这7个公式结果都等于1,说明 TRUE 是等于 1 的,
也说明,“1-TRUE”就等于“1-1”,结果等于0,也就是 FALSE。
(五)总结如下
四则运算中,TRUE=1,FALSE=0;
逻辑判断中,非0数值=TRUE,0=FALSE。
AND函数(不能返回数组结果),可用 * 代替(能返回数组结果);
OR函数(不能返回数组结果),可用 + 代替(能返回数组结果);
XOR函数(不能返回数组结果),可用 <> 代替(能返回数组结果);
NOT函数(能返回数组结果),可用 1- 代替(也能返回数组结果)。
(六)且看附件,欢迎指正
也谈逻辑.rar
(9.82 KB, 下载次数: 54)
|
评分
-
2
查看全部评分
-
|