历史版本15 :日期函数应用 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 小数显示成千分位样式编辑

单元格属性>样式>格式里面,只有百分位的数据显示格式,没有千分位的,那么如果要将小数显示为千分位,则就需要通过公示来解决了。
千分位的数据时由一个千分位符号和小数数据乘以1000组成的,那么就可以在公式形态中将这个千分位符号和扩大1000倍之后的数据进行组合,如下:
选择单元格属性表>形态>公式形态,公式为:$$$*1000+"‰",$$$表示获取当前单元格的值。

2. 显示当前季度数据编辑

在进行参数过滤的时候,希望只显示当前月份所在季度的数据。
在过滤界面选择公式,写入公式:=roundup(month(today())/3)即可只显示当前月份所在季度的数据。
注:roundup()函数的意思是向上取整。

3. 获取月份或日期的时候显示2位编辑

在使用公式month()或者是day()的时候,如果月份或日期是一位数,则显示出来的也只有一位数,比如说1月9号,获取月份时显示的是1,而不是01,获取日期时,显示的是9,而不是09,如果需要获取到01或者是09,这个该如何通过公式实现呢?
3.1 公式实现
月份公式:=right(concatenate('0',MONTH(today())),2),
日期公式:=right(concatenate('0',day(today())),2)
公式理解:通过concatenate将获取到的月份前面拼接一个0,比如说11月,则显示011,如果是2月,则显示02,然后通过right方法,获取右边的2位数字,比如说2月,截取2位数字,则为02,比如12月,截取右边的两位,则为12。
或者还可以通过format来格式化字符串,如下:
月份公式:= FORMAT(MONTH(TODAY()), "00")
日期公式:= FORMAT(day(TODAY()), "00")
3.2 自定义函数实现
如果觉得上面写的公式太麻烦,则可以通过自定义函数实现,代码如下:
package com.fr.function; import com.fr.script.AbstractFunction; public class Add0 extends AbstractFunction { public Object run(Object[] args) { String result = args[0].toString(); if(result.length() == 1) result = '0' + result; return result; } }

自定义函数的详细定义步骤请参照自定义函数

4. 利用日期函数生成唯一编号编辑

通过uuid()函数可以生成一串随机字符串,但没有意义。有些情况下需要生成带【年月日时分秒】这样的字符串,类似china20170726144516这样的编号,可以直接利用时间公式字符串拼接函数来实现。

在单元格中写入公式:

"china" + FORMAT(now(), "yyyMMddhhmmss")

结果为:china20180101124516,即字符串“china”加当前的【年月日时分秒】。

注:一般编号非必要的情况下,不要全用数字,因为在导入导出到EXCEL时数字有可能出错。