一般问题需要对大型 Excel 2007 列表进行排序,以查找与较小子集列表匹配的条目。
我对如何解决这个问题有一些想法,但我缺乏实现这些想法的技术能力。我将概述我的具体用例需求,以使问题更加清晰。
具体示例:
我有一个为我的销售区域管理的公司名称主列表(大约 1000 个客户帐户)。每周我的公司都会发布一份美国每个销售区域(我的区域和其他数百个区域)所有交易业务的清单。此交易日志有 10,000 多行,因此通过肉眼扫描来查找与我的帐户相关的交易几乎是不可能的。
我目前不完善的解决方案是将我的帐户列表用黄色突出显示,复制突出显示的列表,然后将突出显示的列表粘贴到每周交易日志的底部,然后按 AZ 排序,然后手动滚动到突出显示的项目。如果交易日志包含我的一个帐户,则交易日志条目将直接位于我插入的突出显示条目的上方或下方。这种方法很有效,但非常耗时。
我知道如何在 Excel 中消除重复项。有没有办法消除除重复项之外的所有内容?这样可以更轻松地查看列表。
另一个问题仍然存在,因为数据不一致限制了简单宏、过滤器或“查找重复项”按钮的使用。事务日志名称的拼写通常与我的主列表中的略有不同。
例如:Acme Widget Company, Inc.;Acme Widget Inc;Acme Widget; 例如:美国手球组织;美国手球组织;美国手球;USHO
我知道有些第三方应用可以使用模糊逻辑来匹配不精确的条目。但是,我无法在我的企业计算机上运行插件。(除非有非常令人信服的案例……)
是否有宏可以通过消除空格和标点符号来“规范化”交易日志?是否有宏可以匹配前 X 个字符(字符越多 = 准确度越高,但错过近乎重复的条目的可能性就越大……)?是否有宏可以输出或过滤生成的“匹配”列表?
如果这些任务太复杂,我有一个更简单的想法。将我突出显示的帐户列表合并到交易日志中后,最好能够隐藏我突出显示的项目上方或下方少于 5 行的所有其他交易日志行。这将为非标准拼写提供一定的灵活性,但大大简化了通过列表进行目视检查的任务。
任何关于如何实现这些想法(或完全不同的方法)的意见都将不胜感激。我认为这个问题的一般答案对其他人来说将很有价值,而不仅仅是我所描述的狭隘用例。
谢谢!
答案1
这里确实有太多问题需要回答(正如 hyperslug 所评论的那样)。我遇到过非常类似的情况,我发现要找到重复项,我必须手动操作,因为要编码的种类太多了。
您建议的所有宏都可以编写,如果您决定哪个最有效,请将其作为单独的问题提出,我们会尽力而为。最后一个很容易实现,可以节省您的滚动时间。我会创建该宏,然后在隐藏重复项后,只需单击并将“标准”条目拖到其他条目上即可。
答案2
我将使用 Excel 的 MATCH 函数来获取所需的数据,而不是复制和排序。
假设你的主列表位于命名范围名为 Master,交易日志中的公司名称位于 D 列。在交易行的某处,输入以下公式: =IF(ISNA(MATCH(D1,Master,0)),0,1)
并将其复制到交易表中的所有行。如果公司名称匹配,则此公式的结果为 1,否则为 0。
这只会匹配确切的名称。您需要做的是将备用名称添加到主范围(确保在添加名称后对其进行排序)以获取所有可能的版本。
答案3
我同意将替代拼写添加到主列表中的方法(您可能有第二列来告诉您哪种是您的首选邮寄格式等,哪种只是为了匹配公司数据)。您可能会成功使用连续的 SUBSTITUTE 函数来生成名称的替代版本。例如
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(LOWER(A1)," inc",""),".","")," ","")...
因此,每次替换都会用替换内容替换所选文本的任何实例 - 在我们这里的情况中没有替换内容。根据我对来自不同系统的名称进行类似模糊匹配的经验,您可能必须删除诸如 inc、corp、plc 等内容才能获得匹配。虽然您可以使用 SUBSTITUTE 来实现这一点,但您可能会得到一些奇怪的结果,例如“Income Corporation”变成了“omeorporation”,因此使用这种东西可能更安全:
如果 (RIGHT(lower(A1),4)="corp",left(lower(A1),len(A1)-4)),lower(A1))。
最后替换空格。
您可以使用具有类似结果的 MATCH 或 COUNTIF 来提供一列显示哪些交易与您的列表匹配。
另一种方法是使用主列表作为高级过滤器的依据,这样您就可以非常轻松地复制与您的客户名称匹配的交易列表条目,并将此过滤后的副本放在其他地方(例如放在一边或另一张纸上)。与上述方法一样,您仍然需要添加与原始名称相差太大的变体。
答案4
只是想知道您是否尝试过使用数据透视表。我使用 PT 处理大量数据,它们帮助我以多种方式快速查看问题,并且数据完整。
突出显示所有数据并选择插入数据透视表。现在,您将能够以多种交互方式查看数据,从而缩小任何令人讨厌的重复条目、拼写错误等的范围。然后,您可以使用自定义排序等以及 AZ 进行排序。