Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.08.2017, 10:48   #1
user2017
Пользователь
 
Регистрация: 11.08.2017
Сообщений: 20
По умолчанию Функция найти и заменить

Я столкнулся с такой проблемой, в ячейках столбцов есть данные формата 01234 ABC-1 и т.д., мне нужно было избавиться от окончания ABC-1, воспользовавшись функцией найти и заменить ABC-1 на пустое место, у меня заодно пропали все нули в начале ячейки, т.е я получал - 1234 вместо ожидаемого 01234. Я менял форматы ячеек на все возможные, но все равно нули в начале тоже обрезаются. Кто-нибудь может сказать в чем дело и как можно это исправить?
user2017 вне форума Ответить с цитированием
Старый 16.08.2017, 10:53   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
как можно это исправить?
воспользоваться "=ПОДСТАВИТЬ()" и заменить исходные данные результатами
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 16.08.2017, 10:58   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Да, есть такая проблема. если Excel видит, что это число, то он хранит его как число (а в числе нет необходимости и возможности хранить ведущие нули).

если Вас устроит (задача это допускает), можете использовать такой трюк - в начало ячейки добавьте знак '
этот знак в ячейке не отображается, но содержимое ячейки Excel перестаёт автоматически преобразовывать в подходящий, по его мнению, тип.

так же помогает установка формата ячейки на текстовый.
но, разумеется, нужно сначала задать формат, а уже потом заносить туда значения с ведущими нулями .
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.08.2017, 10:58   #4
user2017
Пользователь
 
Регистрация: 11.08.2017
Сообщений: 20
По умолчанию

Нашел решение данной проблемы написав свой собственный формат : 0######### , а теперь может мне кто-нибудь объяснить мне как он точно работает?)


UPD хрень я сделал, там где формат 120034 ABC-1 становится после замены 0120034

Последний раз редактировалось user2017; 16.08.2017 в 11:07. Причина: Ошибся
user2017 вне форума Ответить с цитированием
Старый 16.08.2017, 11:06   #5
user2017
Пользователь
 
Регистрация: 11.08.2017
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
воспользоваться "=ПОДСТАВИТЬ()" и заменить исходные данные результатами
А можно подробнее что это за функция и что за исходные данные?

Последний раз редактировалось user2017; 16.08.2017 в 11:09.
user2017 вне форума Ответить с цитированием
Старый 16.08.2017, 11:10   #6
user2017
Пользователь
 
Регистрация: 11.08.2017
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Да, есть такая проблема. если Excel видит, что это число, то он хранит его как число (а в числе нет необходимости и возможности хранить ведущие нули).

если Вас устроит (задача это допускает), можете использовать такой трюк - в начало ячейки добавьте знак '
этот знак в ячейке не отображается, но содержимое ячейки Excel перестаёт автоматически преобразовывать в подходящий, по его мнению, тип.

так же помогает установка формата ячейки на текстовый.
но, разумеется, нужно сначала задать формат, а уже потом заносить туда значения с ведущими нулями .
Дополнительные знаки я не могу вводить т.к. потом сравниваю полученные значения с значениями из других таблиц, текстовый формат тоже не спас
user2017 вне форума Ответить с цитированием
Старый 16.08.2017, 11:22   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от user2017 Посмотреть сообщение
А можно подробнее что это за функция и что за исходные данные?
Гугл не работает?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 16.08.2017, 11:41   #8
slone2179
Форумчанин
 
Аватар для slone2179
 
Регистрация: 22.04.2011
Сообщений: 155
По умолчанию

=ПОДСТАВИТЬ(A:A;"ABC-1";" ")
slone2179 вне форума Ответить с цитированием
Старый 16.08.2017, 12:23   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от user2017 Посмотреть сообщение
Дополнительные знаки я не могу вводить т.к. потом сравниваю полученные значения с значениями из других таблиц, текстовый формат тоже не спас
заменяйте через макрос

вот такой макрос:
Код:
Sub ReplaceASV()
    Dim cell As Range
    
    For Each cell In Selection
        cell.NumberFormat = "@"
        cell.Value = Replace(cell.Value, "ABC-1", "")
    Next
End Sub
использовать так.
открыть редактор VBA (alt-F11)
вставить в модуль или код книги/листа данный макрос.
перейти в книгу, выделить нужные ячейки, нажать Alt-F8 - выбрать макрос и выполнить.
всё.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.08.2017, 12:48   #10
user2017
Пользователь
 
Регистрация: 11.08.2017
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
заменяйте через макрос

вот такой макрос:
Код:
Sub ReplaceASV()
    Dim cell As Range
    
    For Each cell In Selection
        cell.NumberFormat = "@"
        cell.Value = Replace(cell.Value, "ABC-1", "")
    Next
End Sub
использовать так.
открыть редактор VBA (alt-F11)
вставить в модуль или код книги/листа данный макрос.
перейти в книгу, выделить нужные ячейки, нажать Alt-F8 - выбрать макрос и выполнить.
всё.
Спасибо! Это конечно все очень здорово получается, только я пытаюсь получить универсальный метод, у меня таблица где-то от 1,5к данных, окончание в виде ABC-1 я в качестве примера привел, так то у меня вариаций этих окончаний огромное количество, единственное что известно так это то, что эти места начинаются после цифр.
user2017 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти и заменить #ССЫЛКА! Tigranik Microsoft Office Excel 3 07.08.2013 21:39
Функция Readln в Delphi - как заменить Умагаджи Помощь студентам 2 06.04.2012 08:11
Правка Найти/Заменить лилу1986 Microsoft Office Excel 15 14.08.2010 20:54
найти и заменить smallfish Microsoft Office Word 2 15.05.2010 22:50
Найти и заменить Shouldercannon Общие вопросы Delphi 0 12.04.2010 01:33