QlikSense - 检索当前过滤器选择之外的行值

问题描述 投票:0回答:1

我正在尝试创建一个表达式,该表达式将检索用户选择之外的特定级别的值。我的事实表堆叠了多个事实表,下面是数据模型的示例:

表名 国家 状态 销售 目标
销售 美国 加利福尼亚州 100
销售 美国 加利福尼亚州 200
销售 美国 纽约 200
目标 美国 500
销售 CA 多伦多 100
销售 CA 多伦多 200
销售 CA 温哥华 200
目标 CA 500

销售额是州/市级别的,而目标是国家级别的。用户将选择 1 个州/城市并将其与该国家/地区的目标进行比较,以查看其贡献。对于加利福尼亚州,将为 300 / 500 = 60%。

但是,由于用户将按州/城市进行过滤,因此任何目标值都将返回 0。

我假设 p() 需要在某个地方使用(因为销售和目标的关系是由国家/地区值而不是关联决定的),但是我如何通过集合分析来实现这一点?

此外,如果“销售”行和“目标”行由于公共列值而具有关系,那么此处使用的正确术语是什么?

谢谢!

qliksense
1个回答
0
投票

我能够使用 setanalysis

Aggr()
函数
total
关键字
来实现这一点。这个表达对我有用:

=Sum(Sales) / Sum(total <[Country]> Aggr(Sum({1} [Target]), [Country]))

该表达式中的分母被分解:

Sum(total <[Country]> Aggr(Sum({1} [Target]), [Country]))
      ^        ^       ^        ^
      3.       4.      2.       1.
  1. 这里我们对
    [Target]
    字段进行总结。我们希望忽略用户对这部分表达式的选择,因此我们使用 set 标识符
    {1}
  2. 我们将该
    Sum()
    函数放入
    Aggr()
    函数中,以便我们可以在
    Sum()
    字段上对
    [Country]
    进行聚合或分组。
  3. 由于
    Aggr()
    为我们提供了每个国家/地区的总目标值,我们现在想要
    Sum()
    这些值,但给出所有维度的
    total
    金额。
  4. 我们可以为
    total
    指定要忽略的维度,在本例中,我们选择
    [Country]
    字段,以便我们可以看到汇总到国家/地区而不是州/城市的总和值。
© www.soinside.com 2019 - 2024. All rights reserved.