![Excel: Получение пяти верхних значений из строки в списке, разделенном запятыми](https://rvso.com/image/1558454/Excel%3A%20%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5%20%D0%BF%D1%8F%D1%82%D0%B8%20%D0%B2%D0%B5%D1%80%D1%85%D0%BD%D0%B8%D1%85%20%D0%B7%D0%BD%D0%B0%D1%87%D0%B5%D0%BD%D0%B8%D0%B9%20%D0%B8%D0%B7%20%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8%20%D0%B2%20%D1%81%D0%BF%D0%B8%D1%81%D0%BA%D0%B5%2C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC%20%D0%B7%D0%B0%D0%BF%D1%8F%D1%82%D1%8B%D0%BC%D0%B8.png)
+-----+-----+-----+-----+-----+-----+-----+-----+
| | A | B | C | D | E | F | G |
+-----+-----+-----+-----+-----+-----+-----+-----+
| 1 | 5 | 6 | 5 | 9 | 4 | 8 | 3 |
+-----+-----+-----+-----+-----+-----+-----+-----+
Учитывая приведенный выше лист. Я ищу способ в Excel/Calc получить первые 5 чисел.
Единственный способ, который я могу придумать, — это использовать 5 разных БОЛЬШИХ функций.
=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.
Чтобы получить сумму, мы можем использовать ту же функцию LARGE внутри SUMPRODUCT:
=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)
Или вспомогательные клетки.