问题描述
我试图在同一列上找到两个过滤器的总和。我们可以使用 FILTER
关键字,但是太费时间了。所以我做了以下事情,但似乎没有任何效果。永远不会应用第二个过滤器。
1.
MEASURE pop_hd_new[Connectivity %] = CALCULATE(
DIVIDE(
CALCULATE(
SUM(pop_hd_new[Connected]),'prodhier_new'[PROD_TYPE_DESC] in { "Client Solutions PBU","Enterprise Solution Group PBU"}),CALCULATE(
SUM(pop_hd_new[SVC_TAG_CNT]),'prodhier_new'[PROD_TYPE_DESC] in {"Client Solutions PBU","Enterprise Solution Group PBU"})
))
MEASURE pop_hd_new[Connectivity %] = CALCULATE(
DIVIDE(
CALCULATE(
SUM(pop_hd_new[Connected]),prodhier_new,'prodhier_new'[PROD_TYPE_DESC] = "Client Solutions PBU" || 'prodhier_new'[PROD_TYPE_DESC] = "Enterprise Solution Group PBU"),'prodhier_new'[PROD_TYPE_DESC] = "Client Solutions PBU" || 'prodhier_new'[PROD_TYPE_DESC] = "Enterprise Solution Group PBU")
))
请提出一些解决方案。
解决方法
您可以尝试对第一种方法进行重构:
MEASURE pop_hd_new[Connectivity %] =
CALCULATE (
DIVIDE ( SUM ( pop_hd_new[Connected] ),SUM ( pop_hd_new[SVC_TAG_CNT] ) ),'prodhier_new'[PROD_TYPE_DESC]
IN { "Client Solutions PBU","Enterprise Solution Group PBU" }
)
自己检查它是否比这个 FILTER 版本更快或更慢:
MEASURE pop_hd_new[Connectivity %] =
CALCULATE (
DIVIDE ( SUM ( pop_hd_new[Connected] ),FILTER (
ALL ( 'prodhier_new'[PROD_TYPE_DESC] ),'prodhier_new'[PROD_TYPE_DESC] = "Client Solutions PBU"
|| 'prodhier_new'[PROD_TYPE_DESC] = "Enterprise Solution Group PBU"
)
)