根据输入从两个单独的工作表中复制多个单元格

时间:2019-06-28 10:02:25

标签: excel vba excel-formula

我有三张纸:

Sheet 1

Sheet 2

Sheet 3

我手动将值从工作表1的A列复制到工作表3的A列中,并将值从工作表2的A列复制到工作表3的B列中(如所附图像所示)。

根据列A和列E选择值。在工作表3中,将工作表1中的Q001-1 S1复制为G001-3 S3和G002-2 S2。

我想尽可能地简化此过程,因为这很耗时,但是我找不到解决方法。

使用公式或VBA甚至有可能吗?

2 个答案:

答案 0 :(得分:1)

如果我正确理解,则需要使用单元格ID作为条件在Excel中执行联接。 我会使用Power Query而不是VBA,因为它是专门为这种任务而设计的工具:

  1. 选择原始表并将其格式化为表(Tab Home)- 对两个数据源都执行此操作 Format as a table
  2. 将两个表都加载到PowerQuery中(单击表,然后转到Data / Get和TrasformData,然后选择From Table PowerQuery,对两个表重复此步骤
  3. 从表1中选择选项卡,然后选择合并,然后选择单元格ID作为条件(使用默认的左联接)Join
  4. 点击新列以传播数据,删除不必要的列
  5. 关闭查询并将其加载(左上)到新表(sheet3)中-仅加载输出表,而不加载原始表,因为不必要
  6. 要自动执行该过程,只需将新行添加到原始表中,然后单击“数据”选项卡,然后单击“全部刷新”。结果将显示在sheet3中

希望对您有帮助!

Emanuele

答案 1 :(得分:0)

如果您的计划是任意的或基于数学无法确定的标准,那么仅靠代码就无法解决。但是,如果要在第4张工作表上计划布置,则可以在第3页的每个单元格中编写条件公式,以评估第4页的计划并将其与包含字符串S1,S2和S3的单元格进行比较。在单元格A2中,您可以粘贴以下内容;

=IF((EXACT(Sheet1!E2,Sheet4!A2)),Sheet1!A2,IF((EXACT(Sheet1!E3,Sheet4!A2)),Sheet1!A3,Sheet1!A4))

它正在评估S1或S2的工作表4上的相应单元格,如果看不到,则假定为S3。然后,它选择工作表1上的相应单元格。B列中的代码使用相同的技巧评估工作表4上的相应单元格;

=IF((EXACT(Sheet2!E2,Sheet4!B2)),Sheet2!A2,IF((EXACT(Sheet2!E3,Sheet4!B2)),Sheet2!A3,Sheet2!A4))

然后在表格2上选择相应的单元格。您可以根据需要将这些单元格向下拖动。

我编写了一个工作模型并将其发布到GoogleDocs