下班前,领导走过来拍了拍你的肩:"把部门所有人的入职日期和工资明细整理出来,下班前发我。"
你打开人事系统导出的Excel,信心满满——结果一看傻眼了:入职日期列全是43567、45659这种看不懂的数字,工资列12876543连个逗号都没有,列宽一调还变成了######……
你开始手动修改格式:右键设置单元格格式,日期改成yyyy-mm-dd,数字加上千分位……改了20行后抬头一看,还有300行。心态崩了。
其实,Excel里有一个被严重低估的函数——TEXT函数,3秒写好格式代码,整列数据一键格式化,从此告别手动调格式。今天我们就来彻底搞懂它。
很多人以为Excel的"格式"就是右键设置单元格格式。但问题是:设置单元格格式只是改"显示",数据本身没变。你把一个日期改成yyyy-mm-dd格式,复制到别处、发给别人,瞬间还原成43567。
TEXT函数不一样——它把数值真正转成你想要的文本格式,复制到哪里都不会变形。公式超级简单:
=TEXT(单元格, "格式代码")
记住这句话就够了。下面我们用4个实战场景来吃透它。
从系统导出的数据,日期列永远是43567这种"序列号"。用TEXT函数,一个公式搞定:
三个最常用格式代码:
yyyy-mm-dd → 标准日期格式,所有报表通用,导出给任何系统都认识
yyyy年mm月dd日 → 中文日期,正式文件、合同、通知常用
mm/dd → 简写月日,图表坐标轴标签不占空间
关键记忆:yyyy=4位年,mm=两位月,dd=两位日。 如果你只要年份,写 =TEXT(A2,"yyyy") 就行。 注意格式代码必须用英文双引号包起来,不能用中文引号! 工资表里12,876,543和12876543的差别,就是多读三遍vs一眼看清的差距。TEXT函数同样能美化数字:
#,##0 → 千分位分隔,财务报表、工资表必备
0.0% → 百分比保留一位小数,完成率、增长率一目了然
00000 → 固定5位补零,工号、编号统一长度
进阶用法:像 "人民币"#,##0.00 这样在前面加文字,结果就是"人民币12,876,543.00"。把格式代码想象成模板,文字部分直接塞进去就行了。 做考勤表、排班表的时候,每行日期旁边都要加上星期几。手动输入?一个月30天,一个个敲"星期一、星期二...",手酸脑胀。
用TEXT函数,一行公式拖到底:
=TEXT(A2,"aaaa") → 星期一
=TEXT(A2,"aaa") → 一
=TEXT(A2,"ddd") → Mon
做通讯录、员工名单时,手机号完整暴露是个隐患。用TEXT函数一行公式脱敏:
=TEXT(A2,"000-0000-0000") → 138-1234-5678(加上分隔符,可读性更好)
=TEXT(A2,"138****5678") → 直接替换中间四位为星号,彻底脱敏
x 重要提醒:TEXT函数返回的是文本格式,不能直接参与加减乘除计算。如果需要计算,保留一列原始数值,另一列用TEXT格式化显示。两条列互不干扰,最稳妥。
一张图看明白:日期从43567变成2026-03-15,金额从12876543变成12,876,543,完成率从0.8725变成87.3%,排班表从手动敲变成自动显示。六个场景,六行公式,全部搞定。
建议把这张格式代码速查表右键保存到手机里,下次写格式代码时直接翻出来抄。
用好TEXT函数,你的Excel表格从"系统导出的半成品"直接变成"发出去不用解释的成品"。关键是——写一次公式,整列生效,复制到任何地方格式都不会丢。