您可以通过在 CALCULATE 中使用 Filter 来绕过“表达式包含多个列,但在用作表过滤器表达式的 True/False 表达式中只能使用单个列”。
这里是一个创建的列。我使用了 IF,因为“E”代码的计算结果为空白,而您想要一个 0。
Desired Output Metric = IF(CALCULATE(SUM('Entity Table'[Metric]),FILTER('Entity Table',CONTAINSSTRING('Entity Table'[Descriptor],'Code Table'[Code])))>0,CALCULATE(SUM('Entity Table'[Metric]),FILTER('Entity Table',CONTAINSSTRING('Entity Table'[Descriptor],'Code Table'[Code]))),0)
这是作为衡量标准。请注意仅在代码详细信息级别使用它。在进行测量时,您需要使用聚合函数来引用您的列,所以我只是在执行 MIN(Code),因为对于任何单个代码,Min() 将始终等于该 Code。如果您尝试在更高的摘要级别上使用它,您可能会得到一些奇怪的答案,因为它只会为您引用的数据集中的 MIN() 代码求和。
Desired Output Metric = IF(CALCULATE(SUM('Entity Table'[Metric]),FILTER('Entity Table',CONTAINSSTRING('Entity Table'[Descriptor],MIN('Code Table'[Code]))))>0,CALCULATE(SUM('Entity Table'[Metric]),FILTER('Entity Table',CONTAINSSTRING('Entity Table'[Descriptor],MIN('Code Table'[Code])))),0)