【问题标题】:DAX - Display the top 1 count in a calculated columnDAX - 显示计算列中的前 1 个计数
【发布时间】:2018-02-18 08:35:27
【问题描述】:

我有一个 [Company] 列,我在 powerpivot 表中有一个 [Billing day] 列。 一家公司可以有多个不同的结算日。

我想在公司名称旁边的数据透视表中显示出现次数最多的结算日。 棘手的部分是数字必须出现在 [Calculated Column] 中,它不会作为度量值放在我的数据透视表中,而是作为列。 我审查了以下帖子: this onethis one。 我学到了很多,但我仍然无法获得正确的值。

有什么想法吗? 非常感谢

【问题讨论】:

    标签: pivot calculated-columns dax frequency-distribution


    【解决方案1】:

    这可能不是最好的方式来获得我理解你所要求的,但它是一种方式。我相信它在计算列方面达到了您想要的效果。

    如果我将此表作为 Table1 开始:

    然后我使用此代码添加一列:MaxByDate = COUNTX(FILTER(FILTER(Table1,Table1[Company]=EARLIER(Table1[Company])),Table1[Billing Day]=EARLIER(Table1[Billing Day])),Table1[Billing Day])

    我使用此代码添加另一列:MaxOverall = MAXX(FILTER(Table1,Table1[Company]=EARLIER(Table1[Company])),COUNTX(FILTER(FILTER(Table1,Table1[Company]=EARLIER(Table1[Company])),Table1[Billing Day]=EARLIER(Table1[Billing Day])),Table1[Billing Day]))

    然后我使用此代码添加最后一列:DateOfMaxOverall = FORMAT(SUMX(FILTER(FILTER(Table1,[Company]=EARLIER([Company])),[MaxByDate]=[MaxOverall]),[Billing Day])/COUNTX(FILTER(FILTER(Table1,[Company]=EARLIER([Company])),[MaxByDate]=[MaxOverall]),[Billing Day]),"m/d/yyyy")

    我得到了这张桌子:

    然后,如果我选择从中创建一个扁平化数据透视表(主页选项卡/数据透视表下拉箭头按钮/扁平化数据透视表),然后进行如下设置:

    ...关闭小计和总计,我明白了:

    我相信这就是您所要求的。

    但我认为更简单的方法可能是这样的:

    从第一个表(Table1)开始:

    并且,按原样使用该表,直接创建一个扁平数据透视表。然后像这样设置数据透视表:

    ...并关闭小计和总计,得到这个:

    ...然后您可以筛选出每家公司的最大发生天数:

    ...得到这个:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多