ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 9619|回复: 5

[分享]浅谈数据有效性和条件格式中单元格引用格式问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-1-22 11:09 | 显示全部楼层 |阅读模式

附件等有空做好了再发,希望能讲清楚就不用附件了,呵呵。

在数据有效性,条件格式中都会涉及到对单元格的引用,如果留心大家会发现里面还是有些细节需要注意的。

以数据有效性为例,用输入时限制空格的输入为例进行讲解。

步骤:

                选中需要的一个单元格区域,可以是单单元格,单元格行,单元格列,单元格矩形区域。为了通用性,以矩形单元格区域为列进行说明。

                数据-》有效性-》设置-》自定义-》公式:=len(单元格引用)=len(substitute(单元格引用," ","")).

进入主题,这里讲讲有关这个单元格引用的不同引用方式产生的不同效果问题。

               选择一个单元格区域的时候会有一个单元格是反白的,那个单元格就是当前编辑单元格,在条件格式和数据有效性的时候就是参照单元格。大家其实注意到我们要设置的格式,要设置的数据有效性其实是针对整个区域的,但是在写公式的时候我们只为一个单元格分配公式,这个单元格就是当前的编辑单元格,一般情况下就是左上角的单元格。在给这一个单元格写好公式后,区域中的其他单元格公式是系统自动映射过去的。映射的规则根据单元格引用方式的不同而不同。

              假设我们选中的区域是 B2:E5,当前编辑单元格就是B2,我们要给这个片区设置数据有效性-不准有空格。那么我们在选中这个区域进行有效性公式设置的时候,我们只是对B2单元格进行了设置,但是效果会蔓延到整个B2:E5区域。但蔓延的效果和设置公式时对B2单元格的引用方式有很大关系。

             假设:我们的公式如下:=len(b2单元格引用)=len(substitute(b2单元格引用," ","")).功能就是没有空格。

各种引用方式的表现

                        B2的形式,那么最后的效果是每个单元格的公式都是以自身单元格为参数进行运算的

                        比如:C3的有效性公式为:=len(C3)=len(substitute(C3," ",""))

                        $B2的形式,那么区域内的单元格都是以本行最左单元格为参数进行运算的

                       比如:C2的有效性公式为:=len($B2)=len(substitute($B2," ",""))

                                 C3的有效性公式为:=len($B3)=len(substitute($B3," ",""))

                        B$2的形式,那么区域单元格都是以本列最上单元格作为参数进行运算的;

                        比如:C2的有效性公式为:=len(C$2)=len(substitute(C$2," ",""))

                                  C3的有效性公式为:=len(C$2)=len(substitute(C$2," ",""))    

                    $B$2的形式,那么区域所有单元格都是以左上单元格为参数进行运算的;

                       比如:C2的有效性公式为:=len($B$2)=len(substitute($B$2," ",""))

                                  C3的有效性公式为:=len($B$2)=len(substitute($B$2," ",""))   

=================================================================================

进行扩展:

         有时我们的有效性的约束条件不是来自自身单元格,也不是来自区域内部的行首或列首,而是其他的单元格,那么同样以上面的思想来实现。就是先对编辑单元格进行设置公式约束条件,然后由系统蔓延到整个区域。蔓延的规则是一样的。

         关键:1,数据有效性,条件格式的公式都是正对编辑单元格写公式。

                    2,由系统根据编辑单元格公式的引用方式进行蔓延,蔓延到整个区域。

                   分清楚这两点对掌握有效性和条件格式有很大帮助,对以后写公式也有极大的帮助。因为同样的规则在进行名称定义的时候也是非常有用的。

            有时我们写公式的时候不是使用编辑单元格,而是使用了其他的单元格,那么可以按照上面的内在规则进行动态平移。

           本例编辑单元格是B2,,而在写有效性的时候使用A2(并且就是A2这样的引用格式)来做参数写,

                    就是说编辑单元格B2的约束条件::=len(A2)=len(substitute(A2," ",""))

                   那么C2单元格的约束条件就是::=len(B2)=len(substitute(B2," ","")).

                                             实现的功能就是左边单元格不能有空格。

                 如果B2单元格约束公式中A2的引用格式不同,效果也是不同的,规则和直接引用B2单元格类似。大家可以通过设置好以后,然后查看区域的其他单元格的约束公式去尝试一下,会明白的。

==========================================

                                  同样规则也表现在条件格式中。好了自己体会一下会明白的

                                         编辑中,有待上色,还有再讲一个条件格式的例子

[此贴子已经被作者于2008-1-22 15:32:31编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-1-22 13:32 | 显示全部楼层

在名称定义中也是类似的。

关键也是要抓住:1。名称定义中的公式中单元格引用,如果是相对引用一定是和当前选中单元格发生关系的,有牵制作用。

比如,定义宏表函数 fx =get.cell(6,b2)&t(now()).

其中T(NOW())先不去计较,这个只是用来动态更新的。

插入-名称-名称定义-FX,  然后在公式出 =get.cell(6,b2)&t(now())

那么就你能使用宏表函数的名称定义FX来提取单元格的公式了。比如当前单元格是C2,那么=FX的功能就是提取左边单元格的公式;如果当前单元格是B3,那么=FX的功能就是提取上面单元格的公式。

好好体会一下,注意细节 很不错的。

[此贴子已经被作者于2008-1-22 14:16:59编辑过]

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-1-24 10:57 | 显示全部楼层

占位:在回答同学提问中 又对数据有效性有了进一步认识

帖子

里面逻辑是讲了 限制输入内容是身份证号码。当然现在想想由于最后一位可能是X所以还不是很完整。这个是逻辑上的设置。有点可取的地方但不是我今天想说的。

我想说的是数据有效性,那么有效无效判断机制的过程,主要涉及中间的运算次序。看过我帖子的同学知道,我是猜想一派,没有什么理论依据,就是看到了自己给他做解释,呵呵,知道以后发现新的情况再补充。

我觉得这个机制明白后会对一些没名奇妙的事情作点解释。呵呵。先这里吧,有空写点。

========================================================

有些细节,窗户纸,一说就破

[此贴子已经被作者于2008-1-24 11:21:05编辑过]

TA的精华主题

TA的得分主题

发表于 2009-6-4 14:34 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
好 , 学习了

TA的精华主题

TA的得分主题

发表于 2010-8-16 18:02 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2010-11-16 13:11 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-24 21:15 , Processed in 0.044126 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表