Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Извлечь часть текста из ячееки - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Извлечь часть текста из ячееки
av_vel Дата: Понедельник, 01.07.2024, 13:12 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Добрый день! Прошу помочь извлечь часть текста из ячеек в столбце А, в столбец С по образцу из файла при помощи формулы или UDF. Заранее спасибо.
К сообщению приложен файл: dlja_foruma.xlsx (9.1 Kb)
 
Ответить
СообщениеДобрый день! Прошу помочь извлечь часть текста из ячеек в столбце А, в столбец С по образцу из файла при помощи формулы или UDF. Заранее спасибо.

Автор - av_vel
Дата добавления - 01.07.2024 в 13:12
Nic70y Дата: Понедельник, 01.07.2024, 14:52 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
вдруг правильно
[vba]
Код
Function u_21(a As Range)
    b = Len(a)
    h_1 = Len(Replace(a, " сертификат", ""))
    i_1 = (b - h_1) / 11
    h_2 = Len(Replace(a, " паспорт-сертификат", ""))
    i_2 = (b - h_2) / 19
    h_3 = Len(Replace(a, " документ", ""))
    i_3 = (b - h_3) / 9
    i = i_1 + i_2 + i_3
    g = a.Value
    u_21 = ""
    l = ""
    For c = 1 To i
        If c > 1 Then l = " "
        d = InStr(g & ";", ";")
        e_1 = InStr(g, " сертификат")
        If e_1 = 0 Then e_1 = b
        e_2 = InStr(g, " паспорт-сертификат")
        If e_2 = 0 Then e_2 = b
        e_3 = InStr(g, " документ")
        If e_3 = 0 Then e_3 = b
        e = Application.Min(e_1, e_2, e_3)
        f = Mid(g, e + 1, d - e)
        g = Mid(g, d + 1, b)
        u_21 = u_21 & l & f
    Next
End Function
[/vba]
К сообщению приложен файл: dlja_foruma.xlsm (16.2 Kb)


ЮMoney 41001841029809
 
Ответить
Сообщениевдруг правильно
[vba]
Код
Function u_21(a As Range)
    b = Len(a)
    h_1 = Len(Replace(a, " сертификат", ""))
    i_1 = (b - h_1) / 11
    h_2 = Len(Replace(a, " паспорт-сертификат", ""))
    i_2 = (b - h_2) / 19
    h_3 = Len(Replace(a, " документ", ""))
    i_3 = (b - h_3) / 9
    i = i_1 + i_2 + i_3
    g = a.Value
    u_21 = ""
    l = ""
    For c = 1 To i
        If c > 1 Then l = " "
        d = InStr(g & ";", ";")
        e_1 = InStr(g, " сертификат")
        If e_1 = 0 Then e_1 = b
        e_2 = InStr(g, " паспорт-сертификат")
        If e_2 = 0 Then e_2 = b
        e_3 = InStr(g, " документ")
        If e_3 = 0 Then e_3 = b
        e = Application.Min(e_1, e_2, e_3)
        f = Mid(g, e + 1, d - e)
        g = Mid(g, d + 1, b)
        u_21 = u_21 & l & f
    Next
End Function
[/vba]

Автор - Nic70y
Дата добавления - 01.07.2024 в 14:52
av_vel Дата: Понедельник, 01.07.2024, 16:28 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Nic70y, в другом файле функция не будет работать?
 
Ответить
СообщениеNic70y, в другом файле функция не будет работать?

Автор - av_vel
Дата добавления - 01.07.2024 в 16:28
Nic70y Дата: Понедельник, 01.07.2024, 16:37 | Сообщение № 4
Группа: Друзья
Ранг: Экселист
Сообщений: 9005
Репутация: 2369 ±
Замечаний: 0% ±

Excel 2010
av_vel, файл должен поддерживать макросы,
в нем нужно создать стандартный модуль,
и в него перенести функцию.

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


ЮMoney 41001841029809

Сообщение отредактировал Nic70y - Понедельник, 01.07.2024, 16:37
 
Ответить
Сообщениеav_vel, файл должен поддерживать макросы,
в нем нужно создать стандартный модуль,
и в него перенести функцию.

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

Автор - Nic70y
Дата добавления - 01.07.2024 в 16:37
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!