如何解决Dax Measure Count 每个订单的最后一个条目
我有两个表: 销售标题
Order Nr Date Value
258 01.01.2021 50
98 01.01.2021 40
此表包含每个订单的一些基本信息。 然后我有一个交易表,每个订单的路由:
Order Nr Step Quantity
258 01 50
258 02 50
258 03 50
258 04 50
98 01 50
现在我想得到一个矩阵,显示每个步骤有多少订单作为相应步骤的最后一个条目。类似的东西:
Order 01 02 03 04
258 1
98 1
Total 1 0 0 1
你会怎么做?
这是一个示例文件: https://www.file-upload.net/download-14585836/LastEntry.pbix.html
解决方法
要获得所需的矩阵,您需要执行以下步骤:
-
创建一个计算列,返回最高步数。对于给定的订单号。
Path Length = VAR order_no = 'Table'[order no] RETURN MAXX ( FILTER ( ALL ( 'Table' ),'Table'[order no] = order_no ),'Table'[Step] )
-
创建另一个计算列,当路径长度与给定订单号的最高步长值相同时返回 1。否则,它返回一个空值。
Comp = IF ( 'Table'[Step] = 'Table'[Path Length],1,BLANK () )
现在创建一个矩阵,其中order no as Rows,Step as Columns和measure Comp as Values。 >
-
右键单击列中的步骤并启用显示没有数据的项目选项。你应该得到想要的结果。
作为替代解决方案,这是一个纯 DAX 解决方案。
步骤:
- 找出每个订单的最大步长
- 将当前过滤器上下文中的步骤存储在
with c as( select *,Row_Number() over(partition by customer_number order by id) rn from customer ),ca as ( select *,Row_Number() over(partition by company order by created_at) rn from customer_address ) select <columns> from c join ca on c.company=ca.company where c.rn=1 and ca.rn=1 and c.customer_number='C00123456'
中。 - 如果上面的两个相同,则取 1,否则取 0。
SelectedStep
输出
表格
Order Nr | 步骤 | 数量 |
---|---|---|
258 | 1 | 50 |
258 | 2 | 50 |
258 | 3 | 50 |
258 | 4 | 50 |
98 | 1 | 50 |
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。