powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / аналог СЖПРОБЕЛЫ
25 сообщений из 42, страница 1 из 2
аналог СЖПРОБЕЛЫ
    #35006685
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хорошая функция СЖПРОБЕЛЫ, но хотелось бы иметь инструмент (формулу), который бы позволял делать то же самое, но для заданного символа
никому не приходилось реализовывать подобное?
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35006689
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilKхорошая функция СЖПРОБЕЛЫ, но хотелось бы иметь инструмент (формулу), который бы позволял делать то же самое, но для заданного символа
никому не приходилось реализовывать подобное?

ПОДСТАВИТЬ()
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35006839
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Допустим, у меня, строка (текст в ячейке):
г./Москва ///Россия//Московская обл.//

Допустим, мне нужно заменить все "/" (и любое количество их посторов) на " " (пробел). Как с помощью ПОДСТАВИТЬ из этой строки получить:

г. Москва Россия Московская обл.

??
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35006920
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(A1;"/";" "))
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35006990
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин...
неправильно объяснил..

из
г./Москва ///Россия//Московская обл.//

должно получаться:

г./Москва /Россия/Московская обл./

...
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35007350
Taranaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"//";"/");"//";"/")
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35007400
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное, чтобы не зависеть от кол-ва повторенных символов, лучше так:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;" ";"|");"/";" "));" ";"/");"|";" ")&"/"

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35007495
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL)Наверное, чтобы не зависеть от кол-ва повторенных символов, лучше так:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;" ";"|");"/";" "));" ";"/");"|";" ")&"/"

KL
[MVP - Microsoft Excel]

То же что-то подобное хотел, но не догадался временно пробелы на чё нибуть заменить
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35007549
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что такое "|" ?...
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35007560
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilKа что такое "|" ?...

Это любой символ, который заведомо не встречается в исходном тексте.
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35007637
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL) DaniilKа что такое "|" ?...

Это любой символ, который заведомо не встречается в исходном тексте.
Например
qwertyuiopasdfghjklzxcvbnm
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35007640
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35007848
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KL (XL) DaniilKа что такое "|" ?...

Это любой символ, который заведомо не встречается в исходном тексте.

понял, спасибо
а зачем в конце & ?
это именно для этого частного случая?
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35007903
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilKа зачем в конце & ?
это именно для этого частного случая?

Конечно, решение основано на твоем примере. Слэш на конце или должен быть или не должен. Или возможны еще варианты?
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35007977
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подразумевалось, что в определенной ячейке задаешь символ, а дальше формула чтобы действовала полностью по аналогии с механизмом действия СЖПРОБЕЛЫ, то есть убирала бы все повторяющиеся сочетания заданного символа, оставляя лишь один
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35008096
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СЖПРОБЕЛЫ действует не так, как ты думаешь :-)

Эта функция делает следующее:
1) уничтожает все пробелы в начале строки
2) уничтожает все пробелы в конце строки
3) заменяет все остальные скопления пробелов на один пробел

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35008478
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот мой ответ:

"буду знать...
я тут у одного человека в аське пытался это спросить, его не было, а вот сейчас он прислал ответ (он раньше общался тоже на форумах об Эксель, ник его @Nik):

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A5;ПОВТОР(B4;5);B4);ПОВТОР(B4;3);B4);ПОВТОР(B4;2);B4);ПОВТОР(B4;2);B4)

текст в A5, в B4 символ или символы, которые хотим сократить"
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35008615
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilKвот мой ответ:

"буду знать...
я тут у одного человека в аське пытался это спросить, его не было, а вот сейчас он прислал ответ (он раньше общался тоже на форумах об Эксель, ник его @Nik):

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A5;ПОВТОР(B4;5);B4);ПОВТОР(B4;3);B4);ПОВТОР(B4;2);B4);ПОВТОР(B4;2);B4)

текст в A5, в B4 символ или символы, которые хотим сократить"Дело хозяйское, но имей ввиду:

1) формула моего знакомого @Nik не справляется со след. текстом:
г./Москва //Россия///////////////////////////////////////////////Московская обл.//

2) если все-таки нужен функционал отличный от СЖПРОБЕЛЫ, то более универсальным решением будет:
=ПОВТОР(B4;(ЛЕВСИМВ(A5)=B4))&ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A5;" ";"|");B4;" "));" ";B4);"|";" ")&ПОВТОР(B4;(ПРАВСИМВ(A5)=B4))

;-)
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35008621
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
или еще короче:

=ЛЕВСИМВ(A5)&ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(A5;2;ДЛСТР(A5)-2);" ";"|");B4;" "));" ";B4);"|";" ")&ПРАВСИМВ(A5)

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35008759
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо большое!
:)
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35329706
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В продолжении темы, так сказать..
А реально ли из текста "тексто/вы?й\\те кст" с пом. формулы получить текст: "тексто_вы_й__те_кст" ?
пробовал по наивности формулу: =ПОДСТАВИТЬ(B2;{"\";" ";"/";"?";"*";"[";"]"};"_"), но она чего-то не то делает ..
:(
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35329708
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть хотелось бы заменить все перечисленные символы на "_"
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35329885
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DaniilKВ продолжении темы, так сказать..
А реально ли из текста "тексто/вы?й\\те кст" с пом. формулы получить текст: "тексто_вы_й__те_кст" ?
пробовал по наивности формулу: =ПОДСТАВИТЬ(B2;{"\";" ";"/";"?";"*";"[";"]"};"_"), но она чего-то не то делает ..
:(

Такая формула возвращает массив из результатов замены для каждого из элементов массива второго параметра:

{"тексто/вы?й__те кст";"тексто/вы?й\\те_кст";"тексто_вы?й\\те кст";"тексто/вы_й\\те кст";"тексто/вы?й\\те кст";"тексто/вы?й\\те кст";"тексто/вы?й\\те кст"}

Думаю, что сделать это, используя только встроенные функции, либо невозможно либо нецелесообразно. Лучше писать пользовательскую функцию с "regular expressions" в VBA
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35329902
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пардон, не обратил внимания на кол-во элементов в массиве:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ($A$1;"]";"_");"[";"_");"*";"_");"?";"_");"/";"_");" ";"_");"\";"_")

В 2003-й версии это как раз предел, в 2007-й можно добавлять 64 уровней

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
аналог СЖПРОБЕЛЫ
    #35331531
DaniilK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
идею понял, спасибо
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / аналог СЖПРОБЕЛЫ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]