【问题标题】:Get average of all the table's average - Qlikview获取所有表格的平均值 - Qlikview
【发布时间】:2017-09-08 10:42:54
【问题描述】:

是否可以将每张直桌取平均值再取平均值?

示例:平均(1.99%+3.66%+3.49%+2.26%+2.14%+2.61%+5.54%+3.11%+2.92%+1.06%)

【问题讨论】:

  • 不是直接来自表格。总平均值应从数据驱动。发布您的数据外观以及如何计算某些表格平均值的示例将很有用
  • 我想不出正确的公式,因为每个表都是按维度设置的,如果在过滤器上设置,这个维度(即周)可以是多个星期。我尝试使用聚合,但这仅适用于单个选择或 1 周。每个表都有表达式,即Sum({$<[A]={$(=vVariable1)}, [Group]={'TableA'}>} [Duration])/Sum({$<[A]={'*'}, [Group]={'TableA'}>} [Duration])
  • 是否可以在某处上传 qvw(带有子集或加扰数据)?

标签: qlikview qliksense set-analysis


【解决方案1】:

这取决于您的表格表达式的复杂性,但一般的想法是通过aggr 函数“模拟”您的直表/数据透视表总计:

例如,对于维度为Week 且表达式为“sum(val)”的表格,您可以在变量中执行类似的操作:

avg(aggr( sum(val), Week))

如果您在一个表中有多个维度,那么只需将它们添加到aggr 碎片中(即:avg(aggr( sum(val), Week,Group))

然后在rangeAvg 中运行所有这些计算/变量 在您的情况下,您可以执行以下操作:

    rangeAvg(
    aggr(Sum({$<[A]={$(=vVariable1)}, [Group]={'TableA'}>} [Duration])/Sum({$<[A]={'*'}, [Group]={'TableA'}>} [Duration]),Week),
    aggr(Sum({$<[A]={$(=vVariable1)}, [Group]={'TableA'}>} [Duration])/Sum({$<[A]={'*'}, [Group]={'TableA'}>} [Duration]),MonthYear),
    aggr(Sum({$<[A]={$(=vVariable1)}, [Group]={'TableA'}>} [Duration])/Sum({$<[A]={'*'}, [Group]={'TableA'}>} [Duration]),Year)
)

附注:我不会进入 vb 宏,因为它只与 qlikview 相关,不能在 qliksense 中使用,但通常可以通过 vb 访问单元格值

【讨论】:

  • 我尝试过进行聚合,但这仅适用于 1 个维度变量。我有一个过滤器,您可以在其中选择许多周。每个表可以是很多周,而不仅仅是 1 周。如果我只选择 1 周,即 201701(表示一年中的第一周),它可以显示所有表格的平均值,但如果选择了很多周,它只会显示“-”或空白。
  • 如果您想一直持续一周,那么只需将“周=”添加到您的集合分析中 - 这将始终忽略当前的周选择。如果您希望始终对所有数据进行平均,请使用 'sum({1
  • 嗨,我已经解决了。当我应该有的时候,我没有把 Avg 放在 Aggr 之前。感谢您的帮助。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-08
  • 2012-03-18
  • 2017-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多