
1. 日期
需要显示当前日期2023-5-30,可以直接=TODAY(),EXCEL自动配了日期格式。
进一步,需要显示“今天是****-**-**”,简单:="今天是"&TODAY()。结果发现显示的却是“今天是45076”,以为是不是单元格格式变了,一看还是“日期”。这说明涉及数字的公式(如日期等),一旦连着其他字符,就打回原形了。这就需要我们加以控制。
以前我们说过,通过函数公式控制显示样式可以用TEXT函数,效果为“今天是2023-5-30”:
="今天是"&TEXT(TODAY(),"e-m-d")
也可以方便的改为这样的效果:“今天是2023年5月30日,星期二”
="今天是"&TEXT(TODAY(),"e年m月d日")&","&TEXT(TODAY(),"aaaa")
//"e-m-d"里的e指“年”,可以理解为=yyyy
2. 小数位数
一笔订单的金额=单价×数量,其结果是26815.36元,可以通过单元格格式来控制小数位数的显示,但需要引用该数字并仅保留到个位数的时候,却不能直接引用,否则有几位小数都会显示出来。可以用ROUND等函数来截取小数。
="该订单合计金额为"&ROUND(C9,0)&"元"
02 指定数字位数显示
1. 数字左侧补0
序号1、2、3……100,数字位数从1到3,不美观,需要统一显示为3位,位数不足的,前面加0。
解决方案1:设置单元格格式
先输入序号(可借助行号ROW(A1)来下拉快速得到序列),再设置单元格格式——“数字”——“自定义”——类型:“000”。
解决方案2:函数直接控制
A2=TEXT(ROW(A1),"000"),下拉复制公式即可。
2. 数字右侧补0
已知有2-6位的几个数字,现在要使其全部变成6位数。
解决方案1:直接补——缺n个0补n个0
缺几个0可通过6-LEN(A2)计算得到,再利用REPT函数,重复输出几个0。如27是2位,6-2=4,那就在27后面重复输出4个0,得到270000。
公式:=A2&REPT("0",6-LEN(A2))
解决方案2:乘法——缺n个0就乘以10的n次方
缺n个0,就将n作为10的指数进行计算,其结果来乘以原来的数。如27是2位,6-2=4,10的4次方是10000,再乘以27得到270000。
公式:=A2*10^(6-LEN(A2))
03 获取一组数字循环显示
20个同事参加活动,需要分4个组,现在要求每个人报数1-5,同号的人分到一个组。表里的操作就是要输出1-5的循环显示。
一般在EXCEL里出现“循环”诉求,会考虑MOD函数,就是求余函数。简单的例子:MOD(4,2)=0,MOD(5,2)=1
利用这个原理,要得到1-5重复列,可以使用
=MOD(ROW(A1)-1,5)+1
总结一下:循环重复1-N的公式=MOD(ROW(A1)-1,N)+1。
以上是在列中循环重复,想要得到循环重复的行,将ROW改成COLUMN即可:=MOD(COLUMN(A1)-1,N)+1
