2

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

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

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

4

2 回答 2

2

另一种方法是创建一个列表框,但不是将其设置为使用普通字段,而是将其设置为使用表达式(在属性的“字段”下拉菜单中选择它)。

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

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

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

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

在第二张图片中,在这个新列表框中进行了选择,如您所见,它会F2自动进行选择。

使用表达式时来自 QlikView 的示例 使用表达式和选择值时来自 QlikView 的示例

于 2015-04-29T09:22:40.457 回答
1

实现这一目标的方法很少。

  • 为 Box1 字段设置“选择时”触发器。触发器将清除 Box2 上的选定值并仅选择大于 Box1 选定值的值
  • 在脚本中 - 这在很大程度上取决于您拥有的数据集。这个想法是将 Box1 和 Box2 字段以多对多的方式连接到单独的表中,然后过滤 Box2 > Box1 的值。使用这种方法对我来说更清楚,不需要触发器,但这又取决于您的数据。

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

于 2015-04-29T09:16:25.843 回答