Excel中的宝藏函数之CELL及一个神奇的应用

今天给大家介绍Excel中的一个宝藏函数:CELL,和这个函数的一个神奇的应用。

01

认识CELL函数

相信大部分同学都没有用过这个函数。没用过的原因很简单,好像没有什么场合是必须使用这个函数的。

其实,这个函数很有意思。

我们先来看一下这个函数的语法:

这个函数两个参数:

  • info_type

  • reference

这个函数在Excel中被归为信息函数,它是用来提供各种信息的。第一个参数info_type就是指示CELL函数返回哪种信息,第二个参数reference就是告诉CELL函数返回关于哪一个单元格的信息。

上图中那个列表,就是返回的信息类型。这些返回的信息类型,有的挺有意思。

比如,公式

=CELL("col",G5)

就是要求返回G5单元格的列号,结果就是7。

公式

=CELL("protect",G5)

就是要求返回G5单元格是否锁定的信息,如果锁定了,就返回1,否则,就返回0。

在单元格格式设置中可以查看是否锁定

又比如这个信息类型“prefix”——前缀,根据单元格对齐方式返回不同的值:

又比如这个信息类型,"color",你一定以为是返回单元格的颜色,其实不然,它判断的是单元格是否设置了负数的颜色(参见自定义格式:你想怎么显示你的数字?Excel数字基于条件的自定义格式),如果是,就返回1,否则返回0。

还有这个“width”类型,返回的是个数组:

如果在单元格A1中输入公式:

=CELL("width",G5)

返回值是一个数字,这个数字表示G5单元格可以输入缺省状况下多少个字符。比如,我的缺省字体是微软雅黑,字号为9,返回值就是8

我们说了,这个返回值是一个数组,刚才说的实际上是第一个返回值。你可以用下面的公式取到这个返回值:

=INDEX(CELL("width",G5),1)

而使用公式:

=INDEX(CELL("width",G5),2)

可以取得这个函数的第二个返回值。这个值表示的是这个单元格的宽度是缺省的还是被手动设置了。如果是缺省宽度,返回TRUE,否则,返回FALSE。

其他的信息类型我就不一一列举了。大家有兴趣可以自己研究一下,挺有意思的。

但是,有什么用?

你很难一下子就想到有什么用处,就好像我们以前讲过的MOD函数一样,看上去没有用,但是实际上可以在很多地方发挥作用。有很多时候,我们需要进行一些“高级”的效果,经常需要根据单元格的某些属性进行操作,这个函数就可以发挥作用了。比如,根据INDEX和MATCH得到某个单元格后,我们通过公式创建一个到该单元格的超链接。

下面我就为大家介绍一个神奇的应用。首先来看看这个函数的神奇之处。

02

CELL函数的神奇之处

这个函数本身就够神的,更神奇的是,它可以使你与Excel交互!

你可能注意到了,这个函数的第二个参数是一个可选参数:

也就是说,你可以直接写一个公式:

=CELL("col")

那么它返回哪个单元格的列号呢?答案是当前选中单元格的列号。鼠标点击哪个单元格,就返回哪个单元格的列号。

鼠标选中单元格后,按F9,公式返回值就会发生变化

很神奇吧!

这意味着我们可以跟Excel的公式进行交互,其他的Excel函数做不到这一点。

我们可以利用这个特性实现一个神奇的应用

03

Excel表格聚光灯效果

我们可以利用这个特性实现聚光灯效果。

假设我们有一个表格,

当表格比较大时,往往不容易直接看出当前选中的单元格是第几行,第几列,列标题是什么等等信息,简单说,眼睛容易花。在WPS中直接就有这样的聚光灯的功能,有些插件也做了这个功能。实际上,利用CELL函数就可以实现这个功能。

选中这个表格区域,在开始选项卡中,点击条件格式,点击新建规则:

然后在对话框中进行如下设置:

格式设置为填充浅灰色

这里的公式是

=OR(CELL("col")=COLUMN(),CELL("row")=ROW())

用OR连接了两个公式,分别是:

CELL("col")=COLUMN()

CELL("row")=ROW()

第一个公式中CELL("col")返回当前点击的是哪一列,COLUMN()返回当前应用条件格式的是那一列,如果当前点击的就是当前应用条件格式的列,就返回TRUE。

同样,第二个公式就是判断当前点击的行是否是应用条件格式的行。

用OR连接起来,就是如果当前应用条件格式的区域中包含点击的行或列,那个对应的行或列就填充为浅灰色。

效果如下:

每次点击完成需要按F9

这个做法美中不足的是每次点击都需要按F9。我们可以通过添加一行VBA代码来解决这个问题。

在Excel中,按Alt+F11,打开VBA编辑器,在左边的窗口中双击选择这个数据区域所在的工作表:

在右边的“通用”下拉框中,选择Worksheet:

在右侧的下拉列表中,选择SelectionChange:

在代码区域,输入一行代码:

Sheet1.Calculate

现在,每次点击鼠标,不需要按F9了

注:这里这个代码实际上是为单元格的选择改变事件添加了一句代码,实现了按F9的效果。具体关于什么是事件,以及VBA的内容,请看相应的视频课程。

太有用了,赶紧用起来吧!

END

关注ExcelEasy
关于Excel的一切问题,你都可以在这里找到答案
(0)

相关推荐