2016-02-10 38 views
0

我有以下小表。我想要一個公式,它可以找出(B列的)累計總和小於某個閾值(tx)的值的數量。Excel - 沒有幫助者列的條目數低於累積閾值

我試圖

{=MIN((SUM(OFFSET(B1,0,0,A1:A17))>tx)*A1:A17)-1} 

但偏向似乎並沒有被arrayable這樣。顯然,這對於幫助者列來說是微不足道的,但出於某些原因是不可能的。

所以這裏的正確答案應該是10

TX = 0.8

A B 
1 0.112106465 
2 0.110981698 
3 0.091959216 
4 0.082163441 
5 0.073292066 
6 0.072407529 
7 0.071646289 
8 0.061646797 
9 0.06011448 
10 0.057566381 
11 0.050341978 
12 0.048227061 
13 0.043207335 
14 0.03940462 
15 0.012914194 
16 0.007603446 
17 0.004417003 

回答

2

你不是真的想找一個MIN;相反,它應該是MAX,符合您的條件。

在E7作爲標準(非陣列)式,

=AGGREGATE(14, 6, ROW(1:17)/(SUBTOTAL(9, OFFSET(B1, 0, 0, ROW(1:17), 1))<D7), 1) 

aggregate_max_less_than

+0

感謝。我試圖在超過最小索引時拉1,因此使用MIN()函數。你能解釋一下SUM()不做什麼SUBTOTAL()嗎?謝謝! – dashnick

+0

我不知道我能否準確地描述這裏的行爲差異。只需說[SUBTOTAL](https://support.office.com/en-us/article/SUBTOTAL-function-e27c301c-be9a-458b-9d12-b9a2ce3c62af)過程的範圍更加單獨或鎖定,而不是[SUM](https://support.office.com/en-us/article/sum-function-0761ed42-45aa-4267-a9fc-a88a058c1a57)功能。使用[評估公式](https://goo.gl/Vl25be)命令查看內部結果的差異。 – Jeeped

+1

我想我已經想通了:總之,給定一個二維數組(這是本例中OFFSET()函數的返回值),SUM()將簡單地返回一個標量,而SUBTOTAL(9 ,. ..)將返回一個行總和的1-D列數組(這是我們想要的)。 – dashnick

0

我更喜歡以下陣列式**由於其非揮發性:

=MATCH(TRUE,MMULT(0+(ROW(B1:B17)>=TRANSPOSE(ROW(B1:B17))),B1:B17)>=0.8,0)-1

Regards

0

最簡潔的方式來做到這一點,我發現是

=SUM(--(SUBTOTAL(9,OFFSET(B1,,,A1:A17))<0.8)) 

輸入作爲數組公式,或者等價地,

=SUMPRODUCT(--(SUBTOTAL(9,OFFSET(B1,,,A1:A17))<0.8)) 
+0

另一個選擇是'= MATCH(0.8,SUMIF(A1:A17,「<=」&A1:A17,B1:B17))'也是非易失性的 –

+0

好!利用排序順序。 – dashnick