【问题标题】:Excel INDEX MATCH when one of multiple criteria is within a range of numbers当多个条件之一在数字范围内时,Excel INDEX MATCH
【发布时间】:2015-09-01 02:06:14
【问题描述】:

为了识别大量个人记录中的重复项,我将所有姓名替换为姓名和出生日期 (DOB) 的连接。这是我引用的工作表(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! 将采用 2013 年的当前记录Julie Assan,并在 DOB 中找到任何匹配项!其中 C (name) 匹配 Julie Assan,E = 2013。通常只有一个匹配项,它会告诉我是 Julie Assan1978-0805。有时,会有两个 Mike Rogers 在同一年工作,它应该告诉我“同一年重复”。

关于员工!工作表列 E,我从这个开始...
=index(DOBs!$k$2:$k$10395,match($d3&$c3,DOBs!$c$2:$c$10395& ??? ,0)

不确定该公式的用途,是否意味着添加“IF”或其他内容。

为深入解释而编辑

【问题讨论】:

  • 不清楚你的目标是什么。如果您发布示例输入数据和预期输出,这将有所帮助。
  • 好的,我已经更新了更多信息。希望现在更清楚了。

标签: excel if-statement indexing range match


【解决方案1】:
=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。

【讨论】:

  • 谢谢,凯尔!我试过 ={IF(COUNTIFS(DOBs!C$2:C$10395,Employees!D2,DOBs!E$2:E$10395,"="&Employees !C2)>1,"同年重复",INDEX(DOBs!K$2:K$10395,MATCH(TRUE,IF(DOBs!C$2:C$10395=Employees!D2,IF(DOBs!E$2:E$10395 =Employees!C2,TRUE))),0)))} 并尝试在第一个 DOBs!C$2:C$10395 之后添加“=”。 .. 他们都出现了 N/A(在 MATCH 评估中未找到值 'TRUE')。
  • 您的数据与您的样本不同吗?我用您的示例数据尝试了我的公式,它有效。另外,我注意到您在公式中包含了花括号,当您使用 Ctrl+Shift+Enter 确认时,Excel 会自动插入这些花括号,您不想自己输入这些花括号。
  • 是的,这只是一个小示例……我如何发送或上传当前文件?我有 Google 表格和 Excel 格式的文件
  • =IF(COUNTIFS(DOBs!C$2:C$10395,Employees!D2,DOBs!E$2:E$10395,"&lt;="&amp;Employees!C2,DOBs!F$2:F$10395,"&gt;="&amp;Employees!C2)&gt;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&lt;=Employees!C2,IF(DOBs!F$2:F$10395&gt;=Employees!C2,TRUE))),0))) 实际上我把一些列搞混了。即使你把它标记得非常清楚,你从 C 开始让我搞砸了。
  • 我编辑了我的答案,使用该公式而不是之前的评论。它们完全相同,但由于某种原因,当我从评论中复制公式时,Excel 不会接受它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-09
  • 1970-01-01
  • 1970-01-01
  • 2017-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多