DAX 仅聚合来自 Lookup Table 的值

DAX to aggregate only for values from Lookup Table

我的示例源数据后面有两个表

key

|           key           |
|-------|---------|-------|
| site  | service | month |
|-------|---------|-------|
| site1 | serv1   | 1     |
| site1 | serv1   | 2     |
| site1 | serv1   | 3     |
| site1 | serv1   | 4     |
| site1 | serv1   | 5     |
| site2 | serv1   | 1     |
| site2 | serv1   | 2     |
| site2 | serv1   | 3     |
| site2 | serv1   | 4     |
| site3 | serv1   | 1     |
| site3 | serv1   | 2     |
| site3 | serv1   | 3     |
| site3 | serv1   | 4     |
| site3 | serv1   | 5     |
| site3 | serv1   | 6     |
| site3 | serv1   | 7     |
| site4 | serv1   | 1     |
| site4 | serv1   | 2     |
| site4 | serv1   | 3     |
| site4 | serv1   | 4     |

lookup

| Lookup |
|--------|
| site   |
|--------|
| site1  |
| site3  |
| site4  |

我正在构建一个矩阵,即通过从键表中获取站点、服务、月份并计算每个站点服务总共有多少个月,但我只想显示仅出现在查找中的站点的聚合。

我想要的结果如下,即 site2 没有出现在 lookup 中,我不希望为此返回任何聚合。

|            Result                |
|--------|---------|-------|-------|
| site   | service | month | Count |
|--------|---------|-------|-------|
| site1  | serv1   | 1     | 5     |
| site1  | serv1   | 2     | 5     |
| site1  | serv1   | 3     | 5     |
| site1  | serv1   | 4     | 5     |
| site1  | serv1   | 5     | 5     |
| site3  | serv1   | 1     | 7     |
| site3  | serv1   | 2     | 7     |
| site3  | serv1   | 3     | 7     |
| site3  | serv1   | 4     | 7     |
| site3  | serv1   | 5     | 7     |
| site3  | serv1   | 6     | 7     |
| site3  | serv1   | 7     | 7     |
| site4  | serv1   | 1     | 4     |
| site4  | serv1   | 2     | 4     |
| site4  | serv1   | 3     | 4     |
| site4  | serv1   | 4     | 4     |

到目前为止我已经尝试过这两个措施

countSiteService =
CALCULATE ( COUNT ( 'key'[month] ), REMOVEFILTERS ( 'key'[month] ) )

countSiteServiceLookup =
CALCULATE (
    [countSiteService],
    TREATAS ( VALUES ( Lookup[site] ), 'key'[site] )
)

但他们没有给我我想要的

两个表目前都是disconnected。但即使我在现场连接它们,结果也没有什么不同。

如何使用当前模型实现最终结果,而不是 完全不通过在筛选器窗格中放置任何硬编码筛选器

由于您覆盖了站点过滤器上下文,因此您所拥有的总计 5 + 7 + 4 = 16

我怀疑你想要更多这样的东西:

countSiteServiceLookup =
CALCULATE (
    [countSiteService],
    KEEPFILTERS ( 'key'[site] IN VALUES ( Lookup[site] ) )
)

结果: