Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
evil327
0 / 0 / 0
Регистрация: 16.03.2015
Сообщений: 5
#1

Как сравнить 2 таблицы по нескольким столбцам - VBA

06.06.2015, 12:31. Просмотров 1172. Ответов 3
Метки нет (Все метки)

Доброго времени суток.
Есть 2 на листах "In_data" и "One_price" нужно :
1. сравнить их сначала по столбцу "А" обе таблицы,
2. если найдено совпадение, тогда проверить для этой строки столбец "D" в листе "One_price"
3. если в выбранной ячейки текст "м3", тогда берем данные из листа "In_data" текущей строки и столбца "D", и переносим их в лист "One_price" текущей строки и столбец "E"
4. если в выбранной ячейки текст "м2", тогда берем данные из листа "In_data" текущей строки и столбца "E" и переносим их в лист "One_price" текущей строки и столбец "E"

test_001.xlsx
http://www.cyberforum.ru/vba/thread1225489.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.06.2015, 12:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как сравнить 2 таблицы по нескольким столбцам (VBA):

Сортировка таблицы по нескольким столбцам
Добрый день! Появилась необходимость рассортировать рабочую таблицу: поскольку...

Сортировка строк таблицы по нескольким столбцам
Доброго времени суток. Имеется код сортировки по одному столбцу. ...

Сортировка по нескольким столбцам
Здравствуйте, есть хорошая функция для сортировки по нескольким столбцам: ...

Поиск дубликатов строк по нескольким столбцам
Добрый день уважаемые форумчане! Имеется excel файл с двумя листами X и Y. ...

Как сравнить таблицы в которой есть пустые строки?
Доброго времени суток! Нужна помощ, пишу сразу, что не программист, но и...

3
Fairuza
Модератор
5204 / 2632 / 471
Регистрация: 23.11.2010
Сообщений: 8,690
06.06.2015, 16:25 #2
Вариант в Е1 и протянуть вниз
Код
=ВЫБОР(ЕСЛИ(D1="м3";1;2);ИНДЕКС(In_data!$D$1:$D$8;ПОИСКПОЗ(A1;In_data!$A$1:$A$8;0));ИНДЕКС(In_data!$E$1:$E$8;ПОИСКПОЗ(A1;In_data!$A$1:$A$8;0)))
0
Alex77755
10694 / 3269 / 543
Регистрация: 13.02.2009
Сообщений: 9,647
06.06.2015, 16:35 #3
Лучший ответ Сообщение было отмечено evil327 как решение

Решение

Вариант с макросом:
в модуль код
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Explicit
Sub QWERT()
Dim T, LR, D(), P(), R, OD: Set OD = CreateObject("Scripting.Dictionary")
With Лист1
    LR = .Cells(.Rows.Count, 1).End(xlUp).Row
    P = .Range("A1:E" & LR).Value
End With
For R = 1 To UBound(P)
    OD(P(R, 1) & "м2") = P(R, 5)
    OD(P(R, 1) & "м3") = P(R, 4)
Next R
With Лист2
    LR = .Cells(.Rows.Count, 1).End(xlUp).Row
    For R = 1 To LR
        T = .Cells(R, 1).Value & .Cells(R, 4).Value
        If OD.Exists(T) Then .Cells(R, 5) = OD(T)
    Next R
End With
End Sub
1
evil327
0 / 0 / 0
Регистрация: 16.03.2015
Сообщений: 5
07.06.2015, 10:04  [ТС] #4
Спасибо огромное за скрипт.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2015, 10:04
Привет! Вот еще темы с решениями:

Как сравнить 2 таблицы с ценами, обозначить изменения и внести поправки.
Просьба помочь в решении парочки несложных задач на ВБА (слабак я в ВБА), инфо...

Как сравнить две таблицы и совпадающие элементы перенести в другую таблицу
Помогите пожалуйста! ни как не могу сообразить! Необходимо написать макрос...

Форматирование таблицы (текст по столбцам)
Доброго дня. Помогите пожалуйста написать макрос для форматирования таблицы...

Макрос, распределяющий значения одной таблицы по столбцам другой
Доброе время суток, нужна ваша помощь, хотя бы что бы подсказали с чего...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru