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

Qlik Sense如何筛选指定时间范围内处于就绪状态的OWNER_ID

Qlik Sense 透视表时间范围患者就绪状态匹配解决方案

核心逻辑梳理

要展示选定时间范围内(如6-8点)处于就绪状态的患者,本质是筛选就绪时间段[START_TIME, END_TIME]与选定时间范围[筛选起始小时, 筛选结束小时]存在重叠的患者,判断条件为:
START_TIME ≤ 筛选结束小时 AND END_TIME ≥ 筛选起始小时
同时需满足STATUS='ready'。

具体解决方法

方法1:在度量中用集合分析过滤

直接在透视表的度量表达式中加入集合分析,精准筛选符合条件的患者:

Count({<
    STATUS={'ready'},
    START_TIME={"<=$(=max(提取的筛选结束小时))"},
    END_TIME={">=$(=min(提取的筛选起始小时))"}
>} DISTINCT OWNER_ID)
  • 若你的筛选字段是类似TimeRange(值为“0-2点”“6-8点”),需先提取起始/结束小时数值,示例提取函数:
    • 起始小时:min(Left(TimeRange, Index(TimeRange, '-')-1))
    • 结束小时:max(Mid(TimeRange, Index(TimeRange, '-')+1, Len(TimeRange)-Index(TimeRange, '-')-1))(根据实际字符串格式调整)

方法2:创建计算维度

若需在维度中仅展示符合条件的OWNER_ID,可创建计算维度:

=If(STATUS='ready' AND START_TIME <= $(=max(提取的筛选结束小时)) AND END_TIME >= $(=min(提取的筛选起始小时)), OWNER_ID)
  • 勾选维度设置中的「排除空值」,确保仅显示符合条件的患者ID。

原方法无效原因说明

你之前使用的aggr()表达式仅判断了END_TIME大于筛选的最小小时,未覆盖时间段重叠的完整逻辑,且aggr()的分组维度写错(END-TIME应为END_TIME),导致无法正确匹配目标患者。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:20:54