Страницы: 1
RSS
Как удалить лишние запятые в ячейках?
 
Всем доброго дня!
1) Как удалить лишние запятые, в начале, в конце и середине ячейки?
2) Можно ли это сделать в надстройке PLEX?
3) Можно ли для этого воспользоваться регулярными выражениями?
Файл примера прилагаю!
Заранее спасибо!
Изменено: efendi - 21.06.2022 11:26:52
 
вот попытка PQ
 
Вот формула, у меня офис 2019 (точно не знаю когда появилась ОБЪЕДИНИТЬ(), ФИЛЬТР.XML() - 2016)
Код
=ОБЪЕДИНИТЬ(", ";ИСТИНА;ЕСЛИОШИБКА(ФИЛЬТР.XML("<t><s>"&ПОДСТАВИТЬ(A2;",";"</s><s>")&"</s></t>";"//s");""))
Изменено: Msi2102 - 21.06.2022 11:59:10
 
Еще можно несложной UDF:
Код
Function DelWrongComma(s$)
    Dim asp, x, ss$, sres$
    asp = Split(s, ",")
    For Each x In asp
        ss = Trim(x)
        If Len(ss) Then
            If Len(sres) Then
                sres = sres & ", " & ss
            Else
                sres = ss
            End If
        End If
    Next
    DelWrongComma = sres
End Function

в ячейку вводиться элементарно:
Код
=DelWrongComma(A2)
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
написал:
=ОБЪЕДИНИТЬ(", ";ИСТИНА;ЕСЛИОШИБКА(ФИЛЬТР.XML("  "&ПОДСТАВИТЬ(A2;",";"  ")&"  ";"//s");""))
Да, офис 2019.
Спасибо, работает формула, но съедает нужные данные.
Формула нуждается в корректировке.
 
Цитата
efendi написал:
но съедает нужные данные
У меня ничего не съела
 
Дмитрий(The_Prist) Щербаков, взял на вооружение это способ избавления от двойных  :idea:
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Msi2102,
Цитата
написал:
Цитата
efendi написал:
но съедает нужные данные
У меня ничего не съела
Не удаётся корректно скопировать вашу формулу.
Что стоит в конце после двух скобок?
Проверьте пожалуйста: правильно или нет?
Изменено: efendi - 21.06.2022 12:18:15
 
Цитата
efendi написал:
Не удаётся корректно скопировать вашу формулу
Откройте приложенный файл и скопируйте оттуда.
Редактор начинает понимать теги в формуле как свои теги HTML, поэтому берите из файла
Изменено: Msi2102 - 21.06.2022 12:26:11
 
Msi2102, оказывается это формула массива! Так бы сразу и сказали.)))
Жму руку, большое спасибо за помощь!
 
Цитата
efendi написал:
оказывается это формула массива!
Так у меня в 2019 уже не нужно вводить как массивную
 
Цитата
efendi: это формула массива
скорее всего, это формула просто содержит функции из более новой версии Excel, которых нет в вашей. Преобразование в массивную выполнено, чтобы смогла что-то отобразить. Обновляться, скорее всего, не будет.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Msi2102, а у меня в 2019 надо вводить. ХЗ, может в настройках нужно что-то изменить.
 
Цитата
efendi написал:
а у меня в 2019 надо вводить. ХЗ, может в настройках нужно что-то изменить
динамические массивы поддерживаются только в офис 365(по подписке) или начиная с 2021 Excel. У Вас 2019 и нет подписки - поэтому надо вводить тремя клавишами.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, понял, спасибо за инфу!
Изменено: efendi - 21.06.2022 13:38:13
 
Для коллекции - еще один трюк. Проверял на примерах из сообщения #1.  :)

Код
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ("|"&ПОДСТАВИТЬ(СЖПРОБЕЛЫ(A2);" ,";",")&"||"; ","; ",|"); "|,";);",||";);"|";))


Вместо символа | можно взять любой символ юникода, который заведомо отсутствует в ячейках с текстами для обработки.
Изменено: sokol92 - 21.06.2022 17:16:36
Владимир
 
Да, тоже отлично работает, очень благодарю!
Изменено: efendi - 21.06.2022 17:22:57
 
Успехов! Уберите, пожалуйста, цитату в своем сообщении.
Владимир
Страницы: 1
Наверх