能不能把每张直桌取平均值再取平均值?
示例:平均(1.99%+3.66%+3.49%+2.26%+2.14%+2.61%+5.54%+3.11%+2.92%+1.06%)
这取决于您的表表达式的复杂性,但一般的想法是通过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 访问单元格值