Excel公式,以在工作表1中的数据匹配时从另一工作表复制文本


0

我一直试图找到一个公式,或者公式的组合,当我在工作表1中输入名称时,该工作表将从工作表2中复制一个值。

这是需要ID号的时间表。工作表1是发给工资单的时间表,其中A列是特定班次的雇员姓名,B列是其ID号。工作表2是一张表格,在A列中包含所有员工姓名,在B列中包含其ID号。

我希望能够在工作表1的A列中输入员工的姓名,并且公式将通过工作表2的A列进行匹配,然后将其ID号从工作表2的B列返回到工作表1的B列。 。


2
那就是Vlookup!
Patrick Honorez,2012年

谢谢,有人告诉我尝试结合使用索引和匹配项,但我可以使其完美工作

Answers:


1

在工作表1中,将以下内容放在B列中

=VLOOKUP(Sheet1!A2,Sheet2!A:B,2)

VLOOKUP公式基本上是这样说的:

VLOOKUP(X,Y,Z)

“在该公式存在的字段中,当Y中第一列的值与字段X中的值匹配时,返回范围Y的Z编号列中的值。”

源(示例中为Sheet2的“ Y”)必须按字段X(您的“名称”字段)排序,字段X(“名称”)必须为Y(Sheet2)的第一个字段。当字段未正确排序或找不到值时,VLOOKUP还会返回最接近的匹配项,因此在盲目返回结果之前,最好先验证X(“名称”)是否存在于Y(Sheet2)集中,这也是一个好主意。如:

=IF(COUNTIF(Sheet2!A:A,Sheet1!A2) > 0, VLOOKUP(Sheet1!A2,Sheet2!A:B,2),"N/A")

现在,您要在运行VLOOKUP之前验证该值是否存在,这将避免将Sheet1数据与错误的返回值混为一谈。(这可能会导致错误的人获得报酬,而其他人根本无法获得报酬)

它还将返回找到的第一个匹配项,因此名称值必须不同。因此,值得做的另一项检查可能是:

=IF(COUNTIF(Sheet2!A:A,Sheet1!A2) > 0, 
    IF(IF(COUNTIF(Sheet2!A:A,Sheet1!A2) > 1,
          "MORE THAN ONE MATCH",
          VLOOKUP(Sheet1!A2,Sheet2!A:B,2)
          ),
    "NAME NOT FOUND")

关于您的建议的所有内容都很完美,我只想提供一些改进。“ VLOOKUP还会在字段时返回最接近的匹配项”-除非您在函数末尾添加“,FALSE”。此外,使用IFERROR(Excel的2007+,有办法一轮它于2003年= IF(ISERROR ...)允许您掩盖错误。
加里

0

=SUMIF(sheet2!A8,"="&A8,Sheet2!G8)

您将在哪里工作@ Sheet 1

单击工作表1上任意行的B列,然后输入上面的公式。

如果工作表2上的单元格((A8(名称))等于我认为是工作表1的当前工作表上的单元格((A8(名称)),则在分配ID号的同时从工作表2中给出单元格编号。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.