Excel CELL函数与公式实例

  • Share This
Michael Brown

本教程展示了如何使用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中的所有单元格都预选了属性。 要保护一个单元格不被编辑或删除,你需要保护工作表。

    "行" 该单元格的行号。
    "类型" 与单元格中的数据类型相对应的下列文本值之一。
    • "b"(空白)表示一个空单元格
    • "l"(标签)表示一个文本常数
    • "v"(价值)代表其他东西
    "宽度" 单元格的列宽,四舍五入到最接近的整数。 关于宽度单位的更多信息,请参见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函数样本工作簿。

    谢谢你的阅读,希望下周在我们的博客上看到你的身影!

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.