如何 select 列表框中的特定数字并使其他列表框仅显示大于 QlikView 中 selected 数字的数字?

How to select a particular number in a list box and make the other list box to only display the numbers greater than the selected number in QlikView?

我有两个列表框:Box1 和 Box2。 Box1 的值为 10、20、30、40 等,而 Box2 的值为 10、20、30 等。

在仪表板中分别为 Box1 和 Box2 创建两个单独的列表框后,如何才能仅显示 Box2 中大于 Box1 中所选 value/values 的值。

示例:当我在 Box1 中单击 20 时,我希望在 box2 中显示或显示值 30、40 等,即必须显示大于 20 的值。谢谢。

实现这一点的方法很少。

  • 为 Box1 字段设置“On select”触发器。触发器将清除 Box2 上的 selected 值和 select 仅大于 Box1 selected 值
  • 的值
  • 在脚本中 - 这在很大程度上取决于您拥有的数据集。这个想法是将 Box1 和 Box2 字段以多对多的方式加入单独的 table 中,然后过滤 Box2 > Box1 的值。使用这种方法对我来说更清楚,不需要触发器,但这同样取决于您的数据。

我制作了一个展示这两种方法的小应用程序https://drive.google.com/file/d/0BxjGsOE_3VoOc29aYXVsanN3azA/view?usp=sharing

另一种方法是创建一个列表框,但不是将其设置为使用普通字段,而是将其设置为使用表达式(select 它在 "Field"在属性中下拉)。

然后您可以使用以下表达式来解决问题:

=aggr(if(F2 > max(F1),F2,if(GetSelectedCount(F1)<>0,null(),F2)),F2)

在上面,第一个字段是F1(即Box1),第二个字段是F2(即Box2)。

下面显示了它在实践中的外观示例(右侧的第三个框包含表达式),第一个图像显示了如果某些值在 F1 中 selected 会发生什么- 值列表已过滤。

在第二张图片中,一个selection已经在这个新的列表框中创建了,正如你所看到的,它会自动针对F2创建一个selection。