Qlik前端条形图处理:合并‘Active-in progress’与‘Submitted’条形
Qlik条形图维度合并解决方案
问题分析
你原代码的核心问题在于第二个if的逻辑错误:Status='Active 1' and status = 'Submitted'要求一个字段同时等于两个不同值,这永远无法成立,所以合并逻辑不会触发。另外代码缺少闭合括号,存在语法问题。
正确维度表达式
方法1:嵌套If语句
直接判断目标状态,返回统一维度名称:
If(Status = '', Null(), If(Status = 'Active-in progress' Or Status = 'Submitted', 'Active-in progress & Submitted', Status) )
- 第一部分
If(Status = '', Null(), ...):过滤空Status值,和你原需求的非空过滤一致。 - 第二部分
If(Status = 'Active-in progress' Or Status = 'Submitted', ...):匹配需要合并的两个状态,返回自定义的合并名称(可根据需求修改),其他状态保留原Status值。
方法2:Pick + Match(更简洁)
当需要合并的状态较多时,用Pick和Match组合更清晰:
If(Status = '', Null(), Pick(Match(Status, 'Active-in progress', 'Submitted', 'Active 1'), '合并状态', '合并状态', 'Active 1') )
Match函数返回状态在列表中的位置,Pick根据位置返回对应名称,相同位置返回同一个合并名称即可实现合并。
效果验证
应用上述表达式后,条形图会显示两个条形:
- 'Active 1':对应数值90
- 自定义合并名称:对应数值79+34=113
内容的提问来源于stack exchange,提问作者VizJunkie
相关产品推荐
相关产品推荐

