我有一个值列表,我需要将最大的10个值相加(连续)。我找到了这个,但我无法弄明白/让它发挥作用: https://productforums.google.com/forum/#!topic/docs/A5jiMqkRLYE
答案 0 :(得分:5)
让我们假设您要总结E2范围内的10个最高值:EP 然后尝试:
=sumif(E2:P2, ">="&large(E2:P2,10))
看看是否有效?
编辑:也许这是一个更好的选择?这只会对array_constrain输出的10进行求和。只会在新的Google工作表中使用..=sum(array_constrain(sort(transpose($A3:$O3), 1, 0), 10 ,1))
你能看出这是否有效吗?
答案 1 :(得分:0)
这也适用于旧的Google表格:
sum(查询(排序(转置($ A3:$ O3),1,false),“select * limit 10”))
Transpose将数据放入列中,按降序对数据进行排序,然后查询前10个数字。
不幸的是,在查询语句中用“order by”替换sort不起作用,因为你不能引用transpose返回的范围中的列。
答案 2 :(得分:0)
sortn
函数似乎正是您所需要的。
从上面链接的文档中,它“[r] 在执行排序后返回数据集中的前 n 个项目。”数据集不必排序。它需要一堆可选参数,因为它可以对多列进行排序。
SORTN(range, [n], [display_ties_mode], [sort_column1, is_ascending1], ...)
您的案例中有趣的是 n
、sort_column1
和 is_ascending1
。具体来说,您需要的公式是
sum(sortn(transpose(A3:O3), 10, 0, 1, false)))
一些注意事项:
transpose
根据 sortn
的要求将数据行转换为数据列。10
是 n
,表示您需要的值的数量。0
是 display_ties_mode
的值。我们忽略了这个值。1
是 sort_column1
的值,表示我们要对第一列进行排序(转置后)。false
告诉 sortn
降序排序,从而选择最大值。默认选择最小的。