Excel查找多个标准的第N个实例

时间:2014-03-08 04:35:06

标签: excel excel-formula

我有3列数据。 Col A包含Names,Col B包含客户端ID,Col C包含日期。

我正在试图弄清楚如何编写一个公式,该公式将在Col A中找到特定Name的前2个和前3个实例,在Col B中找到客户ID,并返回Col C中的值。

尽量避免使用VBA,但不确定这是否可行。

因此,例如数据看起来像这样,我想要回复Sam在12月16日第二次处理Client ABC。

Sam ABC 12/3

Adam XYZ 12/5

John DEF 12/9

Sam ABC 12/16

Adam HIJ 12/18

2 个答案:

答案 0 :(得分:0)

让我看看我是否理解你的需要。如我错了请纠正我。

您希望能够通知姓名和客户ID并让Excel告诉您该组合的最后3次出现吗?

通过“特定名称的前2个和前3个实例”,我假设您指的是该特定名称和ID的前2个和3个日期。

如果是这样,试试这个:

假设您的示例数据表从Cell A1开始并在Cell C6(包括列标题)结束,并且您将在F1中输入名称并在F2上输入客户ID

A B C
1名称客户ID日期
2 Sam ABC 12/3
3 Adam XYZ 12/5
4 John DEF 12/9
5 Sam ABC 12/16
6 Adam HIJ 12/18

在此处键入要返回上次出现日期的公式:

=IFERROR(LARGE(IF($A$2:$A$6=$F$1,IF($B$2:$B$6=$F$2,$C$2:$C$6)),1),"-")  

这应该作为数组公式输入,所以不要忘记按 CTRL + SHIFT + ENTER 或者它不起作用。

要将最后一次出现在另一个单元格上,只需复制并粘贴公式并将数字1更改为2(如下所示):

=IFERROR(LARGE(IF($A$2:$A$6=$F$1,IF($B$2:$B$6=$F$2,$C$2:$C$6)),2),"-")

如果您在F1上键入'Sam',在F2上键入'ABC',则此公式将在最后一次出现时返回'12/16',将'12 / 3'作为第二次出现时返回,并使用短划线( - )作为最后一次发生,因为没有一个。

当然,您必须在实际数据集中相应地调整范围和其他单元格引用。

希望这有帮助。

答案 1 :(得分:0)

假设

  • 您的标题位于A1:C1
  • 您的数据从A3开始(是的,不是A2)
  • 您在G2&中输入名称G3&中的客户ID你想要的清单 日期从G5开始

输入以下公式/值:

  • A2:=G2
  • B2:=G3
  • C2:=0
  • G5: =IFERROR(INDEX(($A$2:$A$500=$G$2)*($B$2:$B$500=$G$3)*($C$2:C$500),MATCH(0,COUNTIF($G$4:G4,($A$2:$A$500=$G$2)*($B$2:$B$500=$G$3)*($C$2:C$500)),0)),"End")

(G5中的公式是数组公式;使用Ctrl + Shift + Enter确认)

向下拖动G5中的公式,直到您看到'结束'

单元格G5中的值始终为0或“1”0'根据您的格式。

与名称相对应的日期列表&客户ID组合将从G6开始。

相关问题