Excel:将一行中的前五个值放入逗号分隔的列表中

Excel:将一行中的前五个值放入逗号分隔的列表中
+-----+-----+-----+-----+-----+-----+-----+-----+
|     | 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) 

或辅助细胞。

相关内容