+-----+-----+-----+-----+-----+-----+-----+-----+
| | A | B | C | D | E | F | G |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 1 | 5 | 6 | 5 | 9 | 4 | 8 | 3 |
+-----+-----+-----+-----+-----+-----+-----+-----+
考虑上面的表格。我正在寻找在 Excel/Calc 中获取前 5 个数字的方法。
到目前为止我能想到的唯一方法是使用 5 个不同的 LARGE 函数
=LARGE(A1:G1, 1)
=LARGE(A1:G1, 2)
=LARGE(A1:G1, 3)
=LARGE(A1:G1, 4)
=LARGE(A1:G1, 5)
这将返回五个最高的数字。我想知道是否有办法使用单个公式来执行此操作并返回:
9, 8, 6, 5, 5
进入单个细胞?
还有一个问题,除了打印出来之外,我还想对不同单元格中的数字进行求和。
答案1
您可以将 TEXTJOIN() 用作数组公式。
=TEXTJOIN(",",TRUE,LARGE(A1:G1,ROW($1:$5)))
当ROW($1:$5)
作为数组输入时,返回{1,2,3,4,5}
将前五个最大数字返回到TEXTJOIN的数组。
退出编辑模式时,使用 Ctrl-Shift-Enter 而不是 Enter 来确认公式,从而强制数组。
TEXTJOIN 可在 Office 365 Excel 中使用。
为了得到总和,我们可以在 SUMPRODUCT 中使用相同的 LARGE:
=SUMPRODUCT(LARGE(A1:G1,ROW($1:$5)))
对于旧版本,您只能使用:
=LARGE(A1:G1, 1) & "," & LARGE(A1:G1, 2) & "," & LARGE(A1:G1, 3) & "," & LARGE(A1:G1, 4) & "," & LARGE(A1:G1, 5)
或辅助细胞。