You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QlikSense前端筛选指定Object ID及数据集对比方法

QlikSense 筛选六月Flag为1且五月Flag不为1的Object ID方法

直接用集合差集表达式实现

最简洁的方式是利用Qlik的集合运算,通过P()函数获取可能集后做差集,直接得到符合条件的Object ID列表:

Concat({<[Object ID] = P({<[Reporting Month]={'$(vCurrentMonth)'}, [Flag]={'1'}>}) - P({<[Reporting Month]={'$(vPreviousMonth)'}, [Flag]={'1'}>})>} Distinct [Object ID], ', ')

逻辑说明:

  • P({<[Reporting Month]={'$(vCurrentMonth)'}, [Flag]={'1'}>}):提取六月(当前月份)中Flag为1的所有Object ID集合
  • - P({<[Reporting Month]={'$(vPreviousMonth)'}, [Flag]={'1'}>}):从上述集合中排除五月(上月)中Flag为1的Object ID
  • 最终通过Concat将结果拼接为逗号分隔的字符串

用Aggr+条件判断实现(适合复杂场景)

如果需要更灵活的条件控制,也可以用Aggr结合聚合函数判断每个Object ID的月度Flag状态:

Concat(Distinct If(
  Sum({<[Reporting Month]={'$(vCurrentMonth)'}>} [Flag]) = 1 
  and (Sum({<[Reporting Month]={'$(vPreviousMonth)'}>} [Flag]) = 0 or IsNull(Sum({<[Reporting Month]={'$(vPreviousMonth)'}>} [Flag]))),
  [Object ID]
), ', ')

逻辑说明:

  • 对每个Object ID,判断六月的Flag总和为1(即六月Flag=1)
  • 同时五月的Flag总和为0,或五月无该ID的记录(Sum结果为Null),满足五月Flag不为1的要求

关于你之前的问题

你之前创建的两个变量只是分别提取了不同范围的Object ID集合,但没有进行集合差集运算,因此无法得到符合“六月有1且五月无1”的结果。QlikSense原生支持集合的并(+)、交(*)、差(-)运算,直接通过P()/E()函数配合运算符就能实现数据集对比。

内容的提问来源于stack exchange,提问作者akshat khetan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:22:42