宏表函数get.cell获取单元格的信息

你好,我是刘卓。欢迎来到我的公号,excel函数解析。今天要和你分享的是宏表函数get.cell的用法。它是一个返回单元格信息的函数,和cell函数很像。

宏表函数具有宏的功能,所以要保存为启用宏的工作簿,后缀名为.xlsm。尽管现在几乎被“遗弃”了,但在某些地方还是有用处的。

宏表函数不能在公式中直接使用,必须先定义为名称。另外,有些宏表函数就算按F9也不会自动更新,而必须按ctrl+alt+f9。

解决的办法是在定义名称的时候加一个易失性函数,比如rand(),now(),today()等。利用易失性函数来实现自动更新。
-01-

函数说明

get.cell返回单元格的一些信息,语法如下,有2个参数:

GET.CELL(type_num, reference)

第1参数type_num:是一个代表信息类型的数字。常用的有下面几种:62,63,24,7。更多的类型请参考文件的sheet2。

第2参数reference:是一个区域引用,只使用区域中左上角的单元格。如果忽略,默认为活动单元格。


-02-
具体应用
1.对有颜色的单元格求和
如下图所示,当给单元格添加背景色后,按一下F9就会更新求和的结果。这里要获取单元格的背景色,所以第1参数要用63,第2参数就是B列的单元格。
其实这里用到了辅助列C列,只不过把C列的字体颜色改为白色了。下面说一下操作步骤:
首先鼠标选中C3单元格,点【公式】-【定义名称】,在名称中输入_gc63,引用位置输入公式=GET.CELL(63,Sheet1!$B3)+0*NOW(),点确定。
然后在C3单元格输入公式=_gc63,向下填充。可以看到有背景色的单元格返回大于0的数字,没有背景色的返回0。

有了C列的辅助列,对有颜色的单元格求和就简单了,在B14单元格输入公式=SUMIF(C3:C13,">0",B3:B13)。最后把C列的字体颜色改为白色就可以了。

不用辅助列也是可以完成的,求和公式为=SUMPRODUCT((color>0)*B3:B13)。

其中color是一个名称,它的公式为

=GET.CELL(63,OFFSET(Sheet1!$B$2,N(IF(1,ROW(Sheet1!$1:$11))),))

除了对一维区域的颜色单元格求和,还可以对二维区域的颜色单元格求和,如下图所示。具体名称的公式,你可以查看文件。

2.提取活动工作簿,活动工作表

get.cell(62)可以返回活动工作簿和工作表名。按下图步骤操作:点【公式】-【定义名称】,在名称中输入_gc62,引用位置输入公式=GET.CELL(62)&T(NOW()),点确定。
然后在B18单元格输入公式=_gc62,返回的结果如下图所示,既包含工作簿名又包含工作表名。有了这个结果,我们就可以分别提取活动工作簿和工作表名。

活动工作表名的公式为=MID(_gc62,FIND("]",_gc62)+1,99)。

活动工作簿名的公式为=MID(_gc62,2,FIND("]",_gc62)-2)。

3.返回自定义数字格式的代码

get.cell的第1参数选7可以返回单元格的数字格式代码。如下图所示,A列的数据设置了自定义数字格式,真正的值是B列所示。

定义一个名称_gc7,名称的公式为=GET.CELL(7,Sheet1!$A24)&T(NOW())。在C24单元格输入公式=_gc7,返回A24单元格的数字格式代码。

如果想要将A列的数据真的变为眼睛看到的值,可以在D24单元格输入公式=TEXT(A24,_gc7),向下填充。
链接:

https://pan.baidu.com/s/19o5u1SWLUqV7mAwW4Bt_AA

提取码:9w5n
(0)

相关推荐