ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 操作与技巧 > “忽略空值”对数据有效性序列和自定义公式约束的影响?

“忽略空值”对数据有效性序列和自定义公式约束的影响?

作者:绿色风 分类: 时间:2022-08-17 浏览:176
楼主
lrlxxqxa
Q:“忽略空值”对数据有效性序列和自定义公式约束的影响?

问题描述:附件《原问题》中设置数据有效性目的为:B列中只能输入A列中已有的数据且当C列同行中的值为“否”时,B列同行就得不能输入任何数据;
但附件中设置(如下图)却达不到此种效果,为什么?


 

A:先来说一下解决这个问题的三种途径:
1、去除“忽略空值”前面的勾选;
2、更改有效性公式为=AND(COUNTIF(A:A,B1)=1,T(C1)<>"否");
3、使C列全部填充使之没有空值。

下面着重说一下原因,要搞明白这个问题,必须清楚“忽略空值”的勾选对数据有效性自定义公式有何种影响:

先从微软给我们的提示说起:


这段话读起来有点绕,我用自己的话来翻译一下吧。

1、如果把一个区域定义为一个名称,数据有效性引用这个区域名称的时候(“允许”值下拉菜单选择“序列”),当区域中出现空值(真空),则数据有效性不起作用。(区域引用存在空值则忽略数据有效性设置的约束);

2、如果是在“允许”值下拉菜单选择“自定义”,利用公式建立约束条件,那么当数据有效性的公式中引用的单元格有空值(真空)时,数据有效性不起作用(公式引用存在空值则忽略数据有效性设置的约束)。

为了更好的理解第一点,看如下动画:


 

可见当A列定义的data区域中有空值时,数据有效性约束不起作用了;

再来看如下动画,辅助理解第二点:


 

原本的数据有效性起作用,是因为C1:C7没有空值;当其中有空值时,则不起作用(数据A列中没有的“8”也不报警);
即使C1:C7有空值,去掉“忽略空值”前面的勾选,则数据有效性重新恢复约束作用(再输入“8”开始报警)。

同理,在勾选“忽略空值”时,更改数据有效性自定义公式为

  1. =AND(COUNTIF(A:A,B1)=1,T(C1)<>"否")
也可以使有效性约束具备效力,因为T()函数的作用就是使公式引用不返回真空,从而不会由于公式引用存在空值则忽略数据有效性设置的约束(第二点)
忽略空值.rar
原问题.rar
2楼
lrlxxqxa
关于此选项对数据有效性设置的单元格编辑栏输入的影响请见下帖:
[基础应用] 数据有效性序列“忽略空值”的含义是什么? http://www.exceltip.net/thread-3482-1-1.html
3楼
ccf
*^_^*学习了!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap