【问题标题】:Compare sheet1 columns(400) data matching with sheet2 columns(500) as different column order将 sheet1 列 (400) 数据与 sheet2 列 (500) 匹配为不同的列顺序
【发布时间】:2018-06-25 02:32:48
【问题描述】:

表 1 有 400 列,数据行多达 10000 行,我想与表 2 进行比较,表 2 有 600 列意味着不同顺序的附加列。 将 sheet1 列数据与 sheet2 (作为不同的列顺序)进行比较,并突出显示工作表 2 中的差异,并在工作表 3 中突出显示不匹配的单元格,我是 VBA 新手,需要您的支持,

您可以在工作表 1 中突出显示任何一列作为主列

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    与其希望有人会编写您的代码或从头开始教您,不如对如何使用 Excel 的内置工具进行一些研究来完成这项工作可能会更好。因此,我的答案是“不要使用 VBA” — 组织数据是 Excel 的意义所在, 还有很多你可能没有的内置功能知道。

    首先,有Spreadsheet Compare(在某些版本中可用),它比较两个工作簿(或同一工作簿的两个版本)并帮助您查看和组织它们之间的差异。您还可以识别潜在问题,例如公式或计算的更改或手动输入的值。

    也是内置的,请参阅Consolidate data in multiple worksheets,允许您将不同工作表中的结果汇总和报告到单个文档中。这些工作表可以在同一个工作簿中,也可以在其他工作簿中。当您整合数据时,您就是在组装数据,以便您可以根据需要更轻松地进行更新和汇总。

    如果工作表之间的列顺序不同,并且给您(或内置工具)带来问题,那么一个简单的解决方法是在两个工作表上简单地sort the columns alphabetically。为此,您只需在排序选项中选择Left-to-Right

    我确定还有其他相关的features 我没有想到;查看您版本的ribbon 上可用的“所有”命令,看看是否还有其他您不知道的命令。

    还有一些worksheet functions 也可以帮助处理这样的过程。具体哪些取决于您的需求(在不了解您当前组织方法的详细信息的情况下,其他人不可能提供建议)。


    插入函数对话框

    在我的脑海中,VLOOKUPHLOOKUPINDEXMATCHFINDMIDLEFTRIGHT 都可能对这项任务有益。 (而且,仍然不需要 VBA。)在官方 Categorized List of Excel Functions 上了解更多信息,并具体参见查找函数部分。

    最后,有许多免费或付费的第三方插件专门用于比较和合并工作表。例如,这是 DiffEngineX 提供的比较功能的lengthy list

    对于 Excel 用户来说,手头有任务并假设有必要深入研究 VBA 是很常见的,而没有意识到 Excel 已经提供了他们需要的功能。根据经验,问问自己“这是独一无二的吗,还是以前有人可能需要做的事情?”在线某处的现有解决方案。

    【讨论】:

    • 感谢您的建议,但我想用 VBA 代码实现这一点
    • 这与固执无关,我非常感谢您的帮助,我的挑战就在这里,我们在软件中部署了大约 30 个文件,将在 csvs 中添加大量新字段以及现有的字段顺序不同,我有责任确保部署后,现有字段及其数据不会因为这个新变化而被修改,我觉得宏将是更好的选择,在我需要在部署前与部署后进行比较的每个文件中执行此操作文件以确保现有字段不受影响。请不要误会我,如果我仍然不相信你
    • 感谢您的解释(并删除了我的评论)。我了解您的业务需求很复杂,但这会使代码更加复杂,因此恕我直言,这是一个不合理的“第一个 VBA 项目”。这个网站不是一个你“提交你的请求,然后猴子们就会想出一个解决方案”的地方,也不是一个从头开始学习的地方。我将提供一些基本教程的链接,当您有一些代码要显示时,在某个部分或行中存在特定问题,这就是这里要问的问题。(参见“@ 987654335@")
    • 补充我的回答中的链接,如果你想使用 VBA,这里有几个很好的资源:@​​987654336@ 和 HomeAndLearn.org Learning VBA。内置功能(如上面)可以自动化,这样做是一个很好的学习过程。请参阅:Recording a Macro to Generate CodeRevising Recorded Visual Basic Macros
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-06-16
    相关资源
    最近更新 更多