8.6 PowerBI系列之DAX函数专题-非日期类型的累计聚合

需求

需求1:

需求2:

实现

1.需求1实现:

(1)在power query中添加列-添加索引列;

(2)根据索引列进行累加计算。

cpp 复制代码
度量值 累计聚合销售额 = 
var current_pro_type = selectedvalue('product type'[index])
return calculate(sum(order_2[订单金额],'product type'[index]<=current_po_type,all(order_2))

2.需求2实现:

(1)在product表中添加按照产品名称加总的金额列,命名为"amt";

(2)计算位次

1)按照product表里的"amt"列计算按照销售金额排名的位次度量值 cnt大于等于current(有多少产品的销售金额大于当前商品);

2)按照当前筛选上下文计算位次度量值 cnt大于等于current2;

(3)按照位次计算累计销售额。
方式1:

cpp 复制代码
product = addcolumns(values(order_2[产品名称]),"amt",[total amount])
cpp 复制代码
度量值 cnt大于等于current = 
var v_current_amt=[total amount]
return
calculate(countrows('product'),filter('product','product'[amt]>= v_current_amt)) //筛选出对应物理表中大于等于当前行次的记录,并计数,此时,外部筛选条件只传递给了视觉对象,未传递给物理表

注意,上述实现方式在创建该度量值时使用了实现创建好的产品表,由于该表的上下文是创建时的上下文,即计算销售额排名是以原表为基础,而非外部筛选器筛选过的表为基础,因此在存在其他外部筛选器的情况下,这种无法合并外部上下文的特性会导致度量值的计算错误。如下图

方式2:

cpp 复制代码
度量值 cnt大于等于current2 = 
var v_product_table =  //内存中生成一个包含所有产品名称及销售金额的表,而不是提前生成一个物理表
addcolumns(calculatetable(values(order_2[产品名称]),
											all(order_2[产品名称]) // 首先移除原表产品名称列外部筛选器
											),
					"amt2",
					[total amount]
					)
var v_current_amt = [total amount]
return
calculate(countrows(values(order_2[产品名称])), //calculate 会传入计算时的外部筛选上下文,影响到values中的计算结果
				filter(v_product_table,[amt2] >= v_current_amt) //按照目前的上下文,筛选出变量表中金额大于等于当前行的记录
				)
cpp 复制代码
Accumualte amt2 = 
var v_product_table = addcolumns(
									calculatetable(
									values(order_2[产品名称],removefilters(order_2[产品名称])
									),
		"amt2",
[total amount])
var v_current_amt = [Total Amount]
return calculate([Total Amount],filter(v_product_table,[amt2] >= v_current_amt)) //外部筛选条件传递给变量表
cpp 复制代码
Accumulate Percent 2=
var v_totale_amt = calculate([Total Amount], Allselected(order_2))
return divide([accumulate amt 2],v_total_amt)
相关推荐
风哥2号3 小时前
数据库教程FGMT27‑MySQL数据库基础知识与体系架构
数据库·mysql
YangYang9YangYan4 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
西安栈上月明软件科技5 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构
anxiao_m5 小时前
跨云跨机房大数据迁移怎么选?不同场景工具适配指南
数据库·云启快传
风哥2号7 小时前
数据库教程FGMT43‑MySQL性能分析与优化调整
数据库·mysql
随身数智备忘录7 小时前
财务数据分析如何与业务场景结合?财务数据分析如何从数出有据到数出有用?
数据库
这个DBA有点耶9 小时前
数据库教程:从零基础到实战的完整学习路径(2026版)
数据库·程序员·代码规范
forestsea9 小时前
从零构建 Java 智能体 RAG 系统:Milvus 向量数据库实战指南
java·数据库·milvus
probex_10 小时前
从 ByConity 到 VictoriaMetrics:一次指标数据迁移引发的四种存储对比
数据库
Patrick在香港10 小时前
Python 审计香港开放数据目录:两个端点差 10 倍,只有 9.3% 的资源标了「最后修改时间」
开发语言·数据库·python·数据分析·api·数据治理·开放数据