2015-03-03 107 views
0

我知道有一個類似的答案在這裏: Ignoring a hidden column in an excel sum formula忽略隱藏列SUM(X:Y),如骨料可以忽略隱藏的行

...這是一個很好的,但它是不理想爲了我。我真的只需要一個可以動態應用的簡單函數。

有沒有辦法以類似於AGGREGATE函數的方式來做到這一點? AGGREGATE幾乎適用於我,除了惱人地忽略隱藏的行而不是列!

例如:

我有在A5:A10值的工作表。

如果我將A11的公式設置爲=SUM(A5:A10)我得到預期的金額,無論列是否隱藏。

如果我使用=AGGREGATE(9,5,A5:A10),結果是相同的,但是如果我在行而不是列上執行此操作,隱藏行將在計算中被忽略。

是否有一個簡單的方法來做到這一點,或者是檢查每列的寬度的唯一方法,就像在提供的答案中一樣?

回答

0

您可以在標題的上方/下方添加一行,然後用0或1填充,然後使用數組公式將每行水平相加。

A   B C D E F 
1 Selector 1 1 0 0 
2 Data  1 2 3 4 3 

公式在F2:{=SUM(B2:E2*B$1:E$1)}(沒有大括號中輸入,按Ctrl鍵++輸入保存)。然後,您可以像往常一樣將公式複製到列表中。

+0

是否列的工作嗎? – CompanyDroneFromSector7G 2015-03-03 11:45:04

+0

剛剛嘗試過。隱藏的列不會被忽略:( – CompanyDroneFromSector7G 2015-03-03 11:47:16

+0

糟糕...對不起太快了 – MikeD 2015-03-03 11:47:46

0

您可以遍歷列並僅添加未隱藏的列中的值。

它會是這樣的:

Dim yourRow As Integer 
Dim rowSum As Integer 
yourRow = X 
rowSum = 0 

For i = 1 to NumberOfColumns 

If Sheets(1).Columns(i).Hidden = False Then 

rowSum = rowSum + Sheets(1).Cells(yourRow, i) 

Next i