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,否则会冒出一长串小数,或者被写成科学计数法。
三个必须提前知道的坑
- TEXT 的结果是文本,不是数字。 用
SUM求和会得到 0,用VLOOKUP去匹配原始数字也会全部返回#N/A。建议在最后一步才做格式化,或者用VALUE、双负号--把它转回数值。 - 格式代码受系统区域设置影响。 中文版里
aaaa输出「星期三」,英文版里aaaa等同于dddd,输出 Wednesday。把文件发给海外同事前最好核一遍。 - TEXT 生成的内容不会自动刷新。 用
TODAY()配合 TEXT 做的报表标题只在重新计算时更新,如果你需要它永远跟着当天变动,用单元格自定义格式更稳妥。
小结
一句话记住 TEXT 的定位:它是「显示层」的函数,负责把数字讲成人话。日期用 yyyy年m月d日,星期用 aaaa,数字用 #,##0.00,字符串拼接前先套一层 TEXT。记住这三组代码,报表美化基本就不用再靠手工调格式了。
广告