我知道这里有类似的答案: Ignoring a hidden column in an excel sum formula
......它是一个很好的,但它对我来说并不理想。我真的只需要一个可以动态应用的简单函数。
有没有办法以与AGGREGATE
函数类似的方式执行此操作?
AGGREGATE
几乎对我有用,除非它烦人地忽略隐藏的行但不忽略列!
例如:
我的工作表的值为A5:A10
。
如果我将A11
的公式设置为=SUM(A5:A10)
,我会得到预期的金额,无论列是否隐藏。
如果我使用=AGGREGATE(9,5,A5:A10)
,结果是相同的,但如果我跨行而不是列执行此操作,则计算中将忽略隐藏的行。
是否有一种简单的方法可以执行此操作,或者是检查每列宽度的唯一方法,如提供的答案所示?
答案 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