powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / удаление после 3 пробела
23 сообщений из 23, страница 1 из 1
удаление после 3 пробела
    #37448619
SergofAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Помогите написать макрос или подскажите функцию для того что бы в строке Excel удалить все сиволы после 3 пробела (после ФИО). Т.е. нужно оставить только ФИО
Например:
1.Иванов иван Иванович 1ненужные символы
2.Петров Иван Иванович 2ненужный текст
3.Козлов Олег Петрович 3ненужный текст
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448680
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergofAN,

Код: plaintext
1.
2.
3.
Public Function CutStr(s$) As String
    Dim a: a = Split(s, " ",  4 )
    a( 3 ) = "": CutStr = Join(a, " ")
End Function
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448753
SergofAN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuklp, Спасибо.
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448774
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp, и как этим пользоваться??
если даже так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub Удаление_после_третьего_пробела_до_конца_строки()

    Dim s As String
    s = "Фамилия Имя Отчество Лишнее"
    CutStr s$
    Dim Строка_после_обработки As String
    Строка_после_обработки = s

End Sub
Лишнее на месте
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448793
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрю,

Читать учебник! Вот сколько раз можно повторять. Первые страницы. Что такое процедура, что такое функция.
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448795
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот сколько можно, два года сидит на форуме, умничает, считает себя программистом, не может понять двух элементарных строк.
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448798
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще находит в себе наглость кого-то консультировать.

Отныне на подотчетном мне форуме консультирование Ципиховичем других участников запрещено! (до прочтения и осознания основ программирования на VB(A). Сообщения будут удаляться, консультироване караться баном.


Прошу прощения у уважаемых участников. Накипело.
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448801
Ужас.....
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрю,

Кто Вас вообще к VBA допустил :((
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448919
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрю, например(в моем примере я показал как, но на Вашем):
Код: plaintext
1.
2.
3.
4.
Sub Удаление_после_третьего_пробела_до_конца_строки()
    Dim s As String
    s = "Фамилия Имя Отчество Лишнее"
    s=CutStr s$
End Sub
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448923
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuklp, извиняюсь, косяк:
s = CutStr(s)
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448955
Михаил Ч.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Формула:
Код: plaintext
=ЛЕВСИМВ(A1;ПОИСК("!";ПОДСТАВИТЬ(A1&"!";" ";"!";3))-1)
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448960
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПОЛУОФФ
Фамилия+более одного пробела+Имя+побел+...Отчество станивится "лишним"
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448968
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища, именно это не проблема.
Код: plaintext
1.
2.
3.
Public Function CutStr(s$) As String
    Dim a: a = Split(trim(s), " ",  4 )
    a( 3 ) = "": CutStr = Join(a, " ")
End Function
Но всех косяков юзверя предусмотреть нереально. Поэтому я предпочитаю не писать универсальных программ, а пытаться дисциплинировать пользователя. ИМХО это совпадает с политикой Майкрософт. Их формулы тоже возвращают набор ошибок. Это нормально.
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37448981
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kuklp, скукотища

Тупо и не глядя
Код: plaintext
=ЕСЛИ(ЕЧИСЛО(ПОИСК(" ";СЖПРОБЕЛЫ(A1);ПОИСК(" ";СЖПРОБЕЛЫ(A1);ПОИСК(" ";СЖПРОБЕЛЫ(A1))+ 1 )+ 1 ));ЛЕВСИМВ(СЖПРОБЕЛЫ(A1);ПОИСК(" ";СЖПРОБЕЛЫ(A1);ПОИСК(" ";СЖПРОБЕЛЫ(A1);ПОИСК(" ";СЖПРОБЕЛЫ(A1))+ 1 )+ 1 )- 1 );СЖПРОБЕЛЫ(A1))
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37449005
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не формулист, но что-то мне подсказывает... СЖПРОБЕЛЫ(A1) никак нельзя вынести за общие скобки?
И еще. Будь у меня выбор, я бы воспользовался ЮДФ. Скорость не мерял, но по весу точно бы выиграл.
AndreTM, не подумайте, я ни в коем случае не утверждаю что Ваша формула хуже. Наоборот, я бы на такое не спромогся(ну или очень долго рожал бы):-)
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37449028
Фотография vikttur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM, то, что предложил Михаил Ч., уже не модно? :)
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37449062
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vikttur,

Ну, это тоже было предложено не для постоянного использования, как вы заметили...

Я просто хотел показать ТС, что его задача решается и без каких-то хитростей - прямо и по порядку так, как он пишет в вопросе. Другое дело, если бы автор более подробно рассказал, зачем это нужно - может, у него там миллионы записей, или критично время обработки, или это приходится проделывать постоянно и на многих выборках...
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37449074
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kuklpскукотища, именно это не проблема.
Код: plaintext
1.
2.
3.
Public Function CutStr(s$) As String
    Dim a: a = Split(trim(s), " ",  4 )
    a( 3 ) = "": CutStr = Join(a, " ")
End Function
Именно это проблема.
Код: plaintext
1.
?CutStr("Иванов    Иван Иваныч надевает штаны на ночь")
Иванов  Иван
ИМХО, разумеется. Формально Ваша фунция соответствует названию топика.
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37449157
kuklp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища, пробуем:
Код: plaintext
1.
2.
3.
4.
Public Function CutStr(s$) As String
    Dim a: a = Split(Application.Trim(s), " ",  4 )
    a( 3 ) = "": CutStr = Join(a, " ")
End Function
Но, как я уже писал, на все косяки не перестрахуешься. Вместо пробелов может быть неразрывный пробел(Chr(160)), vblf, порядок может быть другой и т.д.
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37449250
novexelf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
скукотища,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Public Function CutStr (strIn as String) as String
	Dim strResult as String
	
	strResult = Trim(strIn)
	
	Do While (InStr(strResult, "  ") >  0 )
		strResult = Replace(strResult, "  ", " ")
	Loop
	
	Dim strSplit
	strSplit = Split(strResult, " ",  4 )
	strSplit( 3 ) = ""
	CuStr = Join(strSplit, " ")	
End Function
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37449287
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Shocker.Pro
OFF> +
> Отныне на подотчетном мне форуме консультирование Ципиховичем других участников запрещено! (до прочтения и
> осознания основ программирования на VB(A). Сообщения будут удаляться, консультироване караться баном.

А каковы критерии проверки Shocker.Proдо прочтения и осознания основ программирования на VB(A)
?

P.S. Я риторически интересуюсь, просто хорошее настроение после утреннего кофе




Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37451097
Atey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще можно -«текст по столбцам» (или как он там правильно), разделитель знак пробела, а там удалить ненужное и слить нужные.
...
Рейтинг: 0 / 0
удаление после 3 пробела
    #37454345
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ципихович Эндрюkuklp, и как этим пользоваться??
если даже так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Sub Удаление_после_третьего_пробела_до_конца_строки()

    Dim s As String
    s = "Фамилия Имя Отчество Лишнее"
    CutStr s$
    Dim Строка_после_обработки As String
    Строка_после_обработки = s

End Sub
Лишнее на месте
Модератор:
ЦЭ, ты очень неудачно встрял. Месяц читаем книги.
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / удаление после 3 пробела
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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