單列中的名稱匹配和下一列中的所需結果

單列中的名稱匹配和下一列中的所需結果

我有很長的資料庫,大約有 4 到 5 行 lac 數據,我希望下一列具有任何類似名稱的結果。

我正在嘗試使用 Fuzzy,但我沒有唯一的匹配列表。

在此輸入影像描述

答案1

要解決您需要VBA(巨集)的問題:

在此輸入影像描述

怎麼運作的:

  • 要么按Alt+F11或者右鍵點擊工作表選項卡 & 從彈出式選單中點選檢視程式碼
  • 複製&貼上這段程式碼為標準模組。
  • 跑步宏。

     Private Sub Worksheet_SelectionChange(ByVal rngSel As Range)
      Set rngTable = [I2:K17]
       If rngSel.Count > 1 Or Intersect(rngSel, rngTable) Is Nothing Then End
       For Each rngCell In rngTable
    rngCell.Interior.ColorIndex = IIf(rngCell.Value = rngSel.Value, 27, -4142)
       Next
     End Sub
    

注意

  • 在此程式碼中,rngTable = [I2:K17]儲存格引用以及顏色代碼27, -4142都是可編輯的。

答案2

我將採取的方法是以下兩種方法之一:

1)使用查找表並嘗試詳盡地彌補白痴用戶對同一件事所能想到的所有可能的變體,或者使用來源資料並刪除重複項以獲得已知的愚蠢選項列表。這是我在遷移帶有「職稱」的聯絡人資料時必須做的事情 - 迄今為止的記錄是 67 種不同的「Managing Director」樣式或拼寫方式(MD、MD、M Dir、Manging Driector 等)。這種方法非常適合一次性處理歷史資料 - 就我而言,一旦資料遷移,我們就使用下拉選擇清單來阻止用戶在新系統中引起同樣的舊問題。

2)使用一組規則「丟棄」您認為對於區分匹配的事物沒有必要的不相關資訊。一堆嵌套的 SUBSTITUTE 函數用「」替換短字串就可以解決這個問題。替換標點符號,例如 . - / :首先,然後是(PVT) 和Ltd 和Limited 之類的內容- 如果這些短字串中的任何一個不明確並且可能出現在另一個單字內,請在之前、之後或兩者之間包含一個空格。一個很好的例子是替換“Co”而不是“Co”,以避免以“mpany”或“bblers”結尾。將最外面的「 」替換為「」(即最後刪除空格)。這涉及“ABC Foods”,但將空格留到最後,這樣您仍然可以解析字串而不會丟失單字。

我假設您認為“ABC Foods”與“ABC Foods (PVT) Ltd.”相同。

現在建立所有「正確」答案的清單。使用公式在左側建立第二列,然後複製>貼上特殊>值以「展平」此列。現在,在您的主資料中,使用替換將名稱減少為其簡約格式,然後將其用作查找值以返回「正確」版本。您可以使用輔助列作為替代品或一次完成所有操作。

這種方法需要幾次嘗試才能正確並找到可以安全丟棄的所有位,但如果來源資料將來可能包含新的、意外的錯誤,則該方法會更加穩健。

請記住:如果你試圖讓它變得防白痴,有人就會去找一個更大的白痴。

相關內容