按二维组合过滤
Filter by two dimension combinations
我的(高度简化的)数据模型包含:
- 一个事实 table,具有 FTE 值和 'Country' 和 'Process'
的两个外键
- 'Country' 和 'Process' 的二维 table 与事实 table
的关系
我还有一个 table 'Country' 和 'Process' 的组合,我想在上面过滤我的数据:
Country Process Country-Process
= = = = = = = = = = = = = = = = = = = =
France process 1 France process 1
France process 2 France process 2
Australia process 1 Australia process 1
Australia process 3 Australia process 3
USA process 2 USA process 2
USA process 3 USA process 3
目标是过滤我的 FTE,仅显示这些国家/地区流程组合的 FTE。但是,不可能让组合 table 通过关系过滤国家和进程 table。
如果我过滤国家/地区,我将获得这些国家/地区的所有流程。如果我过滤流程,我会得到这些流程的所有国家/地区。如果我过滤这些国家(有更多)和这些流程(有更多),我会得到所有这些国家的所有这些流程。但我只想要列出的组合。
我已经成功地在虚拟 table 上使用 SUMX 进行测量,该虚拟 table 仅包含列出的组合(在 DAX Studio 中有效),但实体关系不知何故丢失,所有国家/地区都显示了汇总值每个进程。
测量设置如下:
SUMX(
FILTER(
CROSSJOIN(
ADDCOLUMS(
CROSSJOIN(VALUES(Country[country]), VALUES(Process[process]) ),
"Country_Process", Country[country] & " " & Process[process]
),
VALUES(Combination[Country-Process]
),
[Country_Process] = Combinations[Country-Process]
),
[FTE]
)
非常感谢您的帮助!
假设您的 table 和关系如下所示:
组合
Country
Process
France
Process 1
France
Process 2
Australia
Process 1
Australia
Process 3
USA
Process 2
USA
Process 3
国家
Country
France
Australia
USA
进程
Process
Process 1
Process 2
Process 3
全职
ID
Country
Process
15
Australia
Process 3
3
Australia
Process 1
5
Australia
Process 3
11
Australia
Process 3
13
France
Process 3
14
France
Process 2
12
France
Process 1
1
France
Process 1
7
France
Process 3
8
France
Process 2
2
USA
Process 3
4
USA
Process 3
6
USA
Process 1
9
USA
Process 3
10
USA
Process 1
关系
DAX 计算:
您可以使用TREATAS
创建虚拟关系。度量可以是 table.
中的可视列或筛选器
Filter FTE =
CALCULATE (
COUNTROWS ( FTE ),
TREATAS (
SUMMARIZE ( Combinations, Combinations[Country], Combinations[Process] ),
FTE[Country],
FTE[Process]
)
)
输出
我的(高度简化的)数据模型包含:
- 一个事实 table,具有 FTE 值和 'Country' 和 'Process' 的两个外键
- 'Country' 和 'Process' 的二维 table 与事实 table 的关系
我还有一个 table 'Country' 和 'Process' 的组合,我想在上面过滤我的数据:
Country Process Country-Process
= = = = = = = = = = = = = = = = = = = =
France process 1 France process 1
France process 2 France process 2
Australia process 1 Australia process 1
Australia process 3 Australia process 3
USA process 2 USA process 2
USA process 3 USA process 3
目标是过滤我的 FTE,仅显示这些国家/地区流程组合的 FTE。但是,不可能让组合 table 通过关系过滤国家和进程 table。
如果我过滤国家/地区,我将获得这些国家/地区的所有流程。如果我过滤流程,我会得到这些流程的所有国家/地区。如果我过滤这些国家(有更多)和这些流程(有更多),我会得到所有这些国家的所有这些流程。但我只想要列出的组合。
我已经成功地在虚拟 table 上使用 SUMX 进行测量,该虚拟 table 仅包含列出的组合(在 DAX Studio 中有效),但实体关系不知何故丢失,所有国家/地区都显示了汇总值每个进程。
测量设置如下:
SUMX(
FILTER(
CROSSJOIN(
ADDCOLUMS(
CROSSJOIN(VALUES(Country[country]), VALUES(Process[process]) ),
"Country_Process", Country[country] & " " & Process[process]
),
VALUES(Combination[Country-Process]
),
[Country_Process] = Combinations[Country-Process]
),
[FTE]
)
非常感谢您的帮助!
假设您的 table 和关系如下所示:
组合
Country | Process |
---|---|
France | Process 1 |
France | Process 2 |
Australia | Process 1 |
Australia | Process 3 |
USA | Process 2 |
USA | Process 3 |
国家
Country |
---|
France |
Australia |
USA |
进程
Process |
---|
Process 1 |
Process 2 |
Process 3 |
全职
ID | Country | Process |
---|---|---|
15 | Australia | Process 3 |
3 | Australia | Process 1 |
5 | Australia | Process 3 |
11 | Australia | Process 3 |
13 | France | Process 3 |
14 | France | Process 2 |
12 | France | Process 1 |
1 | France | Process 1 |
7 | France | Process 3 |
8 | France | Process 2 |
2 | USA | Process 3 |
4 | USA | Process 3 |
6 | USA | Process 1 |
9 | USA | Process 3 |
10 | USA | Process 1 |
关系
DAX 计算:
您可以使用TREATAS
创建虚拟关系。度量可以是 table.
Filter FTE =
CALCULATE (
COUNTROWS ( FTE ),
TREATAS (
SUMMARIZE ( Combinations, Combinations[Country], Combinations[Process] ),
FTE[Country],
FTE[Process]
)
)