忽略SUM(x:y)中的隐藏列,就像AGGREGATE一样,可以忽略隐藏的行

时间:2015-03-03 11:35:38

标签: excel excel-formula excel-2010

我知道这里有类似的答案: Ignoring a hidden column in an excel sum formula

......它是一个很好的,但它对我来说并不理想。我真的只需要一个可以动态应用的简单函数。

有没有办法以与AGGREGATE函数类似的方式执行此操作? AGGREGATE几乎对我有用,除非它烦人地忽略隐藏的行但不忽略列!

例如:

我的工作表的值为A5:A10

如果我将A11的公式设置为=SUM(A5:A10),我会得到预期的金额,无论列是否隐藏。

如果我使用=AGGREGATE(9,5,A5:A10),结果是相同的,但如果我跨行而不是列执行此操作,则计算中将忽略隐藏的行。

是否有一种简单的方法可以执行此操作,或者是检查每列宽度的唯一方法,如提供的答案所示?

2 个答案:

答案 0 :(得分: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 + Shift + 输入进行保存)。然后,您可以像往常一样将公式复制到列表中。

答案 1 :(得分: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