看板幕后功臣:被严重低估的TEXT函数
一、手工格式化让我想砸键盘
每天早上9点,你会收到一堆报表。
客户名称要对齐,日期要改成"2024年1月5日"这种格式,金额要千分位分隔,百分比要保留两位小数。
你告诉我,这不就是右键→设置单元格格式→数字→自定义→yyyy"年"m"月"d"日"那点破事吗?
是。
但当你有300行数据要这样搞,当领导说"把上个月的所有报表都重做一遍",当你发现手动设置的格式在复制粘贴后全部tm失效的时候——
你还会觉得这是"那点破事"吗?
TEXT函数,今天的主角,一个被90%的人忽略的函数,能让你彻底告别这种傻逼工作。
二、TEXT函数是个什么东西
=TEXT(值, 格式)
就这?
对,就这。
第一个参数是要格式化的值,第二个参数是格式代码。
你右键设置单元格格式做的事情,这函数一键搞定,而且可复制、可自动化、可嵌套。
举几个例子:
=TEXT(TODAY(), "yyyy年mm月dd日") // 输出:2024年01月05日
=TEXT(12345.678, "#,##0.00") // 输出:12,345.68
=TEXT(0.876, "0.0%") // 输出:87.6%
看到没,格式代码跟你在自定义格式里写的一模一样。
这意味着什么?
意味着你不需要学新东西,只需要把右键菜单里的代码复制过来。
三、日期格式化:原来可以这么玩
1. 基础操作
=TEXT(A1, "yyyy年mm月dd日") // 2024-01-05 → 2024年01月05日
=TEXT(A1, "aaaa") // 2024-01-05 → 星期五
=TEXT(A1, "mmm") // 2024-01-05 → Jan
2. 实战场景:动态看板日期标题
我之前做过一个销售看板,领导要求标题显示"2024年1月第2周"。
手写?
下周就废。
用TEXT:
="2024年1月第"&WEEKNUM(A1)&"周"
等等,这个输出是"2024年1月第2周",但如果跨月了呢?
正确姿势:
=TEXT(A1, "yyyy年m月第")&WEEKNUM(A1)&"周"
坑点预警:WEEKNUM的参数默认是周日算第一天,有时候会差一周。
补救:
=WEEKNUM(A1, 2) // 参数2表示周一算第一天
3. 相对日期:昨天、明天、上个月
=TEXT(TODAY()-1, "yyyy-mm-dd") // 昨天
=TEXT(EOMONTH(TODAY(), -1)+1, "yyyy-mm-dd") // 上个月第一天
=TEXT(EOMONTH(TODAY(), -1), "yyyy-mm-dd") // 上个月最后一天
EOMONTH是个好东西,以后会专门讲。
今天先记住:配合TEXT,它是日期计算神器。
四、数字格式化:千分位、百分比、文本拼接
1. 基础操作
=TEXT(1234567.89, "#,##0.00") // 输出:1,234,567.89
=TEXT(1234.5, "¥#,##0.00") // 输出:¥1,234.50
=TEXT(0.8765, "0.0%") // 输出:87.7%
2. 文本拼接:最容易被忽略的用法
很多人喜欢用&拼接字符串,然后发现数字格式全tm没了。
比如:
="销售金额:"&A1 // 如果A1是1234.5,输出:销售金额:1234.5
用TEXT:
="销售金额:"&TEXT(A1, "#,##0.00")&"元" // 输出:销售金额:1,234.50元
3. 条件格式化的替代方案
你还在用条件格式→新建规则→自定义公式→设置格式→确定?
来,看这个:
=TEXT(A1, "[>1000]0; [>100]0;0")
简单解释:大于1000显示整数,大于100显示整数,否则显示原始值。
等等,这个用法其实有点反直觉,我换个更实用的例子:
=TEXT(A1, "0.00; -0.00; 0") // 正数显示两位小数,负数显示两位小数(带负号),零显示为0
坑点预警:TEXT返回的是文本,不是数字。
如果你需要继续计算,别用TEXT,用TEXTPLAYER或者先VALUE转换。
五、进阶玩法:TEXT + 其他函数
1. TEXT + IF:条件判断
=IF(A1>1000, TEXT(A1, "#,##0.00"), TEXT(A1, "0"))
超过1000的显示千分位,其他的显示整数。
2. TEXT + CHOOSE + WEEKDAY:周报自动换标题
=CHOOSE(WEEKDAY(TODAY()), "周一要加油", "周二别熬夜", "周三撑过去", "周四快了", "周五万岁", "周六浪起来", "周日待着")
配合TEXT显示日期:
=TEXT(TODAY(), "yyyy-mm-dd") & " " & CHOOSE(WEEKDAY(TODAY()), "周一要加油", "周二别熬夜", "周三撑过去", "周四快了", "周五万岁", "周六浪起来", "周日待着")
3. TEXT + SUBSTITUTE:脱敏处理
手机号中间四位变成星号:
=SUBSTITUTE(A1, MID(A1, 4, 4), "****")
配合TEXT?没什么配合的,但这招好用,一起放了。
4. TEXT + REPT:进度条
=REPT("█", A1/10) & REPT("░", 10-A1/10)
A1是0-100的数值,显示文本版进度条。
配合TEXT格式化数值:
=TEXT(A1, "0%") & " " & REPT("█", A1/5) & REPT("░", 20-A1/5)
这在需要文字报表的场景下贼鸡儿好用。
六、总结:为什么我说TEXT被严重低估
- 它把右键菜单变成了公式
- 它支持复制粘贴,不会像格式刷一样失效
- 它可以自动化,可以嵌套,可以配合VBA和Python
- 它比条件格式化更灵活,比VBA更轻量
你还在一个个单元格点右键设置格式?
你还在手写"2024年1月5日"?
你还在为跨表格同步格式抓狂?
用TEXT,一个公式解决。
现在我的报表都是自动生成的。
每天早上到公司,刷新数据,导出,报送。
全程不超过30秒。
如果你也被各种Excel/报表折磨,想早点下班又不会写自动化工具,欢迎关注私信聊聊烦恼,理顺逻辑写个脚本就是顺手的事。