Excel技术问题:如何判断计算单元格值不在列表、单元格背景色非白色
问题1:检查计算得出的单元格值是否不在指定列表中
Excel没有NOT IN的直接语法,可用以下两种方法实现:
- 方法1:用
COUNTIF函数。假设要检查单元格B1的计算值是否不在A:A的列表中,公式为:=IF(COUNTIF(A:A, B1)=0, "不在列表中", "在列表中")
原理:COUNTIF统计目标值在列表中的出现次数,次数为0则代表不在列表内。 - 方法2:用
MATCH+ISNA组合。公式为:=IF(ISNA(MATCH(B1, A:A, 0)), "不在列表中", "在列表中")
原理:MATCH找不到匹配值时返回错误值,ISNA识别该错误,以此判断目标值是否不在列表。
问题2:检查单元格背景色是否不为白色
已知自定义函数PERSONAL.XLSB!GetFillColor()返回2或-4142代表白色,以下两种公式写法可实现需求:
- 写法1:用
NOT+OR组合修正逻辑:=IF(NOT(OR(PERSONAL.XLSB!GetFillColor(A1)=2, PERSONAL.XLSB!GetFillColor(A1)=-4142)), "背景色非白色", "背景色为白色")
逻辑:先判断函数结果是否属于白色对应的两个值,再用NOT取反,得到“非白色”的判断条件。 - 写法2:用
COUNTIF简化判断:=IF(COUNTIF({2,-4142}, PERSONAL.XLSB!GetFillColor(A1))=0, "背景色非白色", "背景色为白色")
原理:统计函数结果在白色值数组中的出现次数,次数为0则代表背景色不是白色。
内容的提问来源于stack exchange,提问作者Leonardo G
相关产品推荐
相关产品推荐

