2

一位同事在“X4:X38”中有一个值数组。由于这些都在一个可以过滤的表中,她想使用小计函数对它们求和 - 但希望首先将所有值四舍五入。

={SUM(ROUNDUP(X4:X38,0))}

效果很好。然而,

{SUBTOTAL(9,ROUNDUP(X4:X38,0))}

生成通用的“您键入的公式包含错误”消息。我尝试了各种明显的东西,比如在“综述”部分周围加上额外的括号等。

任何帮助,将不胜感激。

4

2 回答 2

1

可以使用以下公式在没有帮助列的情况下执行此操作:

=SUMPRODUCT(SUBTOTAL(2,OFFSET(X4:X38,ROW(X4:X38)-MIN(ROW(X4:X38)),0,1)),ROUNDUP(X4:X38,0))

OFFSET有效地将范围分解为传递给SUBTOTAL函数的单个单元格,并根据每个单元格在过滤后是否可见返回一个 1 或 0 值的数组 - 该数组乘以四舍五入的值以给出总和四舍五入的可见值。

另一种方法是使用AGGREGATE这样的功能

=SUMPRODUCT(ROUNDUP(AGGREGATE(15,7,X4:X38,ROW(INDIRECT("1:"&SUBTOTAL(2,X4:X38)))),0))

鉴于复杂性,辅助列可能是更可取的方法

于 2017-11-08T16:07:52.710 回答
0

经过调查,如果没有辅助列,这似乎是不可能的。

添加一个帮助列,将列中的各个值四舍五入X,例如在单元格中键入以下公式Y4并向下拖动到Y38

= ROUNDUP(X4,0)

然后代替

= SUBTOTAL(9,ROUNDUP(X4:X38,0))

利用:

= SUBTOTAL(9,Y4:Y38)

然后,如有必要,您可以隐藏帮助列。当然,辅助列不一定是 column Y,它可以是任何列,例如数据结束位置右侧的一列。

于 2017-11-08T15:56:00.227 回答