仅对一行(不是列)中的可见单元格求和?
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。
此致
我有一行,我只想对可见单元格求和,我知道如果它是一列我可以使用小计(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。
此致