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

时间:2018-07-18 04:23:25

标签: powerbi dax powerquery

Sales value - duplicate removal

我的情况是这样的:SalesValue已输入多个会话,即午餐,早餐和晚餐,按编号SessionKey分组。相同的SalesValue有时会根据MenuKeyRawMaterialKeyIngSFKey在给定的生产计划日期重复2个或更多个会话。

我需要在Power BI中使用DAX查询,以在给定日期基于SalesValueProductionPlanDate的特定SessionKey删除重复的MenuKey

我附上了示例值范围SalesValue的屏幕截图,其中包含不同会话中同一日期的重复值,以供您参考。例如,第7行和第14行具有相同的ProductionPlanDateSessionKeyMenuKeySalesValue

1 个答案:

答案 0 :(得分:0)

因此,您有一个带有一个“谷物”的表,并且您想通过使用列的子集来更改“谷物”。具体来说,您只需要具有不同列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就不会再看到它了。