超市销售数据分析统计(FineBI6.0 def函数实操)

目录

前言

一、案例数据来源

二、函数释义

三、新建指标

1.不同类别产品的销售额日环期值

2.不同类别产品的销售额日累积值

3.不同类别产品的销售额月合计值、年合计值、月合计值环期值、月合计值同期值 

4.不同类别产品的年初销售额合计值、年末销售额合计值

5. 每日销售额类别均值

​6. 每日销售额总计

总结


前言

       在进行数据分析时,经常遇到源数据需要根据业务场景新建指标的情况。FineBI虽然提供了图表横纵轴维度上的快速计算,比如同比/环比、占比、组内占比、排名、组内排名等,但是在仪表板中使用筛选组件进行数据筛选时,指标不能正常显示。

        为保证指标不受筛选条件或联动影响,本文从实际案例出发,参考官方指导文档使用FineBI 6.0的def函数进行新建指标的实操练习,就实操的过程进行了记录整理。


一、案例数据来源

超市销售数据

二、函数释义

        1.DEF定义静态指标

        def(指标, [维度1,维度2,...], [过滤条件1, 过滤条件2,...])

        满足过滤条件1、2的明细数据按照【维度1、维度2】对指标进行聚合运算。

        示例: def(sum_agg(购买数量),[产品],[是否会员 = "是" ]):求会员在产品分组下的购买数量。 第二、三个参数可以缺省。

        2. DATEDELTA

        DATEDELTA(date,deltadays):返回一个日期date后deltadays的日期。

        参数说明

        date除了支持文本、日期类型,deltaDays可以为正值,负值,零。

        • 示例

        DATEDELTA("2008-08-08",-10)等于2008-07-29。

        DATEDELTA("2008-08-08",10)等于2008-08-18。

        3. EARLIER

        取当前行数据某一属性的作用。输出上一个视图的计算值。只能用于def/def_add/def_sub中,一般用于行间过滤计算。 earlier的参数为单个字段,不支持常量作为参数。

        示例:       

        def(count_agg(购买数量)+1,[购买数量],[购买数量 < earlier(购买数量)]),得到计算购买数量的排名。

        def(sum_agg(购买数量),[序号],[序号 <= earlier(序号)]),得到按照序号大小计算的购买数量的累计值。

        4. SUM_AGG

        SUM_AGG(array):根据当前分析维度,返回指标字段的汇总求和值,生成结果为一数据列,行数与当前分析维度行数一致。 

        参数说明: array必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。

        示例 :用户横轴为维度字段'日'时,纵轴的计算字段SUM_AGG(销量)返回的值为每日的汇总销量。 当用户横轴为维度字段'月'时,SUM_AGG(销量)返回的值为每月的汇总销量。

        5. COUNTD_AGG

        COUNTD_AGG(array):根据当前分析维度,返回某字段的去重计数,生成结果为一数据列,行数与当前分析维度行数一致。

        参数说明:array必须为非聚合函数公式返回的结果,可以是某指标字段、维度或指标字段与普通公式的计算结果。

        示例 :用户横轴为维度字段'日'时,纵轴的计算字段COUNTD_AGG(销量)返回的值为每日的销量的去重个数。 当用户横轴为维度字段'月'时,COUNTD_AGG(销量)返回的值为每月的销量的去重个数。

三、新建指标

针对超市销售数据中不同类别产品销售额进行多个指标的新建,原表先提取订单日期、类别、销售额三个字段;

1.不同类别产品的销售额日环期值

  以订单日期和类别为维度,对相同类别的销售额做一个日环期汇总                
   DEF(SUM_AGG(销售额),[订单日期,类别],[DATEDELTA(订单日期,1)=EARLIER(订单日期),类别=EARLIER(类别)])
参数解释:
1.统计维度为订单日期和类别   
  [订单日期,类别]
2.当前行的订单日期=订单日期+1                                                                
  DATEDELTA(订单日期,1)=EARLIER(订单日期)
3.当前行的类别=类别     
  类别=EARLIER(类别)

2.不同类别产品的销售额日累积值

  以订单日期和类别为维度,对相同类别的销售额做一个日累计                 
  DEF(SUM_AGG(销售额),[订单日期,类别],[订单日期<=EARLIER(订单日期),类别=EARLIER(类别)])
参数解释:
1.统计维度为订单日期和类别  
 [订单日期,类别]
2.当前行的订单日期=订单日期+1 
  DATEDELTA(订单日期,1)=EARLIER(订单日期)
3.当前行的类别=类别  类别=EARLIER(类别) 

 3.不同类别产品的销售额月合计值、年合计值、月合计值环期值、月合计值同期值 

1.月合计值:
DEF(SUM_AGG(销售额),[订单日期,类别],[年份=EARLIER(年份),月份=EARLIER(月份),类别=EARLIER(类别)])
2.年合计值:
DEF(SUM_AGG(销售额),[订单日期,类别],[年份=EARLIER(年份),类别=EARLIER(类别)])
3.月合计值环期值	
DEF(SUM_AGG(销售额),[订单日期,类别],[年份=EARLIER(年份),月份+1=EARLIER(月份),类别=EARLIER(类别)])
4.月合计值同期值	
DEF(SUM_AGG(销售额),[订单日期,类别],[年份+1=EARLIER(年份),月份=EARLIER(月份),类别=EARLIER(类别)])


参数解释:
1.条件为年份为当前行的年份、月份、类别:
年份=EARLIER(年份),月份=EARLIER(月份),类别=EARLIER(类别)]
2.条件为年份为当前行的年份、当前行月份的前一月份、当前行的类别:
年份=EARLIER(年份),月份+1=EARLIER(月份),类别=EARLIER(类别)]

 

  4.不同类别产品的年初销售额合计值、年末销售额合计值

以类别和年份为分组统计不同分类当年的年初销售额(上年末销售额)              
DEF(SUM_AGG(销售额),[类别,年份],[年份+1=EARLIER(年份),月份=12,DAY(订单日期)=31,类别=EARLIER(类别)])

参数解释:
1.条件为年份+1等于当前行的年份,即当前行年份的上一个年份,月份为年末月份即12月,日为年末一天即31号
年份+1=EARLIER(年份),月份=12,DAY(订单日期)=31
2.条件为类别等于当前行的类别
 类别=EARLIER(类别) 

本操作取的2013.12.31当天的销售额为年初销售额,也可以变化参数取2014.1.1,根据场景自定义即可。

 5. 每日销售额类别均值

以订单日期为分组汇总销售额后按每日类别去重后数量求平均值               
DEF(SUM_AGG(销售额),[订单日期])/DEF(COUNTD_AGG(类别),[订单日期])
参数解释:
每日订单的类别
DEF(COUNTD_AGG(类别),[订单日期]) 

 6. 每日销售额总计


总结

本文简单介绍了def函数在数据处理中新建指标的使用。

参考文档:解决数据分析新建指标难题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值