powerbi - Power BI - DAX 查询以删除 SUM 计算中的重复行
问题描述
我的情况是这样的: SalesValue
已经输入了多个会话,即午餐、早餐、晚餐,按SessionKey
数字分组。对于SalesValue
给定的生产计划日期,基于和MenuKey
,有时会重复 2 个或更多会话。RawMaterialKey
IngSFKey
我需要在 Power BI 中使用 DAX 查询来删除SalesValue
基于给定日期ProductionPlanDate
和SessionKey
特定日期的重复项MenuKey
。
我附上了SalesValue
包含不同会话中同一日期的重复值的示例值范围的屏幕截图,供您参考。例如,第 7 行和第 14 行具有相同ProductionPlanDate
的 、SessionKey
、MenuKey
和SalesValue
。
解决方案
因此,您有一个带有一个“Grain”的表,并且您想通过使用列的子集来更改“Grain”。具体来说,您只需要具有不同列 ProductionPlanDate、SessionKey、MenuKey 和 SalesValue 的行
要在 DAX 查询中执行此操作,您将使用
evaluate
summarize
( 'table name'
, 'table name'[ProductionPlanDate]
, 'table name'[SessionKey]
, 'table name'[MenuKey]
, 'table name'[SalesValue]
)
您可以提供它来创建计算表或将其提供给需要使用此粗粒度数据集的每个度量。
但是,看起来您在 Power BI 中,执行此操作的更合适的位置是使用 Power Query(通过 Power BI 的“编辑查询”部分)创建更粗粒度的表。
这比在 DAX 中执行此操作要好,因为 DAX 更适合分析,其中 Power Query 适合数据转换 - 并且您想要进行数据转换。
您可以将您现在拥有的表格与新修改的表格一起保留或相应地替换它。
- 选项 A 只会将您的传入表更改为具有新的粗粒度。
- 选项 B 将保留您的原始表格并在其旁边放置新的粒状表格。请注意,这意味着您创建的任何 Power BI 视觉对象都需要“重新连接”才能使用新表。
要在 Power Query 中进行转换,这两个选项的步骤是
- 转到 PowerBI 上的编辑查询区域
- 通过按住 ctrl 并依次单击每列的列标题来选择要创建新 Grain 的列(即 ProductionPlanDate、SessionKey、MenuKey 和 SalesValue)。
- 右键单击所选列之一的列标题,然后选择“删除重复项”
如果您想要选项 B,只需先使用“参考”复制现有表,然后执行以下相同操作:
- 在左侧查询部分找到您现有的表,单击并单击参考
- 将新表重命名为适当的名称
- 如上所述将转换步骤应用于新表
- 单击关闭并应用并重新连接您需要使用新表的任何现有视觉对象
- 如果您发现不需要旧表,您可以在 Power Query 中再次单击它并取消选中“启用加载”,这样 PowerBI 就不会再看到它了。
推荐阅读
- php - phpmailer 去垃圾邮件
- python-3.x - Python:OSError:[Errno -9985] 在 Raspberry PI 3B+ 上使用 Snowboy 和 SpeechRecognition 时设备不可用
- linux - 如何删除仅在包含某些字符串的行之后加倍的行 - linux / bash
- python - Python / Pandas:如果非空或大于零,则划分数据框列
- electron - 松弛样式标题栏
- ios - 删除 pod 文件夹后出现“缺少模块映射”错误 Xcode 11 Cocoapods 错误
- flutter - Http请求发送了一个空的body
- mysql - MySQL release_lock() 是否阻塞?
- javascript - 从数组中,如何使用“for ...”从每个对象中提取值
- javascript - 为什么我没有收到(网络)请求时显示的相应错误消息?