Макрос для excel

---"---
spcot
Member
Сообщения: 997
На форуме с: 24 окт 2010, 23:36
Репутация: 121

Сообщение spcot » 15 авг 2017, 23:54

На форумах что то пока не нашел, сам тоже не вкурю как прописать что бы работало.
Есть два файла excel. В 1-м 15000 строк, второй обрезан из первого до 2000 строк и нескольких столбцов.
Нужно взять значение первого столбца первой строки во втором файле, найти такое же в первом столбце первого, отступить на 6 ячеек вправо. Скопировать значение и вставить во второй с отступом 5 ячеек.
И так до конца 1 столбца таблицы 2.
Кто с экселем дружит, подскажите.

spcot
Member
Сообщения: 997
На форуме с: 24 окт 2010, 23:36
Репутация: 121

Re: макрос для excel

Сообщение spcot » 16 авг 2017, 00:54

Разовое действие выглядит так
Range("A3").Select
Selection.Copy
Windows("OptPrice_rf_100817.xls").Activate
ActiveWindow.WindowState = xlNormal
Columns("A:A").Select
Selection.Find(What:="126308", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Range("G28095").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Матрица Меридиан итоговый варинат.xls").Activate
ActiveWindow.WindowState = xlNormal
Range("G3").Select
ActiveSheet.Paste
Range("G3").Select
End Sub

Нужно теперь перебрать 2000 строк.
Jakov
Эксперт
Сообщения: 2056
На форуме с: 19 апр 2007, 09:48
Репутация: 481

Re: макрос для excel

Сообщение Jakov » 16 авг 2017, 10:01

Загрузи файлы в ACCESS, а потом стандартным SQL

Или через MS Query
Аватара пользователя
s.s
Эксперт
Сообщения: 1527
На форуме с: 26 сен 2008, 15:04
Репутация: 603

Re: макрос для excel

Сообщение s.s » 16 авг 2017, 11:27

сюда скин файлы и образци только без макросов
Jakov
Эксперт
Сообщения: 2056
На форуме с: 19 апр 2007, 09:48
Репутация: 481

Re: макрос для excel

Сообщение Jakov » 16 авг 2017, 11:36

Вот тут
support.office.com/ru-ru/article/%D0%9E%D0%B1%D1%8A%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%B2%D1%83%D1%85-%D0%B8%D0%BB%D0%B8-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85-%D1%82%D0%B0%D0%B1%D0%BB%D0%B8%D1%86-C80A9FCE-C1AB-4425-BB96-497DD906D656
говорится о замечательной функции ВПР

и тут есть похожий пример
excel-office.ru/vosmoznostiexcel/obyedinittabliziexcel

И еще bourabai.kz/einf/excel/1_4.htm

Способ зависит от специфики и качества начальных данных
spcot
Member
Сообщения: 997
На форуме с: 24 окт 2010, 23:36
Репутация: 121

Сообщение spcot » 16 авг 2017, 11:48

Спасибо, буду изучать.
spcot
Member
Сообщения: 997
На форуме с: 24 окт 2010, 23:36
Репутация: 121

Re: макрос для excel

Сообщение spcot » 16 авг 2017, 19:28

s.s писал(а):сюда скин файлы и образци только без макросов

Накидал пример.
Требуется из конечного взять значение в первом столбце, найти в исходном такое же значение в первом столбце, скопировать значение в этой строке из столбца 3. Вставить его в конечный файл в ту же строку столбец 5.
И так по всему диапазону столбца 1.
Вложения
Kniga3ishodnik.xls
(226.5 КБ) 49 скачиваний
Kniga2final.xls
(13.5 КБ) 46 скачиваний
Jakov
Эксперт
Сообщения: 2056
На форуме с: 19 апр 2007, 09:48
Репутация: 481

Сообщение Jakov » 17 авг 2017, 02:54

Данные не совсем корректны
Большинству значений из "Исходник" нет соответствия в "конечник".

Во вложенном файле пример через ВПР
Объединил два файла в один и немного подправил "исходник"
Вложения
Function_VPR.xls
(567 КБ) 55 скачиваний
Jakov
Эксперт
Сообщения: 2056
На форуме с: 19 апр 2007, 09:48
Репутация: 481

Сообщение Jakov » 17 авг 2017, 05:04

Для простоты формулы можно записать так:
=ВПР([Ст1];Таблица2[#Все];2;0) =ВПР([Ст1];Таблица2[#Все];3;0) =ВПР([Ст1];Таблица2[#Все];4;0)
Jakov
Эксперт
Сообщения: 2056
На форуме с: 19 апр 2007, 09:48
Репутация: 481

Сообщение Jakov » 18 авг 2017, 02:01

Разобрался? Или надо объяснить подробнее?
spcot
Member
Сообщения: 997
На форуме с: 24 окт 2010, 23:36
Репутация: 121

Сообщение spcot » 18 авг 2017, 09:12

Пока возвращает знач. Где то ошибка. Из помошника впр заводил. с ложью вроде как то надо.
Jakov
Эксперт
Сообщения: 2056
На форуме с: 19 апр 2007, 09:48
Репутация: 481

Сообщение Jakov » 19 авг 2017, 04:59

Выложи попытку - посмотрю.
У меня возникали проблемы с копирование формулы.
если в формуле указан диапазон, то он сдвигается при копировании. (в выложенном файле решил через $) (=ВПР(A2;Конечный!A$1:D$10;2;0))
+
Заведи оба файла в один в разные закладки.
Приведи в порядок первичные данные.
Убери группировку строк и пустые строки.
Заведи уникальные заголовки.
Отсортируй по возрастанию.
Сделай CTR-T для создания области данных.
spcot
Member
Сообщения: 997
На форуме с: 24 окт 2010, 23:36
Репутация: 121

Сообщение spcot » 19 авг 2017, 11:42

Вот потому и хотел все макросом выполнить. Проблема исходник структурировать по столбцу. Куча раскрывающихся подкаталогов, пробелов и разделов.
а макрос выполняет клавиатурные действия оператора. Скопировал, нашел, скопировал, вставил. И так по циклу до конца столбца.
Образец только нигде не найду.
Jakov
Эксперт
Сообщения: 2056
На форуме с: 19 апр 2007, 09:48
Репутация: 481

Сообщение Jakov » 19 авг 2017, 12:20

А смысл продолжать работать с такими данными?
Не лучше ли "вычистить", завести новые признаки, если они нужны, а потом всё стандартно сгруппировать.
Легче же потом будет.

Вернуться в «Программы, не связанные с терминалами»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость