Сортируем данные внутри текстовой строки одной формулой
2025-01-30 10:39
У нас есть текст (в одной ячейке) вида "Лемур 87,Штрудель 47,Вишенка 92". Нам надо получить "Вишенка 92,Лемур 87,Штрудель 47", то есть отсортировать и снова получить одно текстовое значение, а не таблицу.
С новыми функциями все это можно проделать формулой. Сначала превратим текст в таблицу с помощью ТЕКСТРАЗД / TEXTSPLIT — для этого зададим два разделителя, запятую для строк и пробел для столбцов: =ТЕКСТРАЗД(A1;" ";",")
Потом отсортируем с помощью функции СОРТ / SORT: =СОРТ(ТЕКСТРАЗД(A1;" ";",");2;-1)
Полученную таблицу, уже упорядоченную, обработаем функцией BYROW — значения из каждой строки будем объединять функцией ОБЪЕДИНИТЬ / TEXTJOIN: =BYROW(СОРТ(ТЕКСТРАЗД(A1;" ";",");2;-1);LAMBDA(стр; ОБЪЕДИНИТЬ(" ";;стр)))
Получим уже одномерный массив (столбец). И его объединим в одну текстовую строку с помощью еще одной функции ОБЪЕДИНИТЬ, только теперь уже с другим разделителем (запятой): =ОБЪЕДИНИТЬ(",";;BYROW(СОРТ(ТЕКСТРАЗД(A1;" ";",");2;-1);LAMBDA(стр; ОБЪЕДИНИТЬ(" ";;стр))))