2013-07-18 11 views
1

是否有Excel函數來計算包含隱藏行的單元格範圍的總和(由用戶使用自動過濾器進行過濾)並滿足特定條件?在跳過隱藏行時滿足條件的一系列單元格之和的函數?

例如,請考慮以下表:

 
    | A   | B  | 
1 | numbers  | country| 
2 | 1   | X  | 
3 | 2   | X  | 
4 | 3   | Y  | 
5 | 4   | X  | 

應用自動過濾器只顯示X國,這導致了以下內容,其中第4行被隱藏:

 
    | A   | B  | 
1 | numbers  | country| 
2 | 1   | X  | 
3 | 2   | X  | 
5 | 4   | X  | 

我想計算列A中大於1的數字總和,同時考慮用戶的自動過濾器。

我已經小計陣列濾波器結合起來,嘗試了以下解決方案:

=SUBTOTAL(9;(A2:A5>=2)*(A2:A5)) 

這可能不會因爲參數類型不匹配的工作。我不知道如何將數組轉換爲引用。

+0

由於過濾反正我懷疑我會過濾掉可樂中'1's然後使用'= SUBTOTAL(109; A1:A6)'(目前的選擇似乎太精細)。 – pnuts

+0

這個例子可能確實看起來有些抽象,但跳過'1'的附加過濾器不一定要由用戶指定,但由於計算原因必須跳過。因此,我需要一個機制來處理用戶定義的過濾器(使用自動過濾器)和我自己的過濾器。我可以創建另一個列,其中只包含我想總結的數字,但創建額外的列是我希望避免的。 –

回答

0

基於mehow他的回答我創建了這個函數,它在計算總和之前評估一個條件。

Function SumVisibleWithCondition(MyRange As Range, Condition As String) As Integer 
    Dim sum As Long 
    Dim c As Range 
    For Each c In MyRange 
     If Not c.EntireRow.Hidden Then 
      If Evaluate("" & c.Value & Condition) Then 
       sum = sum + c.Value 
      End If 
     End If 
    Next c 
    SumVisibleWithCondition = sum 
    End Function 
+0

雖然正確,但此snippit並未涵蓋所有數據類型和案例。 –

0

您可以使用方法做到這一點建議here

對於示例公式將是

=SUMPRODUCT(SUBTOTAL(9;OFFSET(A2;ROW(A2:A5)-ROW(A2);0))*(A2:A5>=2))

相關問題