← 返回博客
教程2026年10月8日·4 分钟阅读

TEXT 函数格式化日期、数字和星期:3 组代码搞定报表美化

系统导出的日期是一串 45000,金额小数位长短不一,星期全是英文缩写?TEXT 函数两行代码就能把它们统一成你要的样子。本文用真实示例讲透日期、数字、星期的格式代码,并指出求和变 0、VLOOKUP 匹配失败等 3 个高频坑。

📝

从 ERP、银行或电商后台导出的表格,日期往往是一串五位数字,金额小数位长短不一,星期全是英文缩写。几百行手工改格式,改到怀疑人生。TEXT 函数能按你指定的格式把数值「翻译」成文本,一步到位。

语法只有两个参数

=TEXT(值, "格式代码")

值 可以是数字、日期、时间,也可以引用单元格;格式代码 是写在英文双引号里的自定义格式字符串,写法和「设置单元格格式 → 自定义」里的代码完全一致。区别在于:单元格格式只改变显示,TEXT 改变的是单元格的实际内容。

日期格式化:把 45000 变回人话

假设 A2 里是日期序列值 45000(对应 2023-03-15)。

=TEXT(A2,"yyyy-mm-dd")     → 2023-03-15
=TEXT(A2,"yyyy年m月d日")    → 2023年3月15日
=TEXT(A2,"m/d")             → 3/15

常用日期代码速查:

代码含义示例
yyyy四位年份2023
yy两位年份23
m / mm月份 / 补零月份3 / 03
mmm / mmmm英文月缩写 / 全称Mar / March
d / dd日 / 补零日5 / 05

注意 m 代表「月」还是「分」由位置决定:紧跟在 h 或 hh 后面才是分钟,其余情况都是月份。

星期:中文版一个字母搞定

这是 TEXT 最省事的地方。在中文版 Excel 里:

=TEXT(A2,"aaaa")   → 星期三
=TEXT(A2,"aaa")    → 三
=TEXT(A2,"dddd")   → Wednesday
=TEXT(A2,"ddd")    → Wed

小写 d 默认输出英文星期,a 才输出中文星期。如果想显示成「周三」,拼接一下即可:="周"&TEXT(A2,"aaa")。

数字格式化:补零、千分位与单位

数字的格式代码最多分四段,用分号隔开,依次是「正数;负数;零;文本」,后面几段可以省略。

需求公式结果
固定两位小数=TEXT(A2,"0.00")1234.50
千分位=TEXT(A2,"#,##0.00")1,234.50
百分比=TEXT(A2,"0.0%")25.6%
工号补零=TEXT(A2,"000000")000123
万元单位=TEXT(A2/10000,"0.0""万元""")12.3万元
负数标红=TEXT(A2,"0.00;[红色]-0.00")负值带颜色

0 表示「不足补零」,# 表示「不足不显示」,这两个占位符最容易混淆:=TEXT(1.5,"0.00") 得到 1.50,而 =TEXT(1.5,"#.##") 得到 1.5。想在格式里塞入文字(比如「万元」),记得把引号写成两个连续的英文双引号。

拼接字符串时必须套一层 TEXT

字符串连接会把日期变成序列值,这是新手最容易踩的坑:

="截至"&A2&"销售日报"                     → 截至45000销售日报   ✗
="截至"&TEXT(A2,"yyyy年m月d日")&"销售日报"  → 截至2023年3月15日销售日报   ✓

同理,百分比和大额金额在拼接前也应该先套 TEXT,否则会冒出一长串小数,或者被写成科学计数法。

三个必须提前知道的坑

  1. TEXT 的结果是文本,不是数字。 用 SUM 求和会得到 0,用 VLOOKUP 去匹配原始数字也会全部返回 #N/A。建议在最后一步才做格式化,或者用 VALUE、双负号 -- 把它转回数值。
  2. 格式代码受系统区域设置影响。 中文版里 aaaa 输出「星期三」,英文版里 aaaa 等同于 dddd,输出 Wednesday。把文件发给海外同事前最好核一遍。
  3. TEXT 生成的内容不会自动刷新。 用 TODAY() 配合 TEXT 做的报表标题只在重新计算时更新,如果你需要它永远跟着当天变动,用单元格自定义格式更稳妥。

小结

一句话记住 TEXT 的定位:它是「显示层」的函数,负责把数字讲成人话。日期用 yyyy年m月d日,星期用 aaaa,数字用 #,##0.00,字符串拼接前先套一层 TEXT。记住这三组代码,报表美化基本就不用再靠手工调格式了。

#TEXT函数#日期格式化#自定义格式#Excel技巧

广告

相关推荐