У меня есть две таблицы в одном листе.Как выровнять строки с одинаковым набором данных в Excel или VBA? - PullRequest
0 голосов
/ 12 сентября 2018

У меня две таблицы в одном листе Excel.

Я хочу использовать код Excel VBA для выравнивания набора строк, которые частично совпадают в одной строке. Возможно ли это сделать?

Я думал об этом, но не могу понять код.

Например, я хочу выровнять строки с одинаковыми Введены «Число», «Имя» и «Заказ».

До:

enter image description here

После того, как: enter image description here

Заранее спасибо.

1 Ответ

0 голосов
/ 12 сентября 2018

Возможно, это не лучший способ, но относительно простым способом может быть просто автоматизировать то, что вы делаете вручную.Перебирайте строки, проверяйте, совпадают ли столбцы, которые вы хотите, используйте метод Range.Insert для выполнения вставок, а не выполняйте их вручную.

Если это пара таблиц в SQL, что выВы ищете эквивалент FULL OUTER JOIN двух таблиц по трем интересующим колонкам.Есть некоторая информация о выполнении этого типа операции в Excel в этом вопросе суперпользователя .

Я бросил пример данных в базу данных SQL и смог воспроизвести желаемый результат, используя эти запросы:

SELECT t1.* 
FROM Table1 t1
    FULL OUTER JOIN Table2 t2 ON t1.Number = t2.Number AND t1.[Name] = t2.[Name] AND t1.[Order] = t2.[Order]
ORDER BY CASE WHEN t1.Number IS NULL THEN t2.Number ELSE t1.Number END

SELECT t2.* 
FROM Table1 t1
    FULL OUTER JOIN Table2 t2 ON t1.Number = t2.Number AND t1.[Name] = t2.[Name] AND t1.[Order] = t2.[Order]
ORDER BY CASE WHEN t1.Number IS NULL THEN t2.Number ELSE t1.Number END
...