【问题标题】:Ignore hidden columns in SUM(x:y), like AGGREGATE can ignore hidden rows忽略 SUM(x:y) 中的隐藏列,如 AGGREGATE 可以忽略隐藏行
【发布时间】:2015-03-03 20:05:58
【问题描述】:

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

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

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

例如:

我有一个包含A5:A10 值的工作表。

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

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

是否有一种简单的方法可以做到这一点,或者是检查每列宽度的唯一方法,如提供的答案所示?

【问题讨论】:

    标签: excel excel-formula excel-2010


    【解决方案1】:

    您可以在标题上方/下方添加一行并仅填充 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+Enter保存)。然后,您可以像往常一样将公式复制到您的列表中。

    【讨论】:

    • 糟糕...抱歉太快了
    • @bukko 使用数据选择器的不同尝试
    【解决方案2】:

    您可以遍历列并仅在未隐藏的列中添加值。

    看起来像这样:

    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
    

    【讨论】:

      猜你喜欢
      • 2015-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-06
      • 1970-01-01
      相关资源
      最近更新 更多