Table of contents
本教程展示了如何使用Excel中的CELL函数来检索单元格的各种信息,如单元格地址、内容、格式化、位置等。
在Excel中,你通常如何获得一个单元格的具体信息呢? 有人会用自己的眼睛去检查,有人会使用功能区选项。 但更快更可靠的方法是使用Excel的CELL函数,除此之外,它可以告诉你一个单元格是否被保护,带来数字格式和列宽,显示包含该单元格的工作簿的完整路径,以及还有很多。
Excel CELL函数--语法和基本用途
Excel中的CELL函数返回有关单元格的各种信息,如单元格内容、格式化、位置等。
CELL函数的语法如下。
CELL(info_type, [reference])在哪里?
- 信息类型 (required) - 要返回的关于细胞的信息类型。
- 参考 (可选) - 检索信息的单元格。 通常情况下,这个参数是一个单独的单元格。 如果提供的是一个单元格范围,则公式会返回该范围左上角单元格的信息。 如果省略,则会返回工作表上最后更改的单元格的信息。
信息类型值
下表显示了所有可能的值 信息类型 Excel CELL函数所接受的参数。
信息类型 | 描述 |
"地址" | 单元格的地址,以文本形式返回。 |
"col" | 该单元格的列号。 |
"颜色" | 如果单元格的颜色格式为负值,则数字为1;否则为0(零)。 |
"内容" | 该单元格的值。 如果该单元格包含一个公式,将返回其计算值。 |
"文件名" | 包含该单元格的工作簿的文件名和完整路径,以文本形式返回。 如果包含该单元格的工作簿尚未保存,则返回一个空字符串("")。 |
"格式" | 一个与单元格的数字格式相对应的特殊代码。 更多信息,请参见格式代码。 |
"小括号" | 如果单元格中的正值或所有值都用圆括号进行格式化,则数字为1;否则为0。 |
"前缀" | 以下数值之一,取决于如何 文本 是在单元格中排列的。
对于 数值 ,无论是否对齐,都会返回一个空字符串(空白单元)。 |
"保护" | 如果单元格被锁定,数字为1;如果单元格未被锁定,数字为0。 请注意,"锁定 "与 "保护 "不一样。 已锁定 默认情况下,Excel中的所有单元格都预选了属性。 要保护一个单元格不被编辑或删除,你需要保护工作表。 |
"行" | 该单元格的行号。 |
"类型" | 与单元格中的数据类型相对应的下列文本值之一。
|
"宽度" | 单元格的列宽,四舍五入到最接近的整数。 关于宽度单位的更多信息,请参见Excel列宽。 |
注意事项。
- 所有的info_types检索的信息是关于 首先 (左上角)单元格中的 参考 争论。
- 在Excel Online、Excel Mobile和Excel Starter中不支持 "文件名"、"格式"、"括号"、"前缀"、"保护 "和 "宽度 "值。
作为一个例子,让我们使用Excel的CELL函数来返回包含通用格式文本值的A2单元格的不同属性。
A | B | C | D | |
---|---|---|---|---|
1 | 数据 | 公式 | 结果 | 描述 |
2 | 苹果公司 | =CELL("地址", $A$2) | $A$2 | 作为绝对引用的单元格地址 |
3 | =CELL("col", $A$2) | 1 | 第1栏 | |
4 | =CELL("color", $A$2) | 0 | 单元格没有用颜色进行格式化 | |
5 | =CELL("内容", $A$2) | 苹果公司 | 细胞值 | |
6 | =CELL("格式",$A$2) | G | 一般格式 | |
7 | =CELL("括号", $A$2) | 0 | 该单元格未使用括号的格式化 | |
8 | =CELL("prefix", $A$2) | ^ | 居中的文本 | |
9 | =CELL("保护", $A$2) | 1 | 该单元被锁定(默认状态)。 | |
10 | =CELL("行", $A$2) | 2 | 第2行 | |
11 | =CELL("类型", $A$2) | l | 一个文本常量 | |
12 | =CELL("宽度", $A$2) | 3 | 列的宽度四舍五入为整数 |
该截图显示了另一个Excel CELL公式的结果,该公式基于以下因素返回A2单元格的不同信息 信息类型 为此,我们在C2中输入以下公式,然后向下拖动它,将公式复制到其他单元格。
=cell(b2, $a$2)
有了你已经知道的信息,你在解释公式结果方面应该没有什么困难,也许除了格式类型。 这很好地把我们引向教程的下一节。
格式代码
下表列出了可由CELL公式返回的最典型的数值,其中包括 信息类型 参数设置为 "格式"。
格式 | 返回的值 |
一般 | G |
0 | F0 |
0.00 | F2 |
#,##0 | ,0 |
#,##0.00 | ,2 |
无小数位的货币 $#,##0或$#,##0_);($#,##0) | C0 |
有2位小数的货币 $#,##0.00或$#,##0.00_);($#,##0.00) | C2 |
没有小数点的百分比 0% | P0 |
有2位小数的百分比 0.00% | P2 |
科学记数法 0.00E+00 | S2 |
分数 #? /? 或#? /? | G |
m/d/yy或m/d/yy h:mm或mm/dd/yy | D4 |
d-mmm-yy 或 dd-mmm-yy | D1 |
d-mmm或dd-mmm | D2 |
mmm-yy | D3 |
毫米/日 | D5 |
h:mm AM/PM | D7 |
h:mm:ss AM/PM | D6 |
h:mm | D9 |
h:mm:ss | D8 |
对于自定义的Excel数字格式,CELL函数可能会返回其他数值,下面的提示将帮助你解释这些数值。
- 该字母通常是格式名称中的第一个字母,例如,"G "代表 "通用","C "代表 "货币","P "代表 "百分比","S "代表 "科学",而 "D "代表 "日期"。
- 对于数字、货币和百分比,数字表示显示的小数位数。 例如,如果自定义数字格式显示3个小数位,如0.###,CELL函数返回 "F3"。
- 如果数字格式有千位分隔符,逗号(,)会加在返回值的开头。例如,对于格式#,##.####,CELL公式返回",4",表示单元格被格式化为有4位小数和千位分隔符的数字。
- 如果单元格对负值进行了彩色格式化,则在返回值的末尾加上减号(-)。
- 如果单元格的格式为正值或所有值,则在返回值的末尾加上圆括号()。
为了对格式代码有更多的了解,请看一下以下公式的结果,该公式是在D栏中复制的。
=CELL("格式",B3)
注意:如果你后来对引用的单元格应用了不同的格式,你必须重新计算工作表以更新CELL公式的结果。 要重新计算活动的工作表,按Shift + F9或使用如何重新计算Excel工作表中描述的任何其他方法。
如何在Excel中使用CELL函数--公式实例
通过内置的info_types,CELL函数可以返回关于一个单元格的总共12个不同的参数。 与其他Excel函数相结合,它能够做得更多。 下面的例子展示了一些高级功能。
获取查询结果的地址
如果要在一列中查找某个值,并从另一列中返回一个匹配的值,你通常使用VLOOKUP函数或更强大的INDEX MATCH组合。 如果你还想知道返回值的地址,把索引/匹配公式放入 参考 如下图所示,CELL的参数。
CELL("地址", INDEX ( 返回列 , MATCH ( 查找_值 , 查询栏 , 0)))在E2的查询值,查询范围A2:A7,返回范围B2:B7,实际公式如下。
=CELL("地址", INDEX(B2:B7, MATCH(E1,A2:A7,0))
并返回查找结果的绝对单元格引用。
请注意,嵌入VLOOKUP函数不会工作,因为它返回一个单元格值,而不是一个引用。 INDEX函数通常也显示一个单元格值,但它在下面返回一个单元格引用,CELL函数能够理解和处理。
做一个超链接到查询结果(第一个匹配)。
如果你不仅希望得到第一个匹配的地址,而且还希望跳转到该匹配的地址,那么通过使用这个通用公式创建一个超链接到查询结果。
HYPERLINK("#"&CELL("地址", INDEX ( 返回列 , MATCH ( 查找_值 , 查询栏 , 0))), link_name)在这个公式中,我们再次使用经典的Index/Match组合来获得第一个匹配值,并使用CELL函数来提取其地址。 然后,我们将地址与 "#"字符连接起来,告诉HYPERLINK目标单元格在当前工作表中。
对于我们的样本数据集,我们使用与前面例子相同的索引/匹配公式,只需要添加所需的链接名称,例如这个链接。
=HYPERLINK("#"&CELL("地址", INDEX(B2:B7, MATCH(E1,A2:A7,0)), "转到查询结果")
你可以把地址变成一个可点击的链接,而不是在一个单独的单元格中创建一个超链接。 为此,将同样的CELL("address", INDEX(...,MATCH())公式嵌入HYPERLINK的最后一个参数中。
=HYPERLINK("#"&CELL("地址", INDEX(B2:B7, MATCH(E1,A2:A7,0)), CELL("地址", INDEX(B2:B7, MATCH(E1,A2:A7,0)))))
并确保这个冗长的公式产生一个简洁明了的结果。
获取文件路径的不同部分
要返回包含被引用单元格的工作簿的完整路径,请使用一个简单的Excel CELL公式,在info_type参数中使用 "filename"。
=CELL("文件名")
这将以这种格式返回文件路径。 Drive:\path\[workbook.xlsx]sheet
要想只返回路径的特定部分,请使用SEARCH函数来确定起始位置,并使用文本函数之一,如LEFT、RIGHT和MID来提取所需的部分。
注意:下面的所有公式都返回的是 当前 工作簿和工作表,即公式所在的工作表。
工作簿名称
要只输出文件名,请使用以下公式。
=MID(CELL("文件名"), SEARCH("[", CELL("文件名"))+1, SEARCH("]", CELL("文件名")) - SEARCH("[", CELL("文件名") )-1)
该公式如何运作 :
由Excel CELL函数返回的文件名被括在方括号内,你使用MID函数来提取它。
起始点是开头方括号的位置加1:SEARCH("[",CELL("filename"))+1。
要提取的字符数与开括号和闭括号之间的字符数相对应,用这个公式计算:SEARCH("]", CELL("文件名")) - SEARCH("[", CELL("文件名"))-1
工作表名称
要返回工作表的名称,请使用以下公式之一。
=RIGHT(CELL("文件名"), LEN(CELL("文件名")) - SEARCH("] ", CELL("文件名"))
或
=MID(CELL("文件名"), SEARCH("] ", CELL("文件名"))+1, 31)
计算公式如何工作 :
公式1:从内到外,我们通过用LEN计算的总路径长度减去SEARCH返回的结尾括号的位置来计算工作表名称中的字符数。 然后,我们将这个数字送入RIGHT函数,指示它从CELL返回的文本字符串的末尾拉出这么多字符。
公式2:我们使用MID函数来提取从括号后第一个字符开始的工作表名称。 要提取的字符数为31,这是Excel用户界面允许的工作表名称的最大字符数(尽管Excel的xlsx文件格式允许工作表名称中最多有255个字符)。
文件的路径
这个公式将带给你没有工作簿和工作表名称的文件路径。
=LEFT(CELL("文件名"), SEARCH("[", CELL("文件名"))-1)
该公式如何运作 :
首先,你用SEARCH函数找到开头方括号"["的位置,然后减去1,这就得到了要提取的字符数。 然后,你用LEFT函数从CELL返回的文本字符串的开头提取这些字符。
路径和文件名
通过这个公式,你可以得到一个完整的文件路径,包括工作簿名称,但没有工作表名称。
=SUBSTITUTE(LEFT(CELL("文件名"), SEARCH("]", CELL("文件名"))-1), " [", "")
该公式如何运作。
SEARCH函数计算收尾方括号的位置,从中减去1,然后让LEFT函数从CELL返回的文本字符串的开头提取该数量的字符。 这实际上切断了工作表名称,但开头的方括号仍然存在。 要摆脱它,你用空字符串("")代替"["。
这就是在Excel中使用CELL函数的方法。 要想仔细看看本教程中讨论的公式,我邀请你下载我们的Excel CELL函数样本工作簿。
谢谢你的阅读,希望下周在我们的博客上看到你的身影!