powerbi - Power BI如何根据列是否包含来自其他列的字符串求和
问题描述
我有一个实体列,每个实体一行。此表包含三列:实体 ID、描述符和指标。描述符是许多代码的串联,我希望看到按代码分解的指标。
我最初只是将 Descriptor 列拆分为许多行,但这会导致一些数据关系问题,所以我想在不拆分 Descriptor 列的情况下这样做。
我尝试执行以下 DAX 公式,但它导致错误指出“表达式包含多个列,但在用作表过滤器表达式的 True/False 表达式中只能使用单个列”
Desired Output Metric = CALCULATE('Metric',CONTAINSSTRING('Entity Table'[Descriptor],'Code Table'[Code]))
最终,我什至不确定我是否需要将此作为专栏,作为衡量标准可能会更好......
任何帮助,将不胜感激。谢谢!
解决方案
您可以通过在 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)
推荐阅读
- android - 无法在 Android 上使用 Cloudfront 签名 Cookie 播放 hls 视频
- python - 如何解决此列表索引问题?
- java - Base64 解码错误 最后一个单元没有足够的有效位
- node.js - NextJS 错误:您的 `getServerSideProps` 函数没有返回对象
- classification - 不平衡分类的评价指标
- php - PHP 客户端 SSL 证书认证
- html - 如何在页面上垂直居中项目
- powershell - Powershell“找不到接受参数的位置参数”
- sql - SQL 将行表与列表连接起来
- azure - Azure Notebook 不会运行任何 python