我被这个 excel 问题难住了,一直在寻找解决方案,但没有成功。希望你能帮忙!
在 AI 列中有客户列表,在 BI 列中有更长的发票列表。基本上,我想做的是将最新的发票与客户匹配。我尝试使用=INDEX(B:B, MATCH(1,IF(ISERR(FIND(A1,B:B)),0,1),0))
此公式在发票列表中搜索客户 1 的姓名,并将找到的第一张发票带回 C1。
只要客户只有一张发票,这个公式就非常有用。之后,这个公式就没用了,因为我需要的是最近的发票,而不是它找到的第一张发票。
我想要实现的功能如下表所示。请注意,客户 4 有发票 #002 和 #003,我需要与该客户匹配的最新发票(或最接近底部的发票)。
+------------------------------------------------------------------------+
| Customers Invoices Recent Invoice |
+------------------------------------------------------------------------+
| Customer 1 [Invoice #001] Customer 3 [Invoice #004] Customer 1 |
| Customer 2 [Invoice #002] Customer 4 N/A |
| Customer 3 [Invoice #003] Customer 4 [Invoice #001] Customer 3 |
| Customer 4 [Invoice #004] Customer 1 [Invoice #003] Customer 4 |
+------------------------------------------------------------------------+
对我来说这似乎很简单......从底部开始向上搜索......但我猜它不是那么简单。
任何帮助将不胜感激!
—J
答案1
这将找到每个客户的最后一条条目:
=INDEX(B:B,AGGREGATE(14,6,ROW($B$2:INDEX(B:B,MATCH("zzz",B:B)))/(ISNUMBER(SEARCH(A2,$B$2:INDEX(B:B,MATCH("zzz",B:B))))),1))
如果您想要倒数第二个,请将最后一个更改1
为2
。