首发于power系列

Power Pivot 销售订单按 sku 订单类型特殊分类及占比相关

焦棚子的文章目录

请点击下载附件

一、背景

经过了一个双十一后,天天面对的都是订单。于是有了关于销售订单按sku类型分类的需求。

说明:(暂且不讨论这样分类是否合理,需求方确实这样的)
1、sku字符长度小于等于8位为普通订单sku

2、sku字符长度大于8,且开头不是e字母为商家订单sku

3、sku开头是e字母为特殊订单sku

4、订单中只要包含普通订单sku的订单即为普通订单,如:订单100001

5、订单中不包含普通订单sku且包含商家订单sku的订单即为商家订单,如:订单100006

6、订单中只包含特殊订单sku的订单即为特殊订单,如:订单100007

要求:

1、按照日期维度,透视表展示总订单量,普通订单,商家订单,特殊订单订单数,及占比当日订单总是百分比。

结果表

二、数据源

数据源:订单表

偷懒就不建立日期表了。

输出

按照需求输出透视表


三、上度量值

总订单量

总订单量:=DISTINCTCOUNT('订单表'[订单号])

普通订单

普通订单:=
VAR T1=SUMMARIZE (
    '订单表',
    '订单表'[订单号],
    "S1", SUMX ( ADDCOLUMNS ( '订单表', "S1", IF ( LEN ( '订单表'[SKU] ) <= 8, 1, 0 ) ), [S1] ),
    "S2", SUMX (ADDCOLUMNS ('订单表',"S2", IF ( LEN ( '订单表'[SKU] ) > 8 && LEFT ( '订单表'[SKU], 1 )<>"e", 1, 0 )),[S2]),
    "S3", SUMX (ADDCOLUMNS ( '订单表', "S3", IF ( LEFT ( '订单表'[SKU], 1 )="e" , 1, 0 ) ),[S3])
    )
VAR T2=FILTER(T1,[S1]>0)
RETURN
CALCULATE('订单表'[总订单量],T2)

普通订单%

普通订单%:=DIVIDE('订单表'[普通订单],'订单表'[总订单量])

商家订单

商家订单:=
VAR T1=SUMMARIZE (
    '订单表',
    '订单表'[订单号],
    "S1", SUMX ( ADDCOLUMNS ( '订单表', "S1", IF ( LEN ( '订单表'[SKU] ) <= 8, 1, 0 ) ), [S1] ),
    "S2", SUMX (ADDCOLUMNS ('订单表',"S2", IF ( LEN ( '订单表'[SKU] ) > 8 && LEFT ( '订单表'[SKU], 1 )<>"e", 1, 0 )),[S2]),
    "S3", SUMX (ADDCOLUMNS ( '订单表', "S3", IF ( LEFT ( '订单表'[SKU], 1 )="e" , 1, 0 ) ),[S3])
    )
VAR T3=FILTER(T1,[S1]=0&&[S2]>0)
RETURN
CALCULATE('订单表'[总订单量],T3)

商家订单%

商家订单%:=DIVIDE('订单表'[商家订单],'订单表'[总订单量])

特殊订单

特殊订单:=
VAR T1=SUMMARIZE (
    '订单表',
    '订单表'[订单号],
    "S1", SUMX ( ADDCOLUMNS ( '订单表', "S1", IF ( LEN ( '订单表'[SKU] ) <= 8, 1, 0 ) ), [S1] ),
    "S2", SUMX (ADDCOLUMNS ('订单表',"S2", IF ( LEN ( '订单表'[SKU] ) > 8 && LEFT ( '订单表'[SKU], 1 )<>"e", 1, 0 )),[S2]),
    "S3", SUMX (ADDCOLUMNS ( '订单表', "S3", IF ( LEFT ( '订单表'[SKU], 1 )="e" , 1, 0 ) ),[S3])
    )
VAR T4=FILTER(T1,[S1]=0&&[S2]=0&&[S3]>0)
RETURN
CALCULATE('订单表'[总订单量],T4)

特殊订单%

特殊订单%:=DIVIDE('订单表'[特殊订单],'订单表'[总订单量])


四、总结

1、如上需求用sql很好写;

2、主要利用ADDCOLUMNS,创建新的条件列,SUMX再聚合;

3、根据说明的4、5、6三点得到,T2,T3,T4的筛选上下文;

4、给出T1-T4的过程截图帮助理解,注意观察S1,S2,S3和说明4、5、6的对应关系。

T1

T1

T2

T2

T3

T3

T4

T4



by 焦棚子


焦棚子的文章目录

编辑于 2020-03-01 20:12