课程
Excel 中的 TEXT() 函数是一个强大的工具,可将数值数据格式化为可读且呈现良好的文本字符串。无论您处理的是日期、货币、百分比,还是自定义数字格式,TEXT() 函数都能精确控制这些值的显示方式。
虽然 Excel 提供了内置的单元格格式设置选项,但这些只影响值在单元格中的显示方式。TEXT() 函数在您需要将格式化后的值嵌入到更长的文本字符串中时非常有用,例如自定义消息、动态标签或合并的单元格输出。在本教程中,我将通过实际示例展示 Excel TEXT() 函数的不同应用,以及如何排查常见错误。
如果您对一些基础不太熟悉,建议先学习我们的 Introduction to Excel 课程,夯实 Excel 基础。您也可以查看我们的 Data Preparation in Excel 课程,进一步了解如何转换原始数据。
Excel TEXT() 函数的作用
Excel 中的 TEXT() 函数会使用 Excel 的数字格式代码,将数值转换为遵循指定格式的文本字符串。因此,TEXT() 函数的主要用途是将原始数字转换为对人更友好的格式化文本,使数据更易读、更易理解。
TEXT() 函数的其他常见用例包括:
- 以货币符号或千位分隔符显示数字
- 显示易读的日期或时间
- 为固定长度的编码添加前导零
- 创建如电话号码或科学计数法等格式化输出
我将在接下来的部分通过实际示例演示上述用例。
如何使用 Excel TEXT() 函数
要理解如何使用 Excel 的 TEXT() 函数,我们先来看它的语法以及可应用的格式代码类型示例。
公式解析
Excel 的 TEXT() 函数使用两个关键参数,将数值输入转换为格式化的文本字符串:
=TEXT(value, format_text)
其中:
-
value:要格式化的数值输入。可以是数字、包含数字的单元格引用、日期,或返回数值的公式。 -
format_text:指定要应用的格式的文本字符串,必须用双引号括起。
格式代码类型与示例
下表汇总了常见的 Excel 格式代码及其在 TEXT() 函数中的应用。
|
Format Code |
Use Case |
Example Input |
Formatted Output |
|
|
保留两位小数(自动四舍五入)。 |
|
|
|
|
添加千位分隔符。 |
|
|
|
|
美国日期格式。 |
|
|
|
|
完整星期名称。 |
|
|
|
|
将小数转换为百分比。 |
|
|
|
|
为固定长度的 ID 添加前导零。 |
|
|
|
|
显示坐标(十进制度转度分秒)。 |
|
|
|
|
科学计数法。 |
|
|
|
|
基础电话号码格式。 |
|
|
|
|
标准美国电话号码格式。 |
|
|
打开 Excel 的 单元格格式 对话框,您可以轻松找到并复用上面列出的许多格式代码。
- 选择一个单元格,然后按 Ctrl+1(在 Mac 上为 Cmd+1)打开 单元格格式 窗口。
- 在 数字 选项卡下,选择 数值、日期、自定义 或 特殊 类别。
- 复制 类型 字段中显示的格式代码。单击 确定 以应用。

将 TEXT() 用于日期和时间
Excel 以数字形式存储日期和时间,但当您希望以清晰的文本展示它们时,TEXT() 函数可以精确控制其外观。
将 TEXT() 与 TODAY() 和 NOW() 搭配使用
TEXT() 函数非常适合格式化由 Excel 的 TODAY() 和 NOW() 函数返回的动态日期和时间值。
例如,下面的公式会将当前日期转换为类似 "May 1, 2025" 的完整文本格式。
=TEXT(TODAY(), "mmmm d, yyyy")

下面的公式提取 NOW() 函数的时间部分,以 12 小时制并带 AM/PM 显示当前时间。
=TEXT(NOW(), "hh:mm AM/PM")

将日期/时间与标签拼接
您还可以使用 TEXT() 函数将格式化后的日期或时间嵌入到句子或标签中。例如,下面的函数将生成 "Report generated on: 05/01/25" 这样的输出。
="Report generated on: " & TEXT(TODAY(), "MM/DD/YY")

请注意,如果在不使用 TEXT() 函数的情况下直接拼接日期或时间,Excel 会显示其底层的序列号,而不是可读的日期。

将 TEXT() 用于百分比、货币和分数
在日常分析和任务中,Excel 的 TEXT() 函数在格式化百分比、货币值和分数时尤其有用。以下是转换不同类型数值数据的方法:
对于百分比,TEXT() 函数会将小数值乘以 100 并添加百分号。例如,下面的公式将 0.275 转换为保留一位小数的 "27.5%"。
=TEXT(0.275, "0.0%")

在处理货币时,您可以使用适当的符号、千位分隔符和小数位对金额进行格式化。例如,下面的函数将 "1234.56" 显示为带有美元符号、千位分隔符和两位小数的 "$1,234.56"。
=TEXT(1234.56, "$#,##0.00")

对于分数,TEXT() 函数可以将小数转换为分数表示。下面的函数将 ”4.5” 显示为 ”4 ½”,以带整数部分和分数部分的带分数形式展示该值。
=TEXT(4.5, "# ?/?")

实践应用与组合
当您将 TEXT() 与文本及其他函数组合使用以生成精致的输出时,它的真正威力才会显现。让我们来看以下示例。
在消息中嵌入数值
您可以使用 & 或 CONCAT() 函数,直接在消息中包含格式化后的数字。例如,如果 A2 中的价格为 2500,下面的函数会显示 "Final Price: $2,500.00"。
="Final Price: $" & TEXT(A2, "#,##0.00")

添加前导零
您还可以使用 TEXT() 函数,通过添加前导零来规范代码、ID 或邮编等。例如,如果 A2 中的编码为 4567,下面的函数会显示 "000004567"。
=TEXT(A2, "000000000")

格式化电话号码
由于电话号码需要特定的格式以提升可读性,您可以使用 TEXT() 函数对其进行转换。例如,如果 A2 包含 1234567890,下面的公式会将其显示为 ”(123) 456-7890”。
=TEXT(A2, "(###) ###-####")

进阶示例与技巧
TEXT() 函数也可用于更复杂的公式和动态报告中,以增强清晰度和交互性。以下是其一些高级应用示例。
在 IF() 或 IFS() 公式中使用
您可以将 TEXT() 与 IF() 或 IFS() 等逻辑函数组合,基于数值生成条件消息。例如,下面的公式会根据 A2 的值显示 "Profit: $250.00" 或 "Loss: $250.00"。
=IFS(A2 > 0, "Profit: " & TEXT(A2, "$0.00"), A2 < 0, "Loss: " & TEXT(ABS(A2), "$0.00"))

用于数组公式或动态报告
TEXT() 函数允许您在数组公式或动态报告中动态格式化数值,例如按月份分组或排序。比如,下面的公式会从日期中提取并格式化月和日,便于在不考虑年份的情况下对生日或事件进行排序或分析。
=TEXT(A2, "mm-dd")

区域特定行为
需要注意的是,TEXT() 的格式代码会因区域设置而异。例如,"dd/mm/yyyy" 在美国以外的许多地区是标准格式,而 "mm/dd/yyyy" 则是美国常用格式。使用与您所在地区不匹配的格式代码,可能会导致错误或意外结果。如果您与国际团队合作或使用共享的电子表格,请务必检查区域设置如何影响格式化结果。
排查 TEXT() 函数问题
在使用 Excel 的 TEXT() 函数时,您可能会遇到错误。让我们来看一些常见问题及其排查方法。
常见错误
TEXT() 函数的常见错误包括:
-
#NAME?:当格式字符串缺少引号时会出现该错误。例如,写成=TEXT(A1, mm/dd/yyyy)而不是=TEXT(A1, "mm/dd/yyyy")。 -
#VALUE!:当格式代码无效、结构不正确,或不受您所在区域支持时会出现该问题。
最佳实践
在 Excel 中使用 TEXT() 函数时,请考虑以下最佳实践以避免上述问题。
-
将原始值单独存放:由于
TEXT()会将数字转换为文本,结果无法继续参与计算。请将原始数值存放在单独的单元格或列中用于计算,仅将TEXT()用于展示或报告用途 -
仅在必要时格式化:当您需要在标签、报告或合并字符串中使用格式化值时再应用
TEXT()函数,不要在计算或数据分析中使用。
Excel 中其他有用的文本函数
除了 TEXT() 函数,Excel 还提供了多种文本函数,可用于处理、清洗和组合文本数据。以下是这些函数及其应用:
-
VALUE():将看起来像数字的文本字符串转换回数值。例如,函数=VALUE("123.45")会将其显示为数字123.45。 -
LEFT()、RIGHT()、MID():用于提取文本字符串的部分内容。例如,=LEFT(A1, 4)提取前 4 个字符,=RIGHT(A1, 3)提取最后 3 个字符,=MID(A1, 2, 5)从第 2 个位置开始提取 5 个字符。 -
CONCAT()、TEXTJOIN():用于合并多个单元格中的文本。CONCAT()将两个或多个文本字符串连接为一个,而TEXTJOIN()会在各项之间使用指定的分隔符进行合并。 -
TRIM()、SUBSTITUTE()、REPLACE():用于清洗和修改文本数据。TRIM()可删除文本中的多余空格,SUBSTITUTE()用于替换字符串中的特定文本,REPLACE()则可替换特定位置的文本。
结语
正如您已看到并希望今后加以运用,TEXT() 函数之所以重要,是因为它可以将格式化的值嵌入到动态标签、报告、模板等内容中,而且最显著的是,它能确保您的数据按您期望的方式呈现。它纯粹是外观层面的处理,但影响很大。不过我也要强调,对于计算和分析,最好在工作表的其他位置保持原始数值不变,以确保准确性和灵活性,只在最终结果上应用外观层面的处理。
下一步建议学习我们的 Data Analysis in Excel 课程,继续练习您的技能,以及我们的 Excel Fundamentals 技能路径,了解最新 Excel 版本中可用的各类函数。
数据科学技术写作者,具备数据分析、商业智能和数据科学的一线实践经验。我撰写以行业为导向的实用内容,涵盖 SQL、Python、Power BI、Databricks 和数据工程,并以真实的分析工作为基础。我的写作兼顾技术深度与业务影响,帮助专业人士将数据转化为自信的决策。
FAQs
Excel 中的 TEXT() 函数有什么作用?
TEXT() 函数会根据指定的格式代码,将数字、日期或时间转换为格式化的文本字符串。
为什么在某些情况下 TEXT() 比单元格格式更好?
单元格格式仅更改视觉显示;当需要将数值与其他文本组合时,需要使用 TEXT()。
TEXT() 的结果可以用于计算吗?
不能。由于 TEXT() 返回的是文本字符串,结果无法直接参与算术运算,除非使用 VALUE() 或其他方法将其转换回数值。
如何修复 #VALUE! 错误?
检查数值计算中是否混入文本、删除多余空格,并确保单元格引用正确。
如何修复 #NAME? 错误?
核对函数名称、确保命名区域存在,并将文本值用双引号括起。
