【问题标题】:Multiple Sumifs excel into DAX多个 Sumif 在 DAX 中表现出色
【发布时间】:2018-11-09 09:49:18
【问题描述】:

我目前正在使用 Power BI,因为我的组织正在转向它以获得更好的视觉效果,但他们应该提到 DAX 的复杂性 :)

我在一个 Excel 文件中有多个 sumif,无论如何我都无法使用 DAX 转换为 Power BI

这是我在 Excel 中根据另一张表中的原始数据制作的表格:

这是单元格中的代码:

红色箭头代码:

=IFERROR((SUMIFS(ID_600!$E:$E,ID_600!$D:$D,"sick hours paid",ID_600!$A:$A,K$18)+SUMIFS(ID_600!$E:$E,ID_600!$D:$D,"sick hours unpaid",ID_600!$A:$A,K$18))/SUMIFS(ID_600!$E:$E,ID_600!$D:$D,"regular hours",ID_600!$A:$A,K$18),NA())
  • 工作表 ID_600 中的 A 列有一个日期数据,如果等于 2018 年 11 月 5 日,则比较相加

蓝色箭头代码:

=IFERROR((SUMIFS(ID_600!$E$1:$E$5056,ID_600!$D$1:$D$5056,"sick hours paid",ID_600!$A$1:$A$5056,K$18,ID_600!$C$1:$C$5056,$A$23)+SUMIFS(ID_600!$E$1:$E$5056,ID_600!$D$1:$D$5056,"sick hours unpaid",ID_600!$A$1:$A$5056,K$18,ID_600!$C$1:$C$5056,$A$23))/SUMIFS(ID_600!$E$1:$E$5056,ID_600!$D$1:$D$5056,"regular hours",ID_600!$A$1:$A$5056,K$18,ID_600!$C$1:$C$5056,$A$23),NA())
  • 工作表 ID_600 中的 A 列有一个日期数据,如果它等于 2018 年 11 月 5 日,则将其相加,此外,如果“In”(A23) 列与工作表 ID_600 中 C 列中的数据相匹配,则进行求和

在弄清楚 DAX 代码之后,我将看看我可以做些什么来使用可视化来转换它。

原始数据示例文件:https://ufile.io/lfddf

*已编辑 2

【问题讨论】:

  • 可能在图像中包含行/列标题。
  • 添加了一张新图片
  • 我的意思是第1行第2行? A列B列?
  • 再次调整:)]
  • 您要求的 DAX 将处理原始数据。如果您提供该数据的样本,我们可以为您提供更好的帮助。还要解释数据透视表中的百分比值的含义。

标签: excel powerbi dax sumifs powerbi-desktop


【解决方案1】:

是的,DAX 可能很棘手,但在这种情况下,DAX 表达式比 excel 公式更简单。要在矩阵视觉中创建类似于您的数据透视表的东西,请创建以下三个度量:

Total Sick Hours =
CALCULATE ( SUM ( 'table'[hours] ),
    OR ( 'table'[type] = "Sick Hours Paid", 'table'[type] = "Sick Hours Unpaid" ))

Total Regular Hours = CALCULATE( SUM ( 'table'[hours] ), 'table'[type] = "Regular Hours" )

% Sick hours of Regular hours = DIVIDE( [Total Sick Hours], [Total Regular Hours], 0 )

然后创建一个矩阵视觉对象并将dep 放在行上,Date 放在列上,% Sick hours of Regular hours 放在值上。将% Sick hours of Regular hours 格式化为百分比(在“字段”窗格中选择度量,然后单击“建模”选项卡上的 %)。

结果应该是这样的:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    • 2010-11-14
    • 2019-09-29
    • 2022-09-29
    相关资源
    最近更新 更多