2017-09-08 157 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

嗨,我已經解決了它。當我需要的時候聚合。謝謝你的幫助。 –