CELL
这大半年,把Excel中的常用函数基本都写了一个遍,现在只能去挖掘生僻函数了,今天无意中就找到了一个惊喜……
她就是cell这个函数,非常的有趣,越是研究惊喜越多……让我们通过几个案例看一下!
案例1 | 获取文件名称及表名
=CELL("filename"
获取的是本文件的文章的路径+当前工作表名称
如果我们只想获取当前工作表的名称,那么我们可以使用其他函数处理一下!
=REPLACE(CELL("filename"),1,FIND("]",CELL("filename")),"")
查找到“]”的位置,使用REPLACE直接替换成空即可!
案例2 | 指定单元格的地址
基本的用法:直接指定对应的单元格获取地址
=CELL("address",A1)
这看上去也没什么用,不要急,配合结果为引用的方式有奇效
▍ 获取张飞所在的单元格地址!
=CELL("address",OFFSET(A1,MATCH("张飞",A:A,)-1,))
这样我们就可以根据条件获取到对应内容的地址!
如果我们只是单纯的想看在哪一行或者一列那么可以这样!
▍ 获取张飞所在的行!
=CELL("row",OFFSET(A1,MATCH("张飞",A:A,)-1,))
第一参数ROW表示行,所以可以获取到行!
▍ 获取张飞所在的列!
=CELL("col",OFFSET(A1,MATCH("张飞",A:A,)-1,))
“col” 是COLUMN的缩写!获取的是对应的列,这里是A列,也就是第一列!
案例3 | 获取单元格的列宽成为可能
我们知道Excel中的基本都是用于处理单元格的数据,如果先获取单元格的一些属性基本不可能,但是cell可以!
="A列宽度"&INDEX(CELL("width",A1),1)
结果是一个数组:
第一个元素为:列宽,列宽以默认字号的一个字符的宽度为单位
第二个元素是真是否是默认列宽,利用这点可以看那些列宽被人工调整过!
是否默认列宽,TRUE表示B列默认列宽,没有变更大小!
案例4 | 按人民币符号求和
=CELL("format",B2)
通过format可以获取到单元格中格式代码,不同的代码表示不同的含义!
这里我们获取到了美元格式和人民币格式的对应的格式代码!
有了格式,是否我们求和就有望了,但是cell函数只能获取到区域中左上角单元格的格式代码,如果我们给一个区域是没有意义!那怎么办?前辈们还是有办法的,研究发现,他支持数组!且要求结果是引用,那么只有INDRIECT和OFFSET可以了!
人民币公式:
=SUM($B$2:$B$11*(CELL("format",OFFSET($B$1,N(IF(1,ROW($1:$10))),))="C2-"))
美元公式:
=SUM($B$2:$B$11*(CELL("format",OFFSET($B$1,N(IF(1,ROW($1:$10))),))=",2-"))
新手阅读可能有点吃力,主要是cell第二参数特性决定了,这里主要是三维降维的处理,很多不支持区域的都可以使用此方式突破,函数高级的内容,不懂也没有关系!
还有一些,实战欠缺一些,大家有时间可以继续挖掘,第二参数的全部解释如下: