+-----+-----+-----+-----+-----+-----+-----+-----+
| | 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)
或輔助細胞。