Excel - 如何比较两个单独的列以查找匹配的名称,然后在另一列中打印最大值

Excel - 如何比较两个单独的列以查找匹配的名称,然后在另一列中打印最大值

所以我的问题是

A 列 - 组织名称 (Jeffs Pizza) {Dons burgers}

B 列 - 新资金金额?这是需要的吗?

C 列 - 组织名称 (Jeffs Pizza、Jeffs Pizza、Jeffs Pizza){Dons burgers、Dons burgers、Dons burgers}

D 列 - 每月金额(1,000、250,000、65,000){75,000、45,000、35,000}

现在我的电子表格包含的数据比这个多得多~每个电子表格中有 1000 个项目,手动操作太多了,这只是一个例子。我需要比较 A 列和 C 列,然后一旦匹配,就搜索 D 列以查找匹配名称的最大值。

现在在我的电子表格中,名称并不完全匹配。所以我只需要搜索包含主要名称。例如,我可能有 Dons burgers inc.、Dons burgers LLC,但它们仍然需要像 Dons burgers 一样进行搜索。

感谢您的所有帮助,我非常感激。

答案1

这里有三个重要元素。一个是识别需要从中获取值的数据的方法MAX(),一个是隔离数据以便MAX()发挥其魔力,一个是执行第一个方法的方式有些不同寻常。

因此,第二个:有一个名为的函数FILTER()将以您需要的方式隔离数据。如果这适合您当天的需求,它可以为您提供填充数据的单元格,尽管这不是您的首选,或者它可以将该输出提供给公式进行处理,这是您将在此处执行的操作。基本上,它可以查看您的数据并在 C 列中找到与您在 A 列中显示的内容相匹配的所有匹配项。找到这些匹配项后,它可以从您指定的任何匹配列返回信息。或列,复数。非常适合您想要做的事情,因为其他查找函数喜欢返回单个值,而不是一堆值。

这很简单。但是,您如何识别好的匹配?通常在 Excel 函数中,当您有一个用于匹配某些内容的条件参数时,您可以使用通配符。每个函数在如何执行此操作方面都略有不同,但您可以使用它们。FILTER()似乎不喜欢通配符。但是,它将使用一种人们通常不会想到的形式,即以大于或小于的方式比较字符串,就像您自然地对数字所做的那样,但根本不会想到字符串。所以你会这样做来完成FILTER()工作。

这将返回 C 列匹配项的 D 列值(同样,如果您愿意,可以返回单元格,但在本例中,返回公式)。然后,您将使用该MAX()函数选择这些 D 列匹配项中最大的一个:

=MAX( FILTER($D$2:$D$1001, $C$2:$C$1001>=A1) )

所以,这就是要使用的公式。但现在你还需要考虑另一个问题。而且要非常小心:

如果“Dons Burger”在 C 列中显示为“Don's Burger”,该怎么办?那么这种方法就行不通了。正如您指定的问题一样,假设 C 列将始终以 A 列中的内容开头,因此如果 A 列值中有 10 个字母,则 C 列中所有目标条目的前 10 个字母都将以这 10 个字母开头。但是……如果第 4 个字母是撇号怎么办?那么一切都会失败。

也许这不是一个问题,但在依赖结果之前可能需要检查一下!

答案2

这可能不是一个完整的答案,但可能是一个有用的起点。您可能需要添加一些辅助列来保存 A 列的“干净”版本和 C 列的“干净”版本,然后比较它们。有几种方法可以解决这个问题:

  1. 使用查找

复制 A 列和 C 列中的所有可能值,将它们粘贴为单个列表并删除重复项。对于每个条目,在下一列中填写其实际含义。例如 Dons Burger Joint > Dons Burgers;Donnie's Burgers > Dons Burgers;Dan's Burgers > Dons Burgers。第二列应该有很多重复项,并且不应该有不同但指向同一事物的值。对于 A 列和 C 列,在两个新列中使用查找来查找 A|C 保存的值并返回相应的“正确”值。对于 C 列,您需要使用 LEFT 或 MID 和 FIND 进行一些解析,以获取 ( 和第一个逗号之间的文本,然后再进行查找。然后比较它们以查看哪些匹配。

  1. 使用“清理”函数来删除无关信息。多次嵌套 SUBSTITUTE 函数以删除“LLC”和“Inc”等内容以及所有标点符号,然后 TRIM 以获得名称的“精简”版本。只要您没有名为 Jeff's Pizza 的客户和名为 Jeffs P'izza 的客户,您就没问题

  2. 可能执行 2,但可能较少,然后使用它来像 1 中那样进行查找。

当您获得新数据时,您可能需要在查找表中添加更多行,以查找人们此次输入数据的所有新颖和创造性的方式,并随着时间的推移逐渐建立起来。(如果在表中找不到值,请使用查找来抛出有意义的消息)。

相关内容