我在同一张纸上有两个表。如何使用Excel或VBA对齐具有相同数据集的行?

时间:2018-09-12 16:21:21

标签: excel excel-vba

我在同一张Excel工作表中有两个表。

我想使用Excel VBA代码来对齐在同一行上部分相等的行集。可以这样做吗?

我一直在考虑这个问题,但是我似乎无法弄清楚代码。

例如,我想将行与同一行对齐 输入了“数字”,“名称”和“订单”。

之前:

enter image description here

之后: enter image description here

谢谢。

1 个答案:

答案 0 :(得分:1)

可能不是最好的方法,但是相对简单的方法可能只是使您手动执行的操作自动化。遍历行,检查所需的列是否相同,请使用Range.Insert方法执行插入操作,而不是手动执行插入操作。

如果这是SQL中的一对表,那么您要查找的是与感兴趣的三列中的两个表中的FULL OUTER JOIN等效。在this Super User question中有一些有关在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