如何汇总Google Spreadsheet中某个范围内的最大$ n $值?

时间:2014-12-03 03:28:50

标签: google-sheets

我有一个值列表,我需要将最大的10个值相加(连续)。我找到了这个,但我无法弄明白/让它发挥作用: https://productforums.google.com/forum/#!topic/docs/A5jiMqkRLYE

3 个答案:

答案 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], ...)

您的案例中有趣的是 nsort_column1is_ascending1。具体来说,您需要的公式是

sum(sortn(transpose(A3:O3), 10, 0, 1, false)))

一些注意事项:

  • 这假设您的数据在 A3:O3 中。您可以将其替换为您的范围。
  • transpose 根据 sortn 的要求将数据行转换为数据列。
  • 10n,表示您需要的值的数量。
  • 0display_ties_mode 的值。我们忽略了这个值。
  • 1sort_column1 的值,表示我们要对第一列进行排序(转置后)。
  • false 告诉 sortn 降序排序,从而选择最大值。默认选择最小的。