Powerbi Power BI-DAX查询以删除总和计算中的重复行

Powerbi Power BI-DAX查询以删除总和计算中的重复行,powerbi,dax,powerquery,Powerbi,Dax,Powerquery,我的情况是:SalesValue已输入多个会话,即午餐、早餐、晚餐,这些会话按SessionKey的数字分组。相同的SalesValue根据MenuKey、RawMaterialKey和IngSFKey,在给定的生产计划日期内重复两个或多个会话 我需要在Power BI中使用DAX查询,根据给定日期内特定的MenuKey的ProductionPlanDate和SessionKey删除重复的SalesValue 我附上了SalesValue样本值范围的屏幕截图,其中包含不同会话中相同日期的重复值,

我的情况是:
SalesValue
已输入多个会话,即午餐、早餐、晚餐,这些会话按
SessionKey
的数字分组。相同的
SalesValue
根据
MenuKey
RawMaterialKey
IngSFKey
,在给定的生产计划日期内重复两个或多个会话

我需要在Power BI中使用DAX查询,根据给定日期内特定的
MenuKey
ProductionPlanDate
SessionKey
删除重复的
SalesValue


我附上了
SalesValue
样本值范围的屏幕截图,其中包含不同会话中相同日期的重复值,供您参考。例如,第7行和第14行具有相同的
ProductionPlanDate
SessionKey
MenuKey
,以及
SalesValue
,,因此您有一个带有一个“粒度”的表,并且您希望通过使用列的子集来更改“粒度”。具体来说,您只需要具有不同列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视觉效果都需要“重新布线”才能使用新表
要在电源查询中执行转换,两个选项的步骤如下

  • 转到PowerBI上的编辑查询区域
  • 按住ctrl键并依次单击每列的列标题,选择要创建新粒度的列(即ProductionPlanDate、SessionKey、MenuKey和SalesValue)
  • 右键单击所选列之一的列标题,然后选择“删除重复项”
如果您想要选项B,只需首先使用“Reference”复制现有表,然后执行以下相同操作:

  • 在左侧的“查询”部分找到现有表,右键单击并单击“引用”
  • 将新表重命名为适当的名称
  • 如上所述,将转换步骤应用于新表
  • 单击“关闭并应用”并重新连接使用新表所需的任何现有视觉效果
  • 如果您发现不需要旧表,可以在Power Query中再次右键单击它并取消选中“启用加载”,这样PowerBI就不会再看到它了
您当然可以使用DAX计算表执行此操作,但最好在查询编辑器中执行此操作。你需要用DAX来做吗?