发布:2024/9/25 20:38:22作者:管理员 来源:本站 浏览次数:77
1. Rankx函数
rankx函数为的每一行计值表达式并得到一个值列表,在当前筛选上下文中计值,将得到的结果与列表中的值进行比较,根据排名规则和的设置,返回最终排名
格式:RankX(<table>,<expression>,[<value>,[<order>,[<ties>])
参数 属性 描述
table 表或返回表的表达式,即可以是直接的表,也可是用函数生成的表
expression 聚合表达式,或写好的度量值
value 可选 可以是聚合表达式,也可以是一个直接的数值
order 可选 升降排序,可以是0或1;也可以是asc或desc
ties 可选 处理相同排名的依据,skip(国际排序)代表稀疏排名,下一名的排序等于之前左右排序的数量+1;dense(中国式排序)代表稠密排名,只累加排序,不考虑数量
例子
总金额 = sum('销售表'[销售金额])
排名1 = rankx(all('销售表'),[总金额])
-- if+HASONEVALUE 去除总计
排名2 = if(
HASONEVALUE('销售表'[商品编码]),
RANKX(all('销售表'),[总金额])) -- 去除总计
-- 去除空值的排名
排名3 = if(
and(HASONEVALUE('销售表'[商品编码]),[总金额]>0),
RANKX(
filter(
all('销售表'),[总金额]>0),
[总金额],
,
1)
)
对比结果
例二:级别排名
品种销售排名 = rankx(
filter('案例2','案例2'[品种]=EARLIER('案例2'[品种])),
'案例2'[销售金额])
2. topn函数
返回满足条件的前n行记录
返回的不是值,是前你行的表
格式:topn(n值,表名,[表达式],[顺序可选项])
参数 描述
参数1 需要返回的行数
参数2 用来返回行记录的表表达式
参数3 用来排序的表达式
参数4 排序方式0/false/desc 降序;1/true/asc 升序
例一(新建列)
前2名的销售金额之和 = sumx(TOPN(2,'TOPN','TOPN'[销售金额],0),'TOPN'[销售金额])
例二(新建表)
前2名的销售金额 = TOPN(2,'TOPN','TOPN'[销售金额],0)
例三(度量值)
销售额 = sum('TOPN'[销售金额])
销售量前3名之和 = CALCULATE([销售额],TOPN(3,all('TOPN'),[销售金额],0))
销售量前3名店铺之和 = CALCULATE([销售额],TOPN(3,all('TOPN'[店号]),[销售额],0))
前3名店铺销售对比 = divide([销售量前3名店铺之和],CALCULATE([销售额],all('TOPN'[店号])))
3. ConcatEnatex函数
格式:ConcatEnatex(参数1,参数2,参数3,参数4,参数5)
参数 参数名称 属性 描述
1 table 用于表达式每行计值的表,即对那张表进行排名
2 expression 用于逐行计值的表达式,即显示来自哪里
3 delimiter 可选 连接表达式结果的连接符
4 orderby_expression 可选,可重复 排序使用的表达式,排序
5 order 可选,可重复 排序逻辑:0/false/desc-降序;1/true/asc-升序,
例一
度量值 = CONCATENATEX(values('CONCATENATEX'[人物]),'CONCATENATEX'[人物],",")
例二
-- 方式一
流水 = CONCATENATEX(values('流水'[购物日期]),format('流水'[购物日期],"yyyy/mm/dd"),",")
-- 方式二
流水 = CONCATENATEX(RELATEDTABLE('流水'),format('流水'[购物日期],"yyyy/mm/dd"),",")
© Copyright 2014 - 2024 柏港建站平台 ejk5.com. 渝ICP备16000791号-4