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

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

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

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

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

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

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

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

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

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

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

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

KL
[MVP - Microsoft Excel]

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

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

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

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

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

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

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

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

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

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

текст в A5, в B4 символ или символы, которые хотим сократить"
...
Рейтинг: 0 / 0
13.12.2007, 18:04
    #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
13.12.2007, 18:07
    #35008621
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
аналог СЖПРОБЕЛЫ
или еще короче:

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

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

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

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

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

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

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

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


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