DAX - 在计算列中显示前 1 个计数
DAX - Display the top 1 count in a calculated column
我有一个 [公司] 列,我在 powerpivot sheet 中有一个 [开票日] 列。
一个公司可以有几个不同的账单日。
我想在数据透视表 table 中显示公司名称旁边出现次数最多的开票日。
棘手的部分是数字必须出现在 [Calculated Column] 中,它不会作为 Measure 放在我的 Pivot table 中,而是作为 Column。
我已经审查了以下帖子:
this one or this one。
我学到了很多,但我仍然无法获得正确的值。
有什么想法吗?
非常感谢
这可能不是 最好的 方式来满足您的需求,但这是 a 的方式。我相信它可以实现您对计算列的要求。
如果我从这个 table 作为表 1 开始:
然后我使用以下代码添加一列: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")
我明白了 table:
然后,如果我选择从中创建一个扁平化数据透视表(“主页”选项卡/数据透视表下拉箭头按钮/扁平化数据透视表),并进行如下设置:
...并关闭小计和总计,我明白了:
我相信这正是您所要求的。
但我认为更简单的方法可能是这样的:
从第一个 table(表 1)开始:
然后,按原样使用 table,直接创建一个扁平数据透视表。然后像这样设置数据透视表:
...并关闭小计和总计,得到这个:
...然后您可以过滤每个公司的最大出现日期:
...得到这个:
我有一个 [公司] 列,我在 powerpivot sheet 中有一个 [开票日] 列。 一个公司可以有几个不同的账单日。
我想在数据透视表 table 中显示公司名称旁边出现次数最多的开票日。 棘手的部分是数字必须出现在 [Calculated Column] 中,它不会作为 Measure 放在我的 Pivot table 中,而是作为 Column。 我已经审查了以下帖子: this one or this one。 我学到了很多,但我仍然无法获得正确的值。
有什么想法吗? 非常感谢
这可能不是 最好的 方式来满足您的需求,但这是 a 的方式。我相信它可以实现您对计算列的要求。
如果我从这个 table 作为表 1 开始:
然后我使用以下代码添加一列: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")
我明白了 table:
然后,如果我选择从中创建一个扁平化数据透视表(“主页”选项卡/数据透视表下拉箭头按钮/扁平化数据透视表),并进行如下设置:
...并关闭小计和总计,我明白了:
我相信这正是您所要求的。
但我认为更简单的方法可能是这样的:
从第一个 table(表 1)开始:
然后,按原样使用 table,直接创建一个扁平数据透视表。然后像这样设置数据透视表:
...并关闭小计和总计,得到这个:
...然后您可以过滤每个公司的最大出现日期:
...得到这个: