合并两张工作表中的 Excel 行

Kha*_*mes 6 regex merge microsoft-excel microsoft-excel-2010

我想开始道歉这个问题,有关于合并的Excel行,还是在浏览网页和“名单后,许多问题的问题 可能 已经 你的 答案”,我还是不知道怎么解决我的问题。

编辑:似乎可能的解决方案可能会根据我想要合并的不同电子表格中的数据类型而有所不同。在这种情况下,一旦所有数据记录(但最左边的列)都是数字,使用“合并”功能似乎可以解决问题。我的问题是如何找到数字和文本混合数据的解决方案(文本也可能包含非英文字母)。问题已被编辑以提供更好的示例。

我有两个包含不同数据的电子表格。唯一的相似之处在于最左边一列的值:

电子表格1的例子,实际上它包含数千条记录,与供应链无关 电子表格1的例子,实际上它包含数千条记录,与价目表无关

我已经将两个电子表格中的数据合二为一,方法是将其中一个电子表格最左侧列的值粘贴到第二个电子表格最左侧列的值下方。对于其余的值,我已将它们粘贴到右侧,因此来自不同电子表格的列不会混合。这样做之后,我根据最左边一列的值对电子表格进行了排序,得到的结果类似于图中的简化示例:

来自电子表格 1 和 2 的数据,合并在一个电子表格中,已排序但未合并

我想用这个电子表格做的是消除重复的行,并根据最左边的列合并重复行中的数据。插图中提供了相应的示例:

在此处输入图片说明

一些重要的注意事项

我更喜欢使用源电子表格,而不是将它们组合到一个中间未合并的电子表格中,但我欢迎任何有助于我实现目标的解决方案。

数据记录(如上图所示)可能不完整,包含数字和文本。此外,数据记录可能是错误的,所以我不能假设给定的列总是有数字或文本(例如,电子表格 2 的发货列)。

有些行的最左列值仅出现在其中一个电子表格中(例如,“name5”仅来自电子表格 1,而“name3”和“name6”仅来自电子表格 2)。

我试图避免为此使用 VB 宏,而更喜欢使用 Excel 中已经存在的内置函数。

另一方面,如果无法使用 Excel 内置工具完成此任务,我愿意考虑导出到 CSV 并使用正则表达式。在这种情况下,问题可能需要在 StackOverflow 上找到一个新家。

Ell*_*esa 6

对于数值数据...

尝试使用内置的整合功能。

假设我有 ff。Sheet1Sheet2 中的数据,分别。

在此处输入图片说明

  1. 选择目标单元格。只要您有足够的空间来显示结果,任何单元格/范围都可以。我建议创建一个新的工作表并突出显示单元格A1
  2. 转到数据>合并。您也可以按Alt+ A, N
  3. 选择总和
  4. Reference 下,单击选择引用按钮并突出显示Sheet1 中的数据(包括行标签和标题)。单击添加

    在此处输入图片说明

  5. 重复上一步,但改为在Sheet2 中添加数据。

    在此处输入图片说明

  6. Use labels in 下,确保选中Top rowLeft column。你会有这样的事情:

    在此处输入图片说明

  7. 单击“确定”

结果:

在此处输入图片说明


对于各种类型的数据...

  1. 使用合并功能获取唯一的行标签和列标题。清除数据但保留标签/标题:

    在此处输入图片说明

  2. 在表格最左边的空白单元格中输入这个粗略的公式,然后上下复制。替换命名范围以适合您的数据。

    =IFERROR(IFERROR( INDEX(sheet1_data,MATCH($A2,sheet1_rowlabels,0),MATCH(B$1,sheet1_headers,0)), INDEX(sheet2_data,MATCH($A2,sheet2_rowlabels,0),MATCH(B$1,sheet2_headers,0))), "")

    其中
    sheet1_data,sheet1_rowlabels&sheet1_headers分别指Sheet1中所有数据(A1:C5)第一列(A1:A5)&第一行(A1:C1)
    sheet2_data,sheet2_rowlabels&sheet2_headers指所有数据(A1:D6)第一列(A1:A6) & Sheet2 中的第一行 (A1:D1) 分别

  3. 根据需要格式化。

    在此处输入图片说明

  • 我已经尝试了你的建议,它有效。我所做的唯一更改是在我分别引用 sheet1_data 和其余范围时写入 $A$5:$C$5,而不是普通的 A1:C5。 (2认同)