SkyGreen
Дата: Пятница, 08.12.2023, 07:27 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Доброго дня. Помогите решить вопрос. Есть несколько ячеек, которые объединены формулой с учетом запятых. Но если некоторые слова из ячеек удаляются - то лишние запятые остаются. Как при помощи формулы сделать так, чтобы при удалении слов из ячеек - лишние запятые не отображались?
Доброго дня. Помогите решить вопрос. Есть несколько ячеек, которые объединены формулой с учетом запятых. Но если некоторые слова из ячеек удаляются - то лишние запятые остаются. Как при помощи формулы сделать так, чтобы при удалении слов из ячеек - лишние запятые не отображались? SkyGreen
К сообщению приложен файл:
1678.xls
(35.5 Kb)
Ответить
Сообщение Доброго дня. Помогите решить вопрос. Есть несколько ячеек, которые объединены формулой с учетом запятых. Но если некоторые слова из ячеек удаляются - то лишние запятые остаются. Как при помощи формулы сделать так, чтобы при удалении слов из ячеек - лишние запятые не отображались? Автор - SkyGreen Дата добавления - 08.12.2023 в 07:27
bigor
Дата: Пятница, 08.12.2023, 10:21 |
Сообщение № 2
Группа: Проверенные
Ранг: Старожил
Сообщений: 1228
Репутация:
236
±
Замечаний:
0% ±
нет
SkyGreen , если офис поддерживает объединить(), то используйте эту функцию
SkyGreen , если офис поддерживает объединить(), то используйте эту функциюbigor
Ответить
Сообщение SkyGreen , если офис поддерживает объединить(), то используйте эту функциюАвтор - bigor Дата добавления - 08.12.2023 в 10:21
DrMini
Дата: Пятница, 08.12.2023, 14:12 |
Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1800
Репутация:
255
±
Замечаний:
0% ±
Excel LTSC 2024 RUS
Здравствуйте SkyGreen ,Как при помощи формулы сделать так, чтобы при удалении слов из ячеек - лишние запятые не отображались?
Вариант bigor , на порядок лучше и проще но если заморочиться и Excel старенький то можно так:Код
="Первый текст="&D3&ЕСЛИ(E3<>"";","&E3;"")&ЕСЛИ(F3<>"";","&F3;"")&ЕСЛИ(G3<>"";","&G3;"")&ЕСЛИ(H3<>"";","&H3;"")&ЕСЛИ(I3<>"";","&I3;"")&ЕСЛИ(J3<>"";","&J3;"")&ЕСЛИ(K3<>"";","&K3;"")&ЕСЛИ(L3<>"";","&L3;"")&ЕСЛИ(M3<>"";","&M3;"")&ЕСЛИ(N3<>"";","&N3;"")&"=Последний текст"
Здравствуйте SkyGreen ,Как при помощи формулы сделать так, чтобы при удалении слов из ячеек - лишние запятые не отображались?
Вариант bigor , на порядок лучше и проще но если заморочиться и Excel старенький то можно так:Код
="Первый текст="&D3&ЕСЛИ(E3<>"";","&E3;"")&ЕСЛИ(F3<>"";","&F3;"")&ЕСЛИ(G3<>"";","&G3;"")&ЕСЛИ(H3<>"";","&H3;"")&ЕСЛИ(I3<>"";","&I3;"")&ЕСЛИ(J3<>"";","&J3;"")&ЕСЛИ(K3<>"";","&K3;"")&ЕСЛИ(L3<>"";","&L3;"")&ЕСЛИ(M3<>"";","&M3;"")&ЕСЛИ(N3<>"";","&N3;"")&"=Последний текст"
DrMini
Сообщение отредактировал DrMini - Пятница, 08.12.2023, 14:17
Ответить
Сообщение Здравствуйте SkyGreen ,Как при помощи формулы сделать так, чтобы при удалении слов из ячеек - лишние запятые не отображались?
Вариант bigor , на порядок лучше и проще но если заморочиться и Excel старенький то можно так:Код
="Первый текст="&D3&ЕСЛИ(E3<>"";","&E3;"")&ЕСЛИ(F3<>"";","&F3;"")&ЕСЛИ(G3<>"";","&G3;"")&ЕСЛИ(H3<>"";","&H3;"")&ЕСЛИ(I3<>"";","&I3;"")&ЕСЛИ(J3<>"";","&J3;"")&ЕСЛИ(K3<>"";","&K3;"")&ЕСЛИ(L3<>"";","&L3;"")&ЕСЛИ(M3<>"";","&M3;"")&ЕСЛИ(N3<>"";","&N3;"")&"=Последний текст"
Автор - DrMini Дата добавления - 08.12.2023 в 14:12
bigor
Дата: Пятница, 08.12.2023, 14:24 |
Сообщение № 4
Группа: Проверенные
Ранг: Старожил
Сообщений: 1228
Репутация:
236
±
Замечаний:
0% ±
нет
Можно еще несколько раз завернуть в подставить(), но это будет длинно и неинтересно
Можно еще несколько раз завернуть в подставить(), но это будет длинно и неинтересно bigor
Ответить
Сообщение Можно еще несколько раз завернуть в подставить(), но это будет длинно и неинтересно Автор - bigor Дата добавления - 08.12.2023 в 14:24
Gustav
Дата: Пятница, 08.12.2023, 15:34 |
Сообщение № 5
Группа: Админы
Ранг: Участник клуба
Сообщений: 2769
Репутация:
1140
±
Замечаний:
±
начинал с Excel 4.0, видел 2.1
но это будет длинно и неинтересно
Почему? Зато прекрасно масштабируется добавлением в нужном количестве однотипных "уровней" слева и справа:Код
=ПОДСТАВИТЬ( ПОДСТАВИТЬ( ПОДСТАВИТЬ( D30; ",,";","); ",,";","); ",,";",")
Повторить аналогичное "многоуровневое" действие в версиях Excel 365/2021++ можно, просто задавая нужное количество уровней (в формуле ниже их аж 10 вместо трёх):Код
=REDUCE(D30; ПОСЛЕД(10); LAMBDA(tot;val;ПОДСТАВИТЬ(tot;",,";",")))
если офис поддерживает объединить()
Да, если поддерживает, то это самый экономичный вариант:Код
=ОБЪЕДИНИТЬ(",";1;ТЕКСТРАЗД(D30;","))
Ну, и для всех случаев, как я понял, надо еще в самом конце заменить пару символов ",=" на просто "=". Но это уже совсем простая операция подстановки. [p.s.]Кстати, возможно, это не столь очевидно, но три последовательно примененные (вложенные) функции ПОДСТАВИТЬ превращают 8 подряд идущих запятых в одну![/p.s.]8 - это 2 в степени 3 (т.е. в количестве этих ПОДСТАВИТЬ). Поэтому три вложенные функции ПОДСТАВИТЬ в формуле - это, думаю, более, чем достаточно для большинства практических случаев. Даже думать не хочу о том, сколько запятых превращает в одну версия формулы с 10-ю применениями (ПОСЛЕД(10)) функции ПОДСТАВИТЬ (ответ: 2^10 = 1024 )
но это будет длинно и неинтересно
Почему? Зато прекрасно масштабируется добавлением в нужном количестве однотипных "уровней" слева и справа:Код
=ПОДСТАВИТЬ( ПОДСТАВИТЬ( ПОДСТАВИТЬ( D30; ",,";","); ",,";","); ",,";",")
Повторить аналогичное "многоуровневое" действие в версиях Excel 365/2021++ можно, просто задавая нужное количество уровней (в формуле ниже их аж 10 вместо трёх):Код
=REDUCE(D30; ПОСЛЕД(10); LAMBDA(tot;val;ПОДСТАВИТЬ(tot;",,";",")))
если офис поддерживает объединить()
Да, если поддерживает, то это самый экономичный вариант:Код
=ОБЪЕДИНИТЬ(",";1;ТЕКСТРАЗД(D30;","))
Ну, и для всех случаев, как я понял, надо еще в самом конце заменить пару символов ",=" на просто "=". Но это уже совсем простая операция подстановки. [p.s.]Кстати, возможно, это не столь очевидно, но три последовательно примененные (вложенные) функции ПОДСТАВИТЬ превращают 8 подряд идущих запятых в одну![/p.s.]8 - это 2 в степени 3 (т.е. в количестве этих ПОДСТАВИТЬ). Поэтому три вложенные функции ПОДСТАВИТЬ в формуле - это, думаю, более, чем достаточно для большинства практических случаев. Даже думать не хочу о том, сколько запятых превращает в одну версия формулы с 10-ю применениями (ПОСЛЕД(10)) функции ПОДСТАВИТЬ (ответ: 2^10 = 1024 )Gustav
МОИ: Ник , Tip box: 41001663842605
Сообщение отредактировал Gustav - Пятница, 08.12.2023, 16:29
Ответить
Сообщение но это будет длинно и неинтересно
Почему? Зато прекрасно масштабируется добавлением в нужном количестве однотипных "уровней" слева и справа:Код
=ПОДСТАВИТЬ( ПОДСТАВИТЬ( ПОДСТАВИТЬ( D30; ",,";","); ",,";","); ",,";",")
Повторить аналогичное "многоуровневое" действие в версиях Excel 365/2021++ можно, просто задавая нужное количество уровней (в формуле ниже их аж 10 вместо трёх):Код
=REDUCE(D30; ПОСЛЕД(10); LAMBDA(tot;val;ПОДСТАВИТЬ(tot;",,";",")))
если офис поддерживает объединить()
Да, если поддерживает, то это самый экономичный вариант:Код
=ОБЪЕДИНИТЬ(",";1;ТЕКСТРАЗД(D30;","))
Ну, и для всех случаев, как я понял, надо еще в самом конце заменить пару символов ",=" на просто "=". Но это уже совсем простая операция подстановки. [p.s.]Кстати, возможно, это не столь очевидно, но три последовательно примененные (вложенные) функции ПОДСТАВИТЬ превращают 8 подряд идущих запятых в одну![/p.s.]8 - это 2 в степени 3 (т.е. в количестве этих ПОДСТАВИТЬ). Поэтому три вложенные функции ПОДСТАВИТЬ в формуле - это, думаю, более, чем достаточно для большинства практических случаев. Даже думать не хочу о том, сколько запятых превращает в одну версия формулы с 10-ю применениями (ПОСЛЕД(10)) функции ПОДСТАВИТЬ (ответ: 2^10 = 1024 )Автор - Gustav Дата добавления - 08.12.2023 в 15:34
SkyGreen
Дата: Пятница, 08.12.2023, 17:38 |
Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 83
Репутация:
0
±
Замечаний:
20% ±
Excel 2016
Всем спасибо за ответы
Ответить
Сообщение Всем спасибо за ответы Автор - SkyGreen Дата добавления - 08.12.2023 в 17:38