获取计算列中最常见的项目
Get the most common item in a calculated column
我已经想出如何在度量中完成以下等效项,但我需要将其用作 Power View 图表中的图例,因此需要在计算列中完成。从计算字段到计算列的上下文变化完全把我搞砸了。
在我的数据模型中,我有 table 份工作申请。每条记录都有一个专业和申请公司的地址。每个专业可以在 table.
中出现多次
应用表:
ApplicationID | Name | Specialty | City | State
- 32911 |Joe Bob | Engineering | Miami | Florida
- 89547 |Ralph Kramden | Shouting | New York | New York
等等
我还有 table 个状态。它只有州名和邮政缩写的列。我需要创建一个列,其中包含每个州最常出现的专业。
如果我可以将其作为计算字段来执行,我早就完成了。我只是使用了一个非常简单的 topn 应用程序:
Top Specialty := FIRSTNONBLANK (TOPN (3, VALUES (ApplicationTable[Specialty]),[Count of ApplicationID], ApplicationTable[Specialty])
我使用了 FIRSTNONBLANK 和 TOPN(3...),因为有些州只有几个申请,所以每个专业只出现一次。在我的申请中,在这些情况下只选择列表中的第一个专业就可以了。
无论如何,这个公式很酷,但在这里没有帮助。那么如何在计算列中执行等效操作,以便将其用作键或筛选器?具体来说,我认为我需要在 StateTable 中执行此操作,为我提供 ApplicationTable 中每个州出现次数最多的专业名称。想法?
首先,创建一个计算专业的基本度量:
SpecialtyCount :=
COUNTA ( ApplicationTable[Specialty] )
接下来,创建一个度量来找出最高的单一专业(在上下文中):
MostSpecial :=
MAXX ( VALUES ( ApplicationTable[Specialty] ), [SpecialtyCount] )
最后,将计算列添加到您的状态 table:
=
FIRSTNONBLANK (
ApplicationTable[Specialty],
IF (
[SpecialtyCount]
= CALCULATE ( [MostSpecial], VALUES ( ApplicationTable[Speciality] ) ),
1,
BLANK ()
)
)
通过将其作为计算列,我们的筛选上下文是每个州。因此,PowerPivot 首先会将 ApplicationTable
过滤为状态内的应用程序,然后它将使用 FIRSTNONBLANK()
遍历每个 ApplicationTable[Specialty]
,计算其 SpecialtyCount
并查看是否等于MostSpecial
在该州内计数。如果有,那不是空白,这就是它的特色returns。
我已经想出如何在度量中完成以下等效项,但我需要将其用作 Power View 图表中的图例,因此需要在计算列中完成。从计算字段到计算列的上下文变化完全把我搞砸了。
在我的数据模型中,我有 table 份工作申请。每条记录都有一个专业和申请公司的地址。每个专业可以在 table.
中出现多次应用表:
ApplicationID | Name | Specialty | City | State
- 32911 |Joe Bob | Engineering | Miami | Florida
- 89547 |Ralph Kramden | Shouting | New York | New York
等等
我还有 table 个状态。它只有州名和邮政缩写的列。我需要创建一个列,其中包含每个州最常出现的专业。
如果我可以将其作为计算字段来执行,我早就完成了。我只是使用了一个非常简单的 topn 应用程序:
Top Specialty := FIRSTNONBLANK (TOPN (3, VALUES (ApplicationTable[Specialty]),[Count of ApplicationID], ApplicationTable[Specialty])
我使用了 FIRSTNONBLANK 和 TOPN(3...),因为有些州只有几个申请,所以每个专业只出现一次。在我的申请中,在这些情况下只选择列表中的第一个专业就可以了。
无论如何,这个公式很酷,但在这里没有帮助。那么如何在计算列中执行等效操作,以便将其用作键或筛选器?具体来说,我认为我需要在 StateTable 中执行此操作,为我提供 ApplicationTable 中每个州出现次数最多的专业名称。想法?
首先,创建一个计算专业的基本度量:
SpecialtyCount :=
COUNTA ( ApplicationTable[Specialty] )
接下来,创建一个度量来找出最高的单一专业(在上下文中):
MostSpecial :=
MAXX ( VALUES ( ApplicationTable[Specialty] ), [SpecialtyCount] )
最后,将计算列添加到您的状态 table:
=
FIRSTNONBLANK (
ApplicationTable[Specialty],
IF (
[SpecialtyCount]
= CALCULATE ( [MostSpecial], VALUES ( ApplicationTable[Speciality] ) ),
1,
BLANK ()
)
)
通过将其作为计算列,我们的筛选上下文是每个州。因此,PowerPivot 首先会将 ApplicationTable
过滤为状态内的应用程序,然后它将使用 FIRSTNONBLANK()
遍历每个 ApplicationTable[Specialty]
,计算其 SpecialtyCount
并查看是否等于MostSpecial
在该州内计数。如果有,那不是空白,这就是它的特色returns。