一般問題需要對大型 Excel 2007 清單進行排序以尋找與較小子集清單相符的項目。
我對如何解決這個問題有一些想法,但我缺乏實現這些想法的技術成熟度。我將概述我的具體用例要求,以使問題更加清晰。
具體範例:
我有一個為我的銷售區域(大約1000 個客戶帳戶)管理的公司名稱主列表。清單。
我目前不充分的解決方案是以黃色突出顯示我的帳戶列表,複製該突出顯示的列表,然後將該突出顯示的列表粘貼到每週交易日誌的底部,然後對AZ 進行排序,然後手動滾動到突出顯示的項目。如果交易日誌包含我的帳戶之一,則交易日誌條目將直接位於我插入的突出顯示條目的上方或下方。這種方法很有效,但是非常耗時。
我知道如何消除 Excel 中的重複項。有沒有辦法消除重複以外的所有內容?這將使視覺掃描清單變得更容易。
另一個問題仍然存在,因為資料不一致限制了簡單巨集、過濾器或「尋找重複項」按鈕的使用。交易日誌名稱的拼字通常與我的主清單中的名稱略有不同。
例如:Acme Widget Company, Inc.; Acme Widget 公司; Acme 小工具; 例如:美國手球組織;美國手球組織;美國手球; USHO
我知道有一些第三方應用程式可以使用模糊邏輯來匹配不精確的條目。但是,我無法在我的企業電腦上運行插件。 (除非有非常令人信服的案例…)
是否有一個巨集可以透過消除空格和標點符號來「規範化」交易日誌?是否有一個巨集可以匹配前 X 個字元(更多字元 = 更高的準確性,但丟失近乎重複的條目的可能性更大...)?是否有一個巨集可以輸出或過濾結果“匹配”列表?
如果這些任務太複雜,我有一個更簡單的想法。將我突出顯示的帳戶清單合併到交易日誌中後,如果能夠隱藏突出顯示的項目上方或下方少於 5 行的所有其他交易日誌行,那就太好了。這將為非標準拼字提供一定的靈活性,但大大簡化了透過清單進行目視檢查的任務。
任何有關如何實施這些想法(或完全不同的方法)的意見將不勝感激。我認為除了我所描述的狹隘用例之外,這個問題的一般答案對其他人來說也是有價值的。
謝謝!
答案1
這裡肯定有太多問題需要回答(如 hyperslug 評論)。我有一個非常相似的情況,發現為了找到欺騙者,我只需要手動完成,因為需要編碼的種類太多了。
您建議的所有巨集都可以編寫,如果您決定哪一個最有效,則將其作為一個單獨的問題提出,我們將盡力而為。最後一種實現起來很簡單,並且可以節省您的滾動時間。我將創建該宏,然後在隱藏欺騙項後,只需單擊“標準”條目並將其拖曳到其他條目之上。
答案2
我會使用 Excel 的 MATCH 函數來取得所需的數據,而不是複製和排序。
假設您的主列表位於命名範圍=IF(ISNA(MATCH(D1,Master,0)),0,1)
名為 Master,交易日誌中的公司名稱位於 D 欄位中。 如果公司名稱匹配,則此公式將得出 1,否則得出 0。
這只會匹配確切的名稱。您需要做的是將備用名稱新增至主範圍(確保在新增名稱後對其進行排序)以獲得所有可能的版本。
答案3
我同意在主列表中添加替代拼寫的方法(您可能有第二列來告訴您哪種是您首選的郵寄格式等,哪種只是為了匹配公司資料)。您可能會成功地使用連續的 SUBSTITUTE 函數來產生名稱的備用版本。例如
=替換(替換(替換(下(A1),“公司”,“”),“。”,“”),“”,“”)...
因此,每次替換都會用替換內容替換所選文本的任何實例 - 在我們的例子中沒有任何內容。根據我在不同系統的名稱之間進行類似模糊匹配的經驗,您可能必須放棄諸如 inc、corp、plc 等內容才能獲得匹配。雖然您可以使用 SUBSTITUTE 來實現此目的,但您可能會得到一些奇怪的結果,例如“Income Corporation”變成“omeorporation”,因此使用此類內容可能會更安全:
IF(右(下(A1),4)=“公司”,左(下(A1),len(A1)-4)),下(A1))。
最後替換空格。
您可以使用具有類似結果的 MATCH 或 COUNTIF 來提供一列,顯示哪些交易與您的清單相符。
另一種方法是使用您的主清單作為高級過濾器的標準,這將使您能夠非常輕鬆地獲取與您的客戶名稱匹配的交易清單條目的副本,並將此過濾後的副本放置在其他地方(例如,放在一側或另一張紙上)。與上述一樣,您仍然需要添加與原始名稱相距太遠的變體。
答案4
只是想知道您是否嘗試過使用資料透視表。我使用 PT 處理大量數據,它們幫助我非常快速地以多種方式查看問題並具有完整的數據完整性。
反白顯示所有資料並選擇插入資料透視表。現在,您將能夠以多種互動方式查看數據,從而縮小任何煩人的重複條目、拼寫錯誤等的範圍。