2017-09-08 158 views
1

是否有可能获得每个直线表的平均值并再次获得平均值?获取所有表格平均值的平均值 - Qlikview

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

enter image description here

+0

不是直接来自表格。总的平均值应该从数据中驱动。发布数据外观示例以及如何计算某些表格平均值将很有用 –

+0

由于每个表格都是按维度设置的,因此我无法提出正确的公式,而此维度(即周)可能需要多个星期如果设置在过滤器上。我尝试使用聚合,但这只适用于单选或1周。每个表都有表达式,即Sum({$ <[A] = {$(= vVariable1)},[Group] = {'TableA'}>} [Duration])/ Sum({$ <[A] = { *'},[Group] = {'TableA'}>} [Duration])' –

+0

可能将qvw上传到某处(使用子集或加扰数据)? –

回答

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

访问单元格的值
+0

我试过做聚合,但这只适用于1维的变量。我有一个过滤器,你可以选择多个星期。每张桌子可能需要数周,而不仅仅是一周。如果我只选择一周,即201701(意味着一年的第一周),它可以显示所有表格的平均值,但如果选择了多个星期,则只显示“ - ”或空白。 –

+0

如果你想整个星期总是添加到你的设置分析'周=' - 这将永远忽略当前的星期选择。 如果你想总是平均所有数据,然后使用'sum({1 <[A] = {$(= vVariable1)} ....' – EldadT

+0

嗨,我已经解决了它。当我需要的时候聚合。谢谢你的帮助。 –