excel - 有没有办法在这个 IF 语句中添加多个“NOT”
问题描述
嘿,聪明的人,
我希望我的问题的标题足够合适,我尽力了^^
我尝试比较从 A 列到 Z 列的 2 行,并检查它们内部是否具有相同的模式。对于模式,我的意思是如果在第 1 行 A 列中写入任何内容,那么在第 2 行 A 列中也必须写入一些内容。或者两者都可以为空。
听起来很简单,但 if 语句仅在模式不匹配时才允许执行:在 A1 中写入的内容,在 A2 中没有写入内容。
我确信我只使用了一种复杂的方法,但即使在谷歌搜索问题之后,我也找不到合适的简单解决方案。
我相信这对你们来说是小菜一碟,但我就是不知道如何构建它。(也许是周五的具体问题;))
(在代码中我跳过了循环部分,因为我猜它对问题没有必要)
If Not (A1 = "" And A2 = "") Or Not (Not A1 = "" And Not A2 = "") Then
Boolean = False
End If
解决方案
简化你的布尔表达式表明它总是评估为真,所以这里有一个问题。
快速布尔代数课:
NOT(A AND B) = NOT(A) OR NOT(B)
NOT(A OR B) = NOT(A) AND NOT(B)
当应用于您的表达式时,为简单起见写A1 = ""
asA
和A2 = ""
as B
:
Not (A And B) Or Not (Not A And Not B)
= Not(A) Or Not(B) or Not(Not(A)) or Not(Not(B))
= Not(A) Or Not(B) or A or B
= True
你的意思是,我相信,是这样的:
Not((A and B) or (Not(A) and Not(B)))
这可能会被简化,但这会损害可读性(您想要检查的内容变得不那么明显)。
最后,你不应该这样写:
If Expression
Boolean = False
反而:
Boolean = Not(Expression)
假设变量赋值不是实际代码的占位符。
推荐阅读
- javascript - Webpack4:两个基于入口点的供应商库
- javascript - 尝试在 javascript 中将图像转换为 Base64 字符串并尝试在 c# 中转换为字节数组,在 base64 字符串中出现 Invalid character 错误
- python - 在 Visual Studio Code 中使用 Pybluez 时出现“ImportError: No module named bluetooth”
- docusignapi - 修复 TLS 版本上的 DocuSign SOAP API 错误
- python - 迭代自我是一种不好的做法吗?
- javascript - 如何自动滚动(动画)带有文本,溢出设置为自动或滚动?
- java - 使用 volley(json 编码)从 mysql 显示 BLOB 图像到 android
- if-statement - 将 SYSTEMCTL 状态的 grep 搜索结果用于 IF CONDITION
- sql - 如何将一列的平均值分成多列?
- django - 如果记录存在于 1:1 中,则将 Createview 重定向到 Updateview