[英]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.