我有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
答案 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)
假设
输入以下公式/值:
=G2
=G3
=0
=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开始。