新浪博客

CELL函数详解_Excel公式教程

2016-06-20 22:01阅读:
语法CELL(info_type,[reference])
易失函数。返回单元格的信息。
参数info_type用来指定要返回什么类型的信息。下面列出info_type的可能值(不分大小写)及函数返回的信息类型:
'address'-返回单元格的地址。根据选项中“R1C1引用样式”复选框的状态,返回A1-样式或R1C1-样式的绝对引用地址。
'col'-返回单元格的列号。CELL('col',A1)和COLUMN(A1)的结果一致。
'color'-如果单元格数字格式代码中的负数部分设置了颜色,返回1,否则返回0。
'contents'-返回单元格的值。
'filename'-返回单元格所在工作表的完整路径,形如“盘符:\路径\[工作簿名.xls]工作表名”。如果工作簿未曾保存,返回空文本''。如果工作簿只包含一个工作表,且工作表名与工作簿名相同(不区分大小写),则省略工作表名,形如“盘符:\路径\工作簿名.xls”。
'format'-返回代表单元格格式代码的文本。
'parentheses'-如果单元格格式代码中的正数部分设置了圆括号,返回1,否则返回0。
'prefix'-返回单元格文本值的水平对齐方式:①靠左(常规)、两端对齐、分散对齐,返回单引号(');②居中、跨列居中,返回脱字号(^);③靠右,返回双引号(');④填充,返回反斜杠(\);⑤如果单元格不是文本值,返回空文本''。
'protect'-返回单元格“锁定”复选框的状态:1-勾选,0-清除。
'row'-返回单元格的行号。CELL('row',A1)和ROW(A1)的结果一致。
'type'-返回代表单元格数值类型的文本。如果单元格为空,返回小写字母'b';如果单元格为文本值,返回小写字母'l';如果单元格为其他类型的数值,返回小写字母'v'。
'width'-返回取整后的单元格列宽。列宽以默认字号的一个字
符的宽度为单位。
参数reference指定要获取哪个单元格的信息。如果reference是一个单元格区域,则取区域左上角单元格的信息。如果省略reference,则取Excel程序最后更改的单元格,该单元格可能属于另一个已打开的工作簿。
修改单元格格式不会使公式重算。如果CELL函数返回的是单元格的格式信息,修改单元格格式后CELL函数的结果不会随即更新,直到公式重算时才更新。
用法
CELL('filename')返回形如“盘符:\路径\[工作簿名.xls]工作表名”的信息。结合文本函数,我们可以从中提取工作表名字、工作簿名字,甚至路径(工作簿所在文件夹)中的信息。
(一)结合文本函数,提取工作簿名字中的信息。
1、假设工作簿的名字是“XX(yyyy年mm月).xls”形式,年月信息固定8个字符,括在圆括号中。在单元格B2用以下公式提取年月信息:
=--MID(CELL('filename',B2),FIND('(',CELL('filename',B2))+1,8)
公式说明:
(1)CELL函数指定返回公式所在单元格B2的信息,而不是A1,这样可以避免删除A列或第1行后造成公式出错。
(2)用FIND函数查找CELL返回值中“(”的位置,然后用MID函数截取该位置后面8个字符。
(3)MID函数前的“--”,作用是通过算术运算,把提取出来的日期文本转为日期序列数。
如果路径名包含圆括号,可改用以下公式:
=--MID(CELL('filename',B2),FIND(']',CELL('filename',B2))-13,8)
公式中FIND函数由查找“(”改为查找“]”。
2、如果工作簿的名字是“XX-yyyymm.xls”形式,年月信息固定8个字符。在单元格B2用以下公式提取年月信息:
=--TEXT(MID(CELL('filename',B2),FIND(']',CELL('filename',B2))-10,6),'#-00')
公式利用TEXT函数,把提取出来的6位数字文本转为日期文本,然后用“--”转为日期序列数。
3、如果工作簿的名字是“yyyy年mm月XX.xls”形式,年月信息在工作簿名字的前头。在单元格B2用以下公式提取年月信息:
=--MID(CELL('filename',B2),FIND('[',CELL('filename',B2))+1,8)
公式中FIND函数查找CELL返回值中“[”的位置,然后用MID函数截取该位置后面8个字符。
(二)结合文本函数,提取工作表名字。
1、在单元格B2用以下公式提取工作表名字:
=REPLACE(CELL('filename',B2),1,FIND(']',CELL('filename',B2)),)
=MID(CELL('filename',B2),FIND(']',CELL('filename',B2))+1,99)
第一个公式用REPLACE函数删除CELL返回值中“]”及其前面的所有字符;第二个公式用MID函数截取CELL返回值中“]”后面的所有字符。
2、如果工作表名字的长度固定,假设是4个字符。在单元格B2用以下公式提取工作表名字:
=RIGHT(CELL('filename',B2),4)
3、如果工作表的名字是一位或两位的阿拉伯数字,例如1-12代表月份,或1-31代表日子。在单元格B2用以下公式提取工作表名字:
=--SUBSTITUTE(RIGHT(CELL('filename',B2),2),']',)
(三)结合文本函数,提取工作簿所在文件夹名字。
假设工作簿所在文件夹名字是“yymm”形式,为4位数字,代表年月。在单元格B2用以下公式提取年月信息:
=--(REPLACE(MID(CELL('filename',B2),FIND('[',CELL('filename',B2))-5,4),3,,'-')&'-1')

我的更多文章

下载客户端阅读体验更佳

APP专享