Power BI计算列需求:按流动性筛选企业最优股票ID
Power BI 筛选保留企业最高流动性股票ID的计算列方案
实现步骤
假设你的数据表包含股票ID(对应示例中的StockID类字段)和流动性(对应Liquidity类字段),按以下步骤创建计算列:
1. 创建企业标识分组列
提取股票ID的前4个字母作为企业分组依据:
企业标识 = LEFT('你的数据表名'[股票ID], 4)
替换你的数据表名为实际表名,股票ID为对应列名。
2. 计算对应企业的最高流动性
获取每个企业分组下的最大流动性值:
企业最高流动性 = CALCULATE(MAX('你的数据表名'[流动性]), ALLEXCEPT('你的数据表名', '你的数据表名'[企业标识]))
3. 生成保留目标股票ID的计算列
判断当前股票的流动性是否为该企业最高,是则保留完整股票ID,否则返回空值:
保留的股票ID = IF('你的数据表名'[流动性] = '你的数据表名'[企业最高流动性], '你的数据表名'[股票ID], BLANK())
特殊场景处理
如果同一企业存在多个流动性相同且均为最高的股票ID,若需仅保留其中一个(比如按ID字典序取首个),可使用以下DAX公式:
保留的股票ID = VAR 企业最高流动性 = CALCULATE(MAX('你的数据表名'[流动性]), ALLEXCEPT('你的数据表名', '你的数据表名'[企业标识])) VAR 目标股票ID = CALCULATE(MIN('你的数据表名'[股票ID]), ALLEXCEPT('你的数据表名', '你的数据表名'[企业标识]), '你的数据表名'[流动性] = 企业最高流动性) RETURN IF('你的数据表名'[股票ID] = 目标股票ID, '你的数据表名'[股票ID], BLANK())
可将MIN替换为MAX来取字典序最大的ID,按需调整。
内容的提问来源于stack exchange,提问作者lucasnpellegrino
相关产品推荐
相关产品推荐

