Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Преобразование последовательно записанных чисел в другой вид - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Преобразование последовательно записанных чисел в другой вид
zingeroud Дата: Понедельник, 16.10.2023, 11:00 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Добрый имею последовательно (хаотично, не по возрастанию) записанные чиста в одной ячейке через запятую вида : [ 3,2,1,5,7,8,9,10 ]
Необходимо преобразовать в запись вида по возрастанию: [ '1-3', '5', '7', '8-10' ].
В файле исходные данные в колонке L.
Буду благодарен за помощь.
Случайно создал в разделе: Вопросы по Excel для Mac, прошу перенести в раздел Вопросы по Excel.
К сообщению приложен файл: her_stat.xlsx (36.0 Kb)


Сообщение отредактировал zingeroud - Понедельник, 16.10.2023, 11:04
 
Ответить
СообщениеДобрый имею последовательно (хаотично, не по возрастанию) записанные чиста в одной ячейке через запятую вида : [ 3,2,1,5,7,8,9,10 ]
Необходимо преобразовать в запись вида по возрастанию: [ '1-3', '5', '7', '8-10' ].
В файле исходные данные в колонке L.
Буду благодарен за помощь.
Случайно создал в разделе: Вопросы по Excel для Mac, прошу перенести в раздел Вопросы по Excel.

Автор - zingeroud
Дата добавления - 16.10.2023 в 11:00
AlienSphinx Дата: Пятница, 20.10.2023, 08:02 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация: 6 ±
Замечаний: 0% ±

Вот такой вариант PQ, например.
[vba]
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    f = (txt as text) =>
        [tbl = Table.FromList(Text.Split(txt, ","), (x) => List.Transform({x}, Number.From), type table [n = number]),
        sort = Table.Sort(tbl, "n"),
        idx = Table.AddIndexColumn(sort, "idx"),
        fx_lst = (lst as list) =>
            try Text.From(List.Single(lst)) otherwise Text.From(List.Min(lst)) & "-" & Text.From(List.Max(lst)),
        group =
            Table.Group(
                idx, {"n", "idx"}, {"g", each fx_lst(_[n])}, GroupKind.Local,
                (s, c) => Number.From( (c[n] - s[n]) <> (c[idx] - s[idx]))
            ),
        out = Text.Combine(group[g], ", ")][out],
    z = List.Transform(Source[NUMBER_IND], f)
in
    z
[/vba]
Вообще, в ваших данных все числа идут подряд. Кстати, на "планете" решали эту задачу несколько раз и PQ и VBA (про формулы не скажу - не помню).
К сообщению приложен файл: 7376097.xlsx (45.4 Kb)
 
Ответить
СообщениеВот такой вариант PQ, например.
[vba]
Код
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    f = (txt as text) =>
        [tbl = Table.FromList(Text.Split(txt, ","), (x) => List.Transform({x}, Number.From), type table [n = number]),
        sort = Table.Sort(tbl, "n"),
        idx = Table.AddIndexColumn(sort, "idx"),
        fx_lst = (lst as list) =>
            try Text.From(List.Single(lst)) otherwise Text.From(List.Min(lst)) & "-" & Text.From(List.Max(lst)),
        group =
            Table.Group(
                idx, {"n", "idx"}, {"g", each fx_lst(_[n])}, GroupKind.Local,
                (s, c) => Number.From( (c[n] - s[n]) <> (c[idx] - s[idx]))
            ),
        out = Text.Combine(group[g], ", ")][out],
    z = List.Transform(Source[NUMBER_IND], f)
in
    z
[/vba]
Вообще, в ваших данных все числа идут подряд. Кстати, на "планете" решали эту задачу несколько раз и PQ и VBA (про формулы не скажу - не помню).

Автор - AlienSphinx
Дата добавления - 20.10.2023 в 08:02
Pelena Дата: Пятница, 20.10.2023, 08:45 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 19211
Репутация: 4427 ±
Замечаний: ±

Excel 365 & Mac Excel


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеЕсть ещё Готовое решение Получение интервалов из числовой последовательности

Автор - Pelena
Дата добавления - 20.10.2023 в 08:45
zingeroud Дата: Понедельник, 23.10.2023, 16:35 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 7
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Всем спасибо!
 
Ответить
СообщениеВсем спасибо!

Автор - zingeroud
Дата добавления - 23.10.2023 в 16:35
jakim Дата: Среда, 25.10.2023, 08:16 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1202
Репутация: 313 ±
Замечаний: 0% ±

Excel 2010
Power Query (кнопочный вариант)
К сообщению приложен файл: 0602280.xlsx (46.1 Kb)
 
Ответить
Сообщение
Power Query (кнопочный вариант)

Автор - jakim
Дата добавления - 25.10.2023 в 08:16
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!