2017-03-15 87 views
0

我想在Excel中設置一個智能條件求和。但是,可用的功能範圍似乎並不能提供我正在尋找的功能。SUMIF最小似乎條件

我有兩列數字。在A中,我有我們所說的縮進級別。在B中,我有價值。

對於任何具有子縮進的特定行,我想使用B中的公式計算B中從下一行到下一個實例的值的和A值如果對應的值在A是迄今爲止的最小數量

例如

row | A | B | calc'd 
-------------------- 
    1 | 0 | 9 | y 
    2 | 2 | 2 | 
    3 | 1 | 7 | y 
    4 | 2 | 3 | 
    5 | 2 | 4 | 
    6 | 0 | 5 | y 
    7 | 1 | 5 | 

所以,對第1行,則總和範圍將行2至5這部分,我可以用做OFFSET MATCH

SUMIF應包含第2行,因爲A2是A2:A2中的最小值。

同樣,它應該包含第3行,因爲A3是A2:A3中的最小值。

但是它不應該在總和中包含第4或第5行,因爲它們的A列值不是最小的「迄今」。 (這些值已經「總結」到第3行中。)

如何使用此「最小爲止」條件創建距離sumif?

+0

正如你試圖總結你放置相同值的同一列,最好的選擇是vba。公式不會是謹慎的,因爲您需要將公式放在那些需要求和的空間中,而將那些不需要求和的值留給那些空間。 –

+0

是的,我正在嘗試做同一列中的源值和總和。因爲在上面的例子中,第1行=第2行+第3行,第3行=第4行+第5行。有效條件是「如果col A值最小_so far_」則爲sum。如果我不這樣做,我需要一個更復雜的公式。如果我不允許使用A2的雙縮進,我可以很容易地做到這一點,所以B1只會將indent-1中的項加起來。但是這對於真實世界的用戶來說不夠靈活。 – Rick

回答

0

我找到了解決辦法。並不像我想要的那麼幹淨,但它的確有訣竅:

向列C中添加一個幫助器值,這是「父行」將會加入的值。

例如,C5 {=MAX(ROW($9:5)*(A$1:A4<A5))}(注意:數組函數)。

爲B1 =SUMIF(C2:Cn,"="&ROW(),B2:Bn)(其中n是工作範圍的上限)做出最終等式。

正如這裏所寫的,插入行會混淆事物,但它可以全部用OFFSET擴展爲行可插入性。