excel - 需要找到与两列条件匹配的值。可能的 VLOOKUP

标签 excel excel-formula

下面更新 -- 6/4

我在excel中有两个工作表。一个是带有支票#/金额/捐赠者 ID 的捐赠者列表(“捐赠”工作表),另一个是带有捐赠者 ID/支票#/金额的会计信息副本(快速簿工作表)。 Quickbooks 尚未填写 DonorID。

我遇到的问题是我需要将捐赠者 ID 与他们的支票相匹配。为了得到这个,我需要匹配 check#amount在“Quickbooks”中与“Donations”中的相同,当它们匹配时,它会给我与该支票对应的捐赠者 ID。

这是它的布局方式:

Donations Worksheet:
     A                  B           C
 DonationID           Check#     Amount
1   179                106        $200
2   210                106        $500
3   220                106        $600

Quickbooks Worksheet:
      A                B          C
  DonationID         Check#     Amount
1    n/a              106        200
2    N/a              1074       500
3    N/a              300        1000

当我要求查找“支票# 106 是 200 美元”时,它应该告诉我它来自捐赠者 179。

有些支票不匹配,也不是来自捐赠者。该列表有近 50000 个名字。

请问我任何问题,以便我可以更清楚地说明这一点。我对这一切也有些陌生,如果我不清楚的话,我深表歉意。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~

感谢大家的帮助。我们还没有到那里,但你们都在引导我朝着正确的方向前进。

我添加了页面的屏幕截图以供引用,因为团队在使给定公式的工作时遇到问题。我还将两张纸合并到一页上,这样交叉工作表的引用就更少了,而且更容易阅读。

Cknum = 检查#

worksheet

最佳答案

两列匹配通常采用两种典型配置之一;一个是数组公式,另一个是标准公式。两者都使用 INDEX 的变体/MATCH功能对。

Two column Match with INDEX MATCH

Quickbooks!A2 的标准公式是,

=IFERROR(INDEX(Donations!A$1:A$999, MIN(INDEX(ROW($1:$999)+((Donations!B$1:B$999<>B2)+(Donations!C$1:C$999<>C2))*1E+99, , ))), "No match")

Quickbooks!A2 的数组公式版本是,
=IFERROR(INDEX(Donations!A$1:A$999, MATCH(1, (Donations!B$1:B$999=B2)*(Donations!C$1:C$999=C2), 0)), "no match")

数组公式需要使用 Ctrl+Shift+Enter↵ 而不是简单的 Enter↵ 来完成。

将其中一个公式正确放入 Quickbooks!A2 后,根据需要填写以捕获其他行中的值。请注意,我已更改示例数据的第三行,以演示 Check# 106 的第二次 DonationID 查找。

对于大约 5 万条记录,很有可能在 B 列和 C 列上都进行多个匹配。要从捐赠工作表中捕获随后的第二个、第三个等匹配,请更改 MIN functionSMALL function并使用渐进式 COUNTIFS function调整 k 序数。
=IFERROR(INDEX(Donations!A$1:A$50000, SMALL(INDEX(ROW($1:$50000)+((Donations!B$1:B$50000<>B2)+(Donations!C$1:C$50000<>C2))*1E+99, , ), COUNTIFS(B$2:B2, B2, C$2:C2, C2))), "No match")

像这样在捐赠工作表中设置一些有意的重复项后,
DonationID  Check#  Amount
179         106    $200 
210         106    $500 
220         106    $600 
979         106    $200 
910         106    $500 
920         106    $600 

您应该会收到如下结果。

Two column Matches with duplicates

IFERROR function已用于捕获不匹配并显示不匹配,而不是 #N/A错误。

我已经修改了您的单个工作表示例数据中的值以显示各种匹配项以及 chknum 和金额被两个不同的donationID 条目重复的一种情况。

VLOOKUP multiple criteria with duplicates

匹配的记录采用颜色编码以供快速引用。我已在我的 Docs.com-Preview 站点上公开了此示例工作簿。

VLOOKUP_w_Multiple_Criteria_and_Duplicates.xlsx

关于excel - 需要找到与两列条件匹配的值。可能的 VLOOKUP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30628109/

相关文章:

python - Xlsxwriter 中有 csv.DictWriter 吗?

php - 如何在 PHP 中打印每个子节点和孙节点旁边的最高级别父节点

.net - 如何判断 Excel 应用程序是否处于单元格编辑模式?

java - 使用apache poi阅读时如何在excel中获取卡住或拆分列的信息?

excel - 使用 Excel 将 URL 修剪为根/子域

excel - 计算日期列表中事件的天数和持续时间

excel - 如何获取日期范围之间的天数

excel - 仅在时间大于 60 分钟时显示小时

excel - 更改单元格格式但不更改数字大小?

excel - 获取 Excel 范围的唯一版本的排名