在 Excel 上查询姓名和号码的匹配情况

在 Excel 上查询姓名和号码的匹配情况

我在 A 列中有员工姓名,在 B 列中有员工 ID,在 C 列中有 A 列中的员工 ID。

我需要运行一个公式来将 C 列中的员工 ID 匹配到 B 列,并且 A 列中的员工姓名应该匹配/排序输出。

例如:如果 D 列的输出为 2,3,1,2,则必须相应地匹配名称。请帮忙提供公式。

Column A  Column B(EMp Id) Column C (Employee Id) 
Patrick    1                4
George     2                1
Bunny      3                2
Serge      4                3

答案1

MATCH()使用和的组合INDEX()

D1进入:

=INDEX($A$1:$A$4,MATCH(C1,$B$1:$B$4,0))

并向下复制:

在此处输入图片描述

MATCH()找到行并INDEX()检索名称。

答案2

组合Index & Vlookup也可以找到名称:

在此处输入图片描述

  • 单元格中的公式N1,填写完毕:

    =IFERROR(INDEX(K$1:K$4,VLOOKUP(M1,L$1:L$4,1,TRUE)),"")
    

根据需要调整公式中的单元格引用。

答案3

或者我更喜欢使用VLOOKUP():制作VLOOKUP()“向左看” (人们经常读到它不能做...)。

=VLOOKUP(C1,INDEX($A$1:$B$4,ROW($A$1:$B$4),{2,1}),2,FALSE)

标准VLOOKUP(),除了第二个参数指定要使用的范围。

对于要使用的范围,INDEX()采用包含两列的范围,并按照 columns 参数指定的顺序提取这两列。在本例中,即“数组常量”,{2,1}它首先提取两列中的第二列,然后提取两列中的第一列,从而有效地创建一个两列查找表,其中查找列位于首位,因此所需的值位于其右侧。

一个包含 300 列的表格的工作就像提取所需的两列一样简单(可能是“{288,43}”阻碍了它们,没关系,它们可以是任意两列,大概编号较低的列是第二列。人们可能会认为如果它先出现,就没有什么理由去担心,但人们仍然可能喜欢,因为公式中只处理两列,而不是我的例子中的全部 300 列。

Rajesh Sinha与方法相比,我更喜欢它,因为它让VLOOKUP()我们向左看,而且看起来更直接。

(考虑到它的易用性以及结果的无趣性,根本没有理由使用带有该方法的方法,CHOOSE()而且如果选择多个列的话,它偶尔会出现奇怪的现象。)

当然,到XLOOKUP()现在 (2021 年),它可以处理的大多数事情都已经得到更好的处理,尽管XLOOKUP()在提出这个问题时,它可能不会被普遍使用:

=XLOOKUP(C1:C4,B1:B4,A1:A4)

谈论“直截了当”!

顺便说一下,INDEX()形成查找范围的技巧与类似HLOOKUP(),只需使用数组常量来表示行,而不是列。

(此外,这并不是一成不变的,只是我的经验和偶尔的实验,当我有了一个想法时,我VLOOKUP()似乎不喜欢同时使用“奇数”寻址来查找查找值和提取结果的列。因此,如果使用一系列单元格作为查找值进行查找,则只能指定一列来提取结果。或者,如果使用数组常量作为要从中提取结果的列,它会拒绝除查找值的单个值/单元格之外的任何内容。但是,这两个事实都不会影响INDEX()以这种方式使用。)

相关内容