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] ) )
)
结果:
我的示例源数据后面有两个表
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] ) )
)
结果: