阅读特定文本,然后从另一张纸复制文本

时间:2018-09-17 11:00:49

标签: excel excel-formula

我要根据标题将文本从工作表1复制到工作表2。

=IF(Sheet1!A1=Sheet2!A1,Sheet1!A2:A40,(IF(Sheet1!B1=Sheet2!A1,Sheet1!B2:B40,(IF(Sheet1!C1=Sheet2!A1,Sheet1!C2:C40,(IF(Sheet1!D1=Sheet2!A1,Sheet1!D2:D40,(IF(Sheet1!E1=Sheet2!A1,Sheet1!E2:E40,(IF(Sheet1!F1=Sheet2!A1,Sheet1!F2:F40,(IF(Sheet1!G1=Sheet2!A1,Sheet1!G2:G40,"")))))))))))))

=IF(Sheet1!A1=Sheet2!A1,Sheet1!A2:A40,
  (IF(Sheet1!B1=Sheet2!A1,Sheet1!B2:B40,
    (IF(Sheet1!C1=Sheet2!A1,Sheet1!C2:C40,
      (IF(Sheet1!D1=Sheet2!A1,Sheet1!D2:D40,
        (IF(Sheet1!E1=Sheet2!A1,Sheet1!E2:E40,
          (IF(Sheet1!F1=Sheet2!A1,Sheet1!F2:F40,
            (IF(Sheet1!G1=Sheet2!A1,Sheet1!G2:G40
  ,"")))))))))))))

到目前为止,这是我目前所见不尽的混乱,但它仅在大约57%的时间内有效。我不知道为什么。

例如,假设标题为Test1,Test2,Test3等,那么我该如何做,以便excel读取表头中的Test1的sheet1,并复制从下面的单元格开始的列,并将其复制到任意列Test1中在sheet2中吗?

我对excel公式有相当基本的了解,对VBA甚至还很少,因此欢迎您提供任何帮助。

1 个答案:

答案 0 :(得分:0)

这对于INDEX()是一件好事,通过为其中一个参数传递0,您可以声明希望返回整列(或者更精确地匹配列的所有行) :

=INDEX(Sheet1!A2:G40,0,MATCH(Sheet2!A1,Sheet1!A1:G1,0))

没有一些示例数据和预期的输出,我无法证明这是否正是您所追求的。请随时提供更多的范围,并给我留下评论,我将更新我的答案。

编辑:

要获取列的结果,您将组装如下所示的查询:

=INDEX(Sheet1!$A$2:$G$40,ROW()-1,MATCH(Sheet2!A$1,Sheet1!$A$1:$G$1,0))

以便为要返回的数据建立索引,然后返回当前所在的行(数据从第二行开始时偏移-1)。最后的MATCH()返回与Sheet2!A$1匹配的列标题的位置。

$$在这里很重要,因为当您在工作表上拖动公式时,绝对引用会阻止公式更改(Sheet2!A$1仅在水平拖动时会更新,而在垂直拖动时不会更新)