VIP学员从网上看到这张图片,问里面同比那一列怎么做到的?
绿涨红跌,看起来比较别扭,外国的就是这种。条件格式,图标集,三角形就是这种,不过只能完成前半部分,数字还是完成不了。
而中国刚好相反,红涨绿跌。这种其实可以借助自定义单元格格式完全实现。
首先解决符号问题,这个搜狗输入法里面的符号大全就有。
再来看颜色的问题,设置单元格格式,数值里面就有红色的。
再看看自定义格式怎么表示,在[]里面输入具体颜色就行。
依样画葫芦。
[红色]0.0%;[绿色]-0.0%
自定义完就看到正数的变成红色,负数的变成绿色。
再将三角形加进去,自定义完发现三角形没有对齐,其他一切正常。
[红色]▲0.0%;[绿色]▼-0.0%
其实,卢子第一时间也想不起来,不过没关系,这并不妨碍我解决问题。这时,我想起了会计专用格式,就是这种符号左对齐的效果。
老样子,设置单元格为会计专用格式。
再查看自定义代码,很长也很乱,不过没关系,重点看前面的_ ¥* 。也就是说,加了这部分就能左对齐,¥可以换成其他符号。
按照这个思路,将原来的内容自定义为新的代码。
[红色]_ ▲* 0.0%;[绿色]_ ▼* -0.0%
自定义完就看到,效果正是我们需要的。
说到这里,突然想起了TEXT函数,这个函数第2参数变幻莫测,想怎么变就怎么变,很多人都记不住。其实,记不住也没关系,可以先通过自定义单元格格式,然后查看代码,稍作修改就可以。
这里再通过一个案例进行说明,将数字转换成大写。
自定义单元格格式为特殊,中文小写数字。
查看自定义代码。
再将代码复制出来作为TEXT的第2参数即可。
=TEXT(A1,"[DBNum1][$-zh-CN]G/通用格式")
另外,再分享4个TEXT的用法,等你自定义熟练了,就能运用自如。
1.发票号都是8位,从系统导出后前面的0消失,如何补齐?
常规格式发票号前面的0都会消失,只有文本格式情况下的0才不会消失。事先录入的话,可以将整列设置为文本格式。针对已经录入的,可以用TEXT函数来处理。需要多少位,第2参数就写多少个0。
=TEXT(A2,"00000000")
2.将8位数的出生日期转变成以-作为分隔符号的出生日期。
很多人首先想到的是用这样的公式,可惜出错。
这种是针对标准日期才可以这样用的。
8位数字需要用其他方法处理。
0-00-00跟e-mm-dd是两码事,别乱用。
3.标准日期格式转变成年月日星期的格式。
e代表4位的年,m代表月,d代表日,aaaa代表星期几,这些都是固定的,要牢记。
标准日期你想转变成任意一种日期格式都非常方便。比如转换成中英文星期几的简写。
3个a代表中文简写,3个d代表英文简写。
=TEXT(B2,"aaa")
=TEXT(B2,"ddd")
4.将金额大于0的显示赢,小于0的显示亏,0显示平。
对于这种问题,我们首先想到的是IF函数。
=IF(B2>0,"赢",IF(B2=0,"平","亏"))
其实也可以用TEXT函数来实现。
=TEXT(B2,"赢;亏;平")
2个;隔开,用法是:正数的显示值;负数的显示值;零的显示值。
其实最标准的用法是用3个;隔开,俗称三分天下。单元格的内容除了数值还可能是文本。加一个;让文本显示成需要显示的结果。为了方便说明用法,我们将标题的B1也算进去。
@就代表文本显示本身,类似于数值格式中的0。
推荐:高效!Excel自定义单元格格式居然能干出这种事儿!
上文:没想到SUMPRODUCT还能这么用,太赞了!
你一般怎么记自定义格式和TEXT第2参数?
作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)