典型函数应用

编辑
  • 文档创建者:印然
  • 浏览次数:6351次
  • 编辑次数:18次
  • 最近更新:Kevin-s 于 2019-06-18
  • 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时数字有可能出错。


    附件列表


    主题: 报表应用
    标签: 暂无标签 编辑/添加标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]