2016-12-15 75 views
1

我正在尋找一個解決方案,它會根據動態過濾的表給我一個加權平均值。以下是我有:得到過濾表的加權平均值

A欄:URL列表, 列B:數字, 柱C:百分比

/page     100000 20% 
/brochures.htm?en  27443 75,30% 
/brochures.htm?fr  1656 67,33% 
/brochures.htm?it  483  75,00% 
/brochures.htm?fr-fr 6  0,00% 

我想要的,是給我的加權比例公式以「/小冊子/ htm」開頭的頁面,即74,83%。

我能夠與中間片材,其中我與 = FILTER過濾表格做,在兩次(A1:C5; REGEXMATCH(A1:A5; 「/ brochures.html *」)) 然後在通過計算 = SUMPRODUCT(C1:C5; B1:B5)/ SUM(B1:B5) 的加權平均值,但正如您可以想象的那樣,這對我的需求並不是一個好的解決方案。

任何人都可以幫忙嗎?我創建了一個谷歌表,所以你可以很容易地瞭解我如何達到74.83%。 - >https://docs.google.com/spreadsheets/d/1Q-ydRSOdoGN2wVj7Z4XWglz-0U7pL3_xMeyGdRB2K84/edit?usp=sharing

+0

爲了使我們更容易爲您提供幫助,請提供有關您的數據的更多詳細信息。我沒有看到你如何從你提供的數據中獲得結果。請閱讀[如何提供示例](http:// stackoverflow。com/help/mcve) –

+0

添加了Google表單以幫助您瞭解@RonRosenfeld ;-) –

回答

1

對於Excel。你可以使用數組公式來實現這一點。確保使用Ctrl + Shift + Enter鍵,而不是打字公式

=SUMPRODUCT(IF(LEFT(A1:A5,14)="/brochures.htm",B1:B5,0),C1:C5)/SUM(IF(LEFT(A1:A5,14)="/brochures.htm",B1:B5,0)) 

我在Excel中測試了這個與你的樣本數據,並將其與74.83%出來後,只需輸入。我希望這有助於

對於谷歌牀單這將工作: =ArrayFormula(SUMPRODUCT(IF(LEFT(A1:A5,14)="/brochures.htm",B1:B5,0),C1:C5)/SUM(IF(LEFT(A1:A5,14)="/brochures.htm",B1:B5,0)))

或使用分號;而不是昏迷,如果你的本地設置來自美國不同。

+0

我剛剛嘗試過,但出現錯誤。 「使用Ctrl + Shift + Enter」是什麼意思:我應該在什麼時候使用該快捷方式?它是做什麼的? @ maxhob17 –

+0

在Excel中,輸入公式之後,而不是輸入公式,而是使用Ctrl + Shift + Enter,這將創建一個數組公式,而不是常規數組公式,而不是常規數組公式。 html的 – maxhob17

0

我相信,這個公式將有助於(只有谷歌表):

=QUERY(QUERY(QUERY({A3:C8};"select 'avg', Col2*Col3, Col2 where Col1 like '/brochures.htm%'");"select Col1, sum(Col2)/sum(Col3) group by Col1");"select Col2 Label Col2 ''")

首先查詢選擇Col2*Col3, Col2當條件滿足:Col1 like '/brochures.htm%'

第二個查詢 找到加權過濾表的平均值

第三個查詢 從第二查詢

僅獲取得到的數字在你的樣品: https://docs.google.com/spreadsheets/d/1Q-ydRSOdoGN2wVj7Z4XWglz-0U7pL3_xMeyGdRB2K84/edit#gid=1380706652


使用這個公式的好處是,你必須引用數據只有一次,還有更多setting tools with query公式。