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) 

或輔助細胞。

相關內容