將儲存格中的文字與多個值精確匹配

將儲存格中的文字與多個值精確匹配

我有一個包含逗號分隔值的列,需要尋找是否存在特定文字。問題是,FIND() 函數和相關函數沒有辦法匹配精確的文本,所以如果我查找數字 1,函數會匹配 11。

提前致謝。

在此輸入影像描述

答案1

由於值是用逗號分隔的,因此只需查找逗號(並在要搜尋的字串的開頭和結尾添加逗號)。

eg:   =FIND(","&F1&",",","&A1&",")  

答案2

要在儲存格中尋找 1 而不是 11,您可以使用正規表示式。

當您使用逗號分隔值時,您的正規表示式將需要匹配三件事:

  • 1,在文字的開頭(^錨點),或者
  • ,1,文字中的任何位置,或
  • ,1在文字末尾($錨點)。

裡面有非常全面的訊息這個堆疊溢位答案解釋如何在 Excel 中執行此操作。

總而言之,您需要新增對正規表示式庫的參考並為正規表示式編寫自訂函數。然後,您將能夠在工作表公式中使用自訂函數,就像使用內建 Excel 函數(例如FIND().

答案3

如果您的格式如您所示,您可以嘗試以下公式:

=IF(VALUE(LEFT(D4,FIND(",",D4,1)-1))=E4,"left",IF(VALUE(RIGHT(D4,LEN(D4)-FIND(",",D4,1))) = E4,"right",""))

答案4

假設您可以合理地預期此儲存格中的條目數低於某個已知的最大值(例如 5),並且它們由範例中的數字 (11,13) 組成:

  1. 將列拆分為 5 個新列,每個列包含兩個逗號之間的文字
  2. 從文字產生數字
  3. 現在您可以將數字與數字進行比較。假設 E 是原始列,如您的範例所示:

第一個輔助列中的公式為:

=LEFT(E5;FIND(",",E5)-1)

第二個輔助列中的公式為:

=MID(E5;FIND(",";E5)+1;FIND(",";E5;FIND(",";E5)+1)-FIND(",";E5)-1)

等等。

相關內容