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

Вход

Регистрация

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

 

= Мир MS Excel/Макрос подгружающий данные из одного документа в другой - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Макрос подгружающий данные из одного документа в другой
alexp21 Дата: Пятница, 13.09.2013, 11:00 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 20% ±

У меня в документе два листа, во втором листе в столбце «L» некоторые даты обновлены, нужно подставить их в первый, идентифицировать можно по уникальному значению номера в столбцах «B» и «H». Буду Вам очень благодарен за помощь! Спасибо.
К сообщению приложен файл: 7457913.xlsx (12.7 Kb)
 
Ответить
СообщениеУ меня в документе два листа, во втором листе в столбце «L» некоторые даты обновлены, нужно подставить их в первый, идентифицировать можно по уникальному значению номера в столбцах «B» и «H». Буду Вам очень благодарен за помощь! Спасибо.

Автор - alexp21
Дата добавления - 13.09.2013 в 11:00
SkyPro Дата: Пятница, 13.09.2013, 11:51 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
В L2
Код
=ВПР(A2;'Сентябрь копия'!$A$1:$S$1000;12;0)

Не подходит?
К сообщению приложен файл: 3097882.xlsx (15.0 Kb)


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Пятница, 13.09.2013, 11:53
 
Ответить
СообщениеВ L2
Код
=ВПР(A2;'Сентябрь копия'!$A$1:$S$1000;12;0)

Не подходит?

Автор - SkyPro
Дата добавления - 13.09.2013 в 11:51
alexp21 Дата: Пятница, 13.09.2013, 12:42 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 20% ±

В L2
Код
=VLOOKUP(A2,'Сентябрь копия'!$A$1:$S$1000,12,0)
Не подходит?


Спасибо, насколько я понял ваш код подставляет ячейки из одного документа в другой, дело в том что они могут идти не по порядку и строк во втором файле гораздо больше чем в первом, поэтому нужно именно сверять номера в столбцах «B» и «H» и подставлять по ним обновленные даты.
 
Ответить
Сообщение
В L2
Код
=VLOOKUP(A2,'Сентябрь копия'!$A$1:$S$1000,12,0)
Не подходит?


Спасибо, насколько я понял ваш код подставляет ячейки из одного документа в другой, дело в том что они могут идти не по порядку и строк во втором файле гораздо больше чем в первом, поэтому нужно именно сверять номера в столбцах «B» и «H» и подставлять по ним обновленные даты.

Автор - alexp21
Дата добавления - 13.09.2013 в 12:42
SkyPro Дата: Пятница, 13.09.2013, 12:53 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
нужно именно сверять номера в столбцах «B» и «H» и подставлять по ним обновленные даты.

A2 - ссылка на ячейку значение из которой ВПР ищет в диапазоне $A$1:$S$1000 на листе 'Сентябрь копия' (если строк больше поставьте вместо 1 000 - 10 000, или сколько там у вас строк). Если находит точное совпадение - возвращает значение из пересечения 12 столбца таблицы и строки, в которой было найдено.
Если не находит - возвращает ошибку.


skypro1111@gmail.com
 
Ответить
Сообщение
нужно именно сверять номера в столбцах «B» и «H» и подставлять по ним обновленные даты.

A2 - ссылка на ячейку значение из которой ВПР ищет в диапазоне $A$1:$S$1000 на листе 'Сентябрь копия' (если строк больше поставьте вместо 1 000 - 10 000, или сколько там у вас строк). Если находит точное совпадение - возвращает значение из пересечения 12 столбца таблицы и строки, в которой было найдено.
Если не находит - возвращает ошибку.

Автор - SkyPro
Дата добавления - 13.09.2013 в 12:53
alexp21 Дата: Пятница, 13.09.2013, 13:35 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 20% ±

A2 - ссылка на ячейку значение из которой ВПР ищет в диапазоне $A$1:$S$1000 на листе 'Сентябрь копия' (если строк больше поставьте вместо 1 000 - 10 000, или сколько там у вас строк). Если находит точное совпадение - возвращает значение из пересечения 12 столбца таблицы и строки, в которой было найдено.
Если не находит - возвращает ошибку.


К сожалению значение в документах может быть написано не точно, в столбце "В" после номера написание даты может быть как с точками, так и с запятыми, также в одном документе может иметь формат "число, мес, год", а в другом "число, мес", поэтому в столбце "B" необходимо сверять только номер до "/", а так же номер в столбце "H", и при условии что номера в этих столбцах для обоих документов совпадают, менять дату в листе "сентябрь". доработал таблицу, в ней более точно отображены условия.
К сообщению приложен файл: --.xlsx (12.6 Kb)
 
Ответить
Сообщение
A2 - ссылка на ячейку значение из которой ВПР ищет в диапазоне $A$1:$S$1000 на листе 'Сентябрь копия' (если строк больше поставьте вместо 1 000 - 10 000, или сколько там у вас строк). Если находит точное совпадение - возвращает значение из пересечения 12 столбца таблицы и строки, в которой было найдено.
Если не находит - возвращает ошибку.


К сожалению значение в документах может быть написано не точно, в столбце "В" после номера написание даты может быть как с точками, так и с запятыми, также в одном документе может иметь формат "число, мес, год", а в другом "число, мес", поэтому в столбце "B" необходимо сверять только номер до "/", а так же номер в столбце "H", и при условии что номера в этих столбцах для обоих документов совпадают, менять дату в листе "сентябрь". доработал таблицу, в ней более точно отображены условия.

Автор - alexp21
Дата добавления - 13.09.2013 в 13:35
nilem Дата: Пятница, 13.09.2013, 17:57 | Сообщение № 6
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
alexp21,
попробуйте так:
[vba]
Код
Sub ertert()
Dim x, i&, s$
With Sheets("Сентябрь копия")
     x = .Range("A2:L" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
End With
With CreateObject("Scripting.Dictionary")
     .CompareMode = 1
     For i = 1 To UBound(x)
         s = Split(x(i, 2), "/")(0) & "~" & x(i, 8)
         .Item(s) = x(i, 12)
     Next i
     With Sheets("Сентябрь")
         x = .Range("A2:L" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
     End With
     For i = 1 To UBound(x)
         s = Split(x(i, 2), "/")(0) & "~" & x(i, 8)
         x(i, 1) = IIf(.Exists(s), .Item(s), x(i, 12))
     Next i
End With
Sheets("Сентябрь").Range("L2").Resize(UBound(x)).Value = x
End Sub
[/vba]


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеalexp21,
попробуйте так:
[vba]
Код
Sub ertert()
Dim x, i&, s$
With Sheets("Сентябрь копия")
     x = .Range("A2:L" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
End With
With CreateObject("Scripting.Dictionary")
     .CompareMode = 1
     For i = 1 To UBound(x)
         s = Split(x(i, 2), "/")(0) & "~" & x(i, 8)
         .Item(s) = x(i, 12)
     Next i
     With Sheets("Сентябрь")
         x = .Range("A2:L" & .Cells(Rows.Count, 1).End(xlUp).Row).Value
     End With
     For i = 1 To UBound(x)
         s = Split(x(i, 2), "/")(0) & "~" & x(i, 8)
         x(i, 1) = IIf(.Exists(s), .Item(s), x(i, 12))
     Next i
End With
Sheets("Сентябрь").Range("L2").Resize(UBound(x)).Value = x
End Sub
[/vba]

Автор - nilem
Дата добавления - 13.09.2013 в 17:57
alexp21 Дата: Пятница, 13.09.2013, 18:47 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 36
Репутация: 0 ±
Замечаний: 20% ±

попробуйте так:

Да, это то что надо! спасибо вам огромное!
 
Ответить
Сообщение
попробуйте так:

Да, это то что надо! спасибо вам огромное!

Автор - alexp21
Дата добавления - 13.09.2013 в 18:47
  • Страница 1 из 1
  • 1
Поиск:

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