[英]Excel INDEX MATCH when one of multiple criteria is within a range of numbers
为了识别大量个人记录中的重复项,我将所有姓名替换为姓名和出生日期 (DOB) 的 CONCATENATE。 这是我参考的工作表(DOB!):
DOBs! -----------------------------------------
C D E F G I K
Name Years Start End # Yrs DOB NewNameDOB
Sally Adams 2014-2014 2014 2014 1 1968-1204 Sally Adams1968-1204
John Agnew 2014-2014 2014 2014 1 1979-0419 John Agnew1979-0419
Bob Anderson 2013-2014 2013 2014 2 1965-0402 Bob Anderson1965-0402
Antonio Andrews 2014-2014 2014 2014 1 1955-0716 Antonio Andrews1955-0716
Julie Assan 2012-2014 2012 2014 3 1978-0805 Julie Assan1978-0805
在主表(员工!)上,每个人都有一行数据,用于每个活跃年份。 工作 14 年,你有 14 行数据需要跟踪。
Employees! -----------------------------------------
C D **E** F G H I J...
Year Name NewNameDOB Dept
2013 Julie Assan Julie Assan1978-0805 East
1998 Mike Rogers Duplicate in Same Year Main
1999 Mike Rogers Duplicate in Same Year Main
2000 Mike Rogers Mike Rogers1969-0510 Main
2001 Mike Rogers Mike Rogers1969-0510 Main
如前所述,我需要从 10395 条记录(如 Mike Rogers 和 Mike Rogers)中分离出重复名称。 雇员! E 列现在将员工标识为 Julie Assan1978-0805 和 Julie Assan1980-0131(例如)。
今天,我们迈出了第一步,利用他们工作的年数来解决 99% 的重复项。 在此之后,将只剩下几个同时工作的重复名称,我将不得不手动处理。
如果员工! 工作表上有“Julie Assan”的 2013 年记录,那么第一步是检查 DOB 以查找在 2013 年工作的任何 Julie Assans。我在员工中的新列 E! 将采用 Julie Assan 2013 年的当前记录,并在 DOB 中查找任何匹配项! 其中 C(姓名)匹配 Julie Assan、E <= 2013 和 F >= 2013。通常只有一个匹配项,它会告诉我这是 Julie Assan1978-0805。 有时,会有两个 Mike Rogers 在同一年工作,它应该告诉我“同年重复”。
关于员工! 表列 E ,我已经开始了这个......
=index(DOBs!$k$2:$k$10395,match($d3&$c3,DOBs!$c$2:$c$10395&???,0)
不知道这个公式去哪里,是否意味着添加“IF”或不同的东西。
编辑以深入解释
=IF(COUNTIFS(DOBs!C$2:C$10395,Employees!D2,DOBs!E$2:E$10395,"<="&Employees!C2,DOBs!F$2:F$10395,">="&Employees!C2)>1,"Duplicate in Same Year",INDEX(DOBs!K$2:K$10395,MATCH(TRUE,IF(DOBs!C$2:C$10395=Employees!D2,IF(DOBs!E$2:E$10395<=Employees!C2,IF(DOBs!F$2:F$10395>=Employees!C2,TRUE))),0)))
通过使用 Ctrl+Shift+Enter 确认输入数组公式,然后向下自动填充。 它首先使用 COUNTIFS 检查重复项,如果是,则返回“同年重复”。 如果没有重复,它使用 INDEX/MATCH 来查找 NewNameDOB。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.