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

Вход

Регистрация

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

 

= Мир MS Excel/Перенос данных из ячейки в разные стролбцы - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных из ячейки в разные стролбцы (Макросы/Sub)
Перенос данных из ячейки в разные стролбцы
ovechkin1973 Дата: Вторник, 15.05.2018, 16:47 | Сообщение № 1
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Всем привет.. Есть файл большой, который из какой то вредной программы выгружается. В нем в столбце X указано количество материала, которое заказывали определенные люди (участки). Указано "коряво" через запятую. Очень нужно макросом переместить все названия участков в столбцы начиная с Z со второй строки (или в первого пустого столбца, что одно и тоже) и количество, что они заказали. К сожалению в ячейках бывает и один участок и несколько через запятую. Количество указано через тире. Немного заполнил в ручную, как должно выглядеть, но делать все в ручную, это на смену или больше.. Есть еще один нюанс... бывает, что в ячейке столбца X указан только один участок без количества.. у меня это во второй строке так. В этом случае, если нет количества через тире нужно его взять из столбца R. В примере зеленым залил такой случай.
К сообщению приложен файл: 8266128.xlsm (62.8 Kb)


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
СообщениеВсем привет.. Есть файл большой, который из какой то вредной программы выгружается. В нем в столбце X указано количество материала, которое заказывали определенные люди (участки). Указано "коряво" через запятую. Очень нужно макросом переместить все названия участков в столбцы начиная с Z со второй строки (или в первого пустого столбца, что одно и тоже) и количество, что они заказали. К сожалению в ячейках бывает и один участок и несколько через запятую. Количество указано через тире. Немного заполнил в ручную, как должно выглядеть, но делать все в ручную, это на смену или больше.. Есть еще один нюанс... бывает, что в ячейке столбца X указан только один участок без количества.. у меня это во второй строке так. В этом случае, если нет количества через тире нужно его взять из столбца R. В примере зеленым залил такой случай.

Автор - ovechkin1973
Дата добавления - 15.05.2018 в 16:47
StoTisteg Дата: Вторник, 15.05.2018, 16:58 | Сообщение № 2
Группа: Авторы
Ранг: Старожил
Сообщений: 1161
Репутация: 103 ±
Замечаний: 0% ±

Excel 2010
Хм. А почему именно макросом? Чем Вас Текст по столбцам не устраивает?


Интуитивно понятный код - это когда интуитивно понятно, что это код.
 
Ответить
СообщениеХм. А почему именно макросом? Чем Вас Текст по столбцам не устраивает?

Автор - StoTisteg
Дата добавления - 15.05.2018 в 16:58
sboy Дата: Вторник, 15.05.2018, 17:48 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Если перенести в 1 строку все названия участков, то можно вот такой функцией пользователя обработать
[vba]
Код
Function ovechkin(t, p)
    If t.Value = p.Value Then ovechkin = t.Offset(0, -6).Value: Exit Function
    With CreateObject("VBScript.RegExp")
        .Pattern = Replace(Replace(p, ")", "\)"), "(", "\(") & "-(\d+)"
            If .test(t) Then
                ovechkin = CDbl(.Execute(t)(0).Submatches(0))
            Else: ovechkin = ""
            End If
    End With
End Function
[/vba]
К сообщению приложен файл: 6073296.xlsm (71.0 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Если перенести в 1 строку все названия участков, то можно вот такой функцией пользователя обработать
[vba]
Код
Function ovechkin(t, p)
    If t.Value = p.Value Then ovechkin = t.Offset(0, -6).Value: Exit Function
    With CreateObject("VBScript.RegExp")
        .Pattern = Replace(Replace(p, ")", "\)"), "(", "\(") & "-(\d+)"
            If .test(t) Then
                ovechkin = CDbl(.Execute(t)(0).Submatches(0))
            Else: ovechkin = ""
            End If
    End With
End Function
[/vba]

Автор - sboy
Дата добавления - 15.05.2018 в 17:48
ovechkin1973 Дата: Вторник, 15.05.2018, 18:57 | Сообщение № 4
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
А почему именно макросом? Чем Вас Текст по столбцам не устраивает?

придется часто пользоваться в разных версиях файла.. и еще его дорабатывать придеться макросами. И еще если значений очень много, то файл тормозить начинает.


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.
 
Ответить
Сообщение
А почему именно макросом? Чем Вас Текст по столбцам не устраивает?

придется часто пользоваться в разных версиях файла.. и еще его дорабатывать придеться макросами. И еще если значений очень много, то файл тормозить начинает.

Автор - ovechkin1973
Дата добавления - 15.05.2018 в 18:57
ovechkin1973 Дата: Вторник, 15.05.2018, 19:28 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 429
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Уважаемый sboy, впервые моей фамилией называют функцию.. и она самая понятная для меня часть кода :(
Но пока формулы не увидел на листе не смог пользоваться.. Не совсем то, что просил, но работает как надо! Огромное человеческое..


Плохо когда не знаешь, да еще забудешь. Правильно сформулированный вопрос содержит половину ответа.

Сообщение отредактировал ovechkin1973 - Вторник, 15.05.2018, 20:17
 
Ответить
СообщениеУважаемый sboy, впервые моей фамилией называют функцию.. и она самая понятная для меня часть кода :(
Но пока формулы не увидел на листе не смог пользоваться.. Не совсем то, что просил, но работает как надо! Огромное человеческое..

Автор - ovechkin1973
Дата добавления - 15.05.2018 в 19:28
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Перенос данных из ячейки в разные стролбцы (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

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