Добавление символов по определенной маске
Allod
Дата: Суббота, 19.05.2018, 12:36 |
Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Добрый день. Необходимо в текстовом поле добавить в текст необходимый(ые) символ(ы) Пример: 123456789 результат в зависимости от настоек маски: 1 234 56 789 1.234-56.789 123456.789
Добрый день. Необходимо в текстовом поле добавить в текст необходимый(ые) символ(ы) Пример: 123456789 результат в зависимости от настоек маски: 1 234 56 789 1.234-56.789 123456.789 Allod
Сообщение отредактировал Allod - Суббота, 19.05.2018, 12:37
Ответить
Сообщение Добрый день. Необходимо в текстовом поле добавить в текст необходимый(ые) символ(ы) Пример: 123456789 результат в зависимости от настоек маски: 1 234 56 789 1.234-56.789 123456.789 Автор - Allod Дата добавления - 19.05.2018 в 12:36
abtextime
Дата: Суббота, 19.05.2018, 13:12 |
Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация:
117
±
Замечаний:
0% ±
Excel 2010
[vba]Код
Public Function FillMask(S, Mask As String) As String For i = 1 To Len(Mask) If IsNumeric(Mid(Mask, i, 1)) Then Counter = Counter + 1 FillMask = FillMask & Mid(S, Counter, 1) Else FillMask = FillMask & Mid(Mask, i, 1) End If Next i End Function
[/vba] ФормуламиКод
=ЛЕВБ(C4;1)&" "&ПСТР(C4;2;4)&" "&ПСТР(C4;5;2)&" "&ПРАВБ(C4;3)
Код
=ЛЕВБ(C5;1)&"."&ПСТР(C5;2;4)&"-"&ПСТР(C5;5;2)&"."&ПРАВБ(C5;3)
Код
=ЛЕВБ(C6;6)&"."&ПРАВБ(C6;3)
[vba]Код
Public Function FillMask(S, Mask As String) As String For i = 1 To Len(Mask) If IsNumeric(Mid(Mask, i, 1)) Then Counter = Counter + 1 FillMask = FillMask & Mid(S, Counter, 1) Else FillMask = FillMask & Mid(Mask, i, 1) End If Next i End Function
[/vba] ФормуламиКод
=ЛЕВБ(C4;1)&" "&ПСТР(C4;2;4)&" "&ПСТР(C4;5;2)&" "&ПРАВБ(C4;3)
Код
=ЛЕВБ(C5;1)&"."&ПСТР(C5;2;4)&"-"&ПСТР(C5;5;2)&"."&ПРАВБ(C5;3)
Код
=ЛЕВБ(C6;6)&"."&ПРАВБ(C6;3)
abtextime
Сообщение отредактировал abtextime - Суббота, 19.05.2018, 13:19
Ответить
Сообщение [vba]Код
Public Function FillMask(S, Mask As String) As String For i = 1 To Len(Mask) If IsNumeric(Mid(Mask, i, 1)) Then Counter = Counter + 1 FillMask = FillMask & Mid(S, Counter, 1) Else FillMask = FillMask & Mid(Mask, i, 1) End If Next i End Function
[/vba] ФормуламиКод
=ЛЕВБ(C4;1)&" "&ПСТР(C4;2;4)&" "&ПСТР(C4;5;2)&" "&ПРАВБ(C4;3)
Код
=ЛЕВБ(C5;1)&"."&ПСТР(C5;2;4)&"-"&ПСТР(C5;5;2)&"."&ПРАВБ(C5;3)
Код
=ЛЕВБ(C6;6)&"."&ПРАВБ(C6;3)
Автор - abtextime Дата добавления - 19.05.2018 в 13:12
Allod
Дата: Суббота, 19.05.2018, 13:34 |
Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
abtextime , ОГРОМНОЕ спасибо, это то что нужно!
abtextime , ОГРОМНОЕ спасибо, это то что нужно!Allod
Ответить
Сообщение abtextime , ОГРОМНОЕ спасибо, это то что нужно!Автор - Allod Дата добавления - 19.05.2018 в 13:34
Светлый
Дата: Суббота, 19.05.2018, 13:45 |
Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1868
Репутация:
536
±
Замечаний:
0% ±
Excel 2013, 2016
Если в образце использовать 0 вместо цифр и значки, то формула небольшая:Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"$");".";"№"));"$";" ");"№";".")
Если образец содержит другие цифры, то формула подлиннее:Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"$");".";"№");9;0);8;0);7;0);6;0);5;0);4;0);3;0);2;0);1;0));"№";".");"$";" ")
Если в образце использовать 0 вместо цифр и значки, то формула небольшая:Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"$");".";"№"));"$";" ");"№";".")
Если образец содержит другие цифры, то формула подлиннее:Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"$");".";"№");9;0);8;0);7;0);6;0);5;0);4;0);3;0);2;0);1;0));"№";".");"$";" ")
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Если в образце использовать 0 вместо цифр и значки, то формула небольшая:Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"$");".";"№"));"$";" ");"№";".")
Если образец содержит другие цифры, то формула подлиннее:Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"$");".";"№");9;0);8;0);7;0);6;0);5;0);4;0);3;0);2;0);1;0));"№";".");"$";" ")
Автор - Светлый Дата добавления - 19.05.2018 в 13:45
Allod
Дата: Суббота, 19.05.2018, 15:23 |
Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
А можно ли сделать обратную процедуру. пример: 0 000 1234 5 00-001235 Результат: 000012345 Поиск с заменой не подходит, сразу убирает нули, они нужны не как формат, а фактически (поле текстовое)
А можно ли сделать обратную процедуру. пример: 0 000 1234 5 00-001235 Результат: 000012345 Поиск с заменой не подходит, сразу убирает нули, они нужны не как формат, а фактически (поле текстовое) Allod
Ответить
Сообщение А можно ли сделать обратную процедуру. пример: 0 000 1234 5 00-001235 Результат: 000012345 Поиск с заменой не подходит, сразу убирает нули, они нужны не как формат, а фактически (поле текстовое) Автор - Allod Дата добавления - 19.05.2018 в 15:23
abtextime
Дата: Суббота, 19.05.2018, 15:44 |
Сообщение № 6
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация:
117
±
Замечаний:
0% ±
Excel 2010
[vba]Код
Public Function Restore(S) As String For i = 1 To Len(S) If IsNumeric(Mid(S, i, 1)) Then Restore = Restore & Mid(S, i, 1) Next i End Function
[/vba] или формулойКод
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(F4;" ";"");".";"");"-";"")
[vba]Код
Public Function Restore(S) As String For i = 1 To Len(S) If IsNumeric(Mid(S, i, 1)) Then Restore = Restore & Mid(S, i, 1) Next i End Function
[/vba] или формулойКод
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(F4;" ";"");".";"");"-";"")
abtextime
Ответить
Сообщение [vba]Код
Public Function Restore(S) As String For i = 1 To Len(S) If IsNumeric(Mid(S, i, 1)) Then Restore = Restore & Mid(S, i, 1) Next i End Function
[/vba] или формулойКод
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(F4;" ";"");".";"");"-";"")
Автор - abtextime Дата добавления - 19.05.2018 в 15:44
abtextime
Дата: Суббота, 19.05.2018, 15:51 |
Сообщение № 7
Группа: Проверенные
Ранг: Ветеран
Сообщений: 828
Репутация:
117
±
Замечаний:
0% ±
Excel 2010
Формулами =ЛЕВБ(C4;1)&" "&ПСТР(C4;2;4)&" "&ПСТР(C4;5;2)&" "&ПРАВБ(C4;3) =ЛЕВБ(C5;1)&"."&ПСТР(C5;2;4)&"-"&ПСТР(C5;5;2)&"."&ПРАВБ(C5;3)
здесь была техническая ошибка допущена, вместо 2;4 надо 2;3 , конечно. Исправлено в файле
Формулами =ЛЕВБ(C4;1)&" "&ПСТР(C4;2;4)&" "&ПСТР(C4;5;2)&" "&ПРАВБ(C4;3) =ЛЕВБ(C5;1)&"."&ПСТР(C5;2;4)&"-"&ПСТР(C5;5;2)&"."&ПРАВБ(C5;3)
здесь была техническая ошибка допущена, вместо 2;4 надо 2;3 , конечно. Исправлено в файлеabtextime
Ответить
Сообщение Формулами =ЛЕВБ(C4;1)&" "&ПСТР(C4;2;4)&" "&ПСТР(C4;5;2)&" "&ПРАВБ(C4;3) =ЛЕВБ(C5;1)&"."&ПСТР(C5;2;4)&"-"&ПСТР(C5;5;2)&"."&ПРАВБ(C5;3)
здесь была техническая ошибка допущена, вместо 2;4 надо 2;3 , конечно. Исправлено в файлеАвтор - abtextime Дата добавления - 19.05.2018 в 15:51
Allod
Дата: Суббота, 19.05.2018, 16:30 |
Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация:
0
±
Замечаний:
0% ±
Excel 2007
Спасибо, все прекрасно работает. Принцип понятен!
Спасибо, все прекрасно работает. Принцип понятен! Allod
Ответить
Сообщение Спасибо, все прекрасно работает. Принцип понятен! Автор - Allod Дата добавления - 19.05.2018 в 16:30
_Boroda_
Дата: Суббота, 19.05.2018, 16:59 |
Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16886
Репутация:
6611
±
Замечаний:
±
2003; 2007; 2010; 2013 RUS
Еще варианты Для добавления (для чисел)Код
=ТЕКСТ(A1;"0\ 000\ 00\ 000")
Код
=ТЕКСТ(A1;"0\.000-00\.000")
Код
=ТЕКСТ(A1;"000000\.000")
Для убирания почти как у АлексеяКод
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A5;" ";);".";);"-";)
Еще варианты Для добавления (для чисел)Код
=ТЕКСТ(A1;"0\ 000\ 00\ 000")
Код
=ТЕКСТ(A1;"0\.000-00\.000")
Код
=ТЕКСТ(A1;"000000\.000")
Для убирания почти как у АлексеяКод
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A5;" ";);".";);"-";)
_Boroda_
Скажи мне, кудесник, любимец ба’гов... Платная помощь: Boroda_Excel@mail.ru Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
Ответить
Сообщение Еще варианты Для добавления (для чисел)Код
=ТЕКСТ(A1;"0\ 000\ 00\ 000")
Код
=ТЕКСТ(A1;"0\.000-00\.000")
Код
=ТЕКСТ(A1;"000000\.000")
Для убирания почти как у АлексеяКод
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A5;" ";);".";);"-";)
Автор - _Boroda_ Дата добавления - 19.05.2018 в 16:59
Светлый
Дата: Суббота, 19.05.2018, 18:05 |
Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1868
Репутация:
536
±
Замечаний:
0% ±
Excel 2013, 2016
Почему-то с "\" у меня ошибка была. Не стал использовать. Видимо, ошибка была в другом.Код
=ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"\ ");".";"\."))
Код
=ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"\ ");".";"\.");9;0);8;0);7;0);6;0);5;0);4;0);3;0);2;0);1;0))
Почему-то с "\" у меня ошибка была. Не стал использовать. Видимо, ошибка была в другом.Код
=ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"\ ");".";"\."))
Код
=ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"\ ");".";"\.");9;0);8;0);7;0);6;0);5;0);4;0);3;0);2;0);1;0))
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Почему-то с "\" у меня ошибка была. Не стал использовать. Видимо, ошибка была в другом.Код
=ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"\ ");".";"\."))
Код
=ТЕКСТ($A$1;ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(B1;" ";"\ ");".";"\.");9;0);8;0);7;0);6;0);5;0);4;0);3;0);2;0);1;0))
Автор - Светлый Дата добавления - 19.05.2018 в 18:05