仅对一行(不是列)中的可见单元格求和?

Sum only visible cells in one ROW (not column)?

我有一行,我只想对可见单元格求和,我知道如果它是一列我可以使用小计(109,范围),但是这个似乎不适用于一行中的单元格。有人知道如何只对一行中可见的单元格求和吗?

Please click here for picture

您可以检查单元格的宽度。

=IF(CELL("width",A1)=0,"hidden","open")

然后您可以根据需要使用 IF 和 CELL 对单元格求和

=IF(CELL("width",A1)=0,0,A1)

更多信息如下: Ignoring a hidden column in an excel sum formula

如果 VBA 解决方案没问题,这将起作用:

Function sumVisible(rng As Range) As Double
Dim cel As Range
For Each cel In rng
    If cel.EntireColumn.Hidden = False Then
        sumVisible = sumVisible + cel.Value
    End If
Next cel
End Function

非常简单 - 只需检查范围内的单元格是否有隐藏列,如果可见,则求和。

=sumVisible(D2:M2) 就是您的使用方式。

您可以单独使用一个工作表公式来执行此操作,前提是 none 保持未隐藏的列的宽度小于或等于 0.5(在实践中,它会很窄在任何情况下都被隐藏起来)。

假设范围 A1:E1

=SUMPRODUCT(0+(CELL("width",OFFSET(A1,,N(INDEX(COLUMN(A1:E1)-MIN(COLUMN(A1:E1)),,))))>0),A1:E1)

遗憾的是,此公式不会自动更新,因为对范围内的 hiding/unhiding 列进行了更改。因此,每次在这方面进行更改时都需要 'recommit';一种方法是像编辑一样进入公式,然后按 ENTER 键重新提交。

可能感兴趣 is this post

此致