跳到主要內容

如何在Excel中查找字符的第一個,最後一個或第n個出現?

假設您具有以下包含字符“-”的文本字符串列表,並且現在想要獲取字符“-”的最後或第n個出現,您是否有解決此問題的好主意?


用公式查找字符的最後一次出現

這裡有一些公式可以幫助您找到特定字符的最後位置,請執行以下操作:

1。 在您的文字字符串旁邊,請輸入以下任一公式或將其複製到空白單元格中:

=SEARCH("^^",SUBSTITUTE(A2,"-","^^",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))))
=LOOKUP(2,1/(MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)="-"),ROW(INDIRECT("1:"&LEN(A2))))

2。 然後將填充手柄拖到您要應用此公式的範圍內,您將獲得最後一次出現的特定字符“-”,請參見屏幕截圖:

注意: 在上述公式中, A2 指示您要使用的單元格值。 還有“-”代表您要獲得其最後位置的特定字符,您可以根據需要將其更改為任何其他字符。


使用用戶定義函數查找字符的最後一次出現

要獲取最後一個字符“-”的位置,您還可以創建用戶定義函數,方法如下:

1。 打開您要使用的工作表。

2。 按住 ALT + F11 鍵打開 Microsoft Visual Basic應用程序窗口.

3。 然後點擊 插入 > 模塊,然後將以下宏粘貼到 模塊窗口.

VBA代碼:查找字符的最後一次出現

Function LastpositionOfChar(strVal As String, strChar As String) As Long
LastpositionOfChar = InStrRev(strVal, strChar)
End Function

4。 然後保存並關閉此代碼,返回到工作表,然後輸入此公式 = lastpositionofchar(A2,“-”) 除數據之外,將其插入空白單元格,請參見屏幕截圖:

5。 然後將填充手柄拖動到應用此公式所需的範圍,並且從文本字符串中提取了最後一個字符“-”的出現,如下屏幕截圖所示:

備註:在以上公式中: A2 是包含您要使用的數據的單元格,並且“-”是您需要找到其最後位置的字符,您可以根據需要對其進行修改。


用公式查找字符的第一個或第n個出現

要獲得特定角色的第一個或第n個位置,請應用以下公式:

1。 將以下公式輸入或複製到要放入結果的空白單元格中,然後按 Enter 獲得第一個結果的關鍵:

=FIND(CHAR(160),SUBSTITUTE(A2,"-",CHAR(160),2))

2。 然後,將填充手柄向下拖動到要應用此公式的單元格上,並且已經計算出第二個“-”字符的位置,請參見屏幕截圖:

注意: 在上述公式中, A2 表示您要使用的單元格值,“-”代表您要獲取其位置的特定字符,數字 2 代表要獲取的字符的指定出現位置。


通過簡單的功能查找特定字符的第一個或第n個出現

這款獨特的敏感免洗唇膜採用 Moisture WrapTM 技術和 Berry Mix ComplexTM 成分, Excel的Kutools查找字符在字符串中第N個出現的位置 實用程序,您可以快速,輕鬆地獲得第一個或第n個特定字符的位置。

注意:要應用此 查找字符在字符串中第N個出現的位置,首先,您應該下載 Excel的Kutools,然後快速輕鬆地應用該功能。

安裝後 Excel的Kutools,請這樣做:

例如,我想第二次出現字符“-”,請執行以下操作:

1。 單擊要放置結果的單元格。

2。 然後點擊 庫工具 > 公式助手 > 公式助手,請參見屏幕截圖:

3。 在 公式助手 對話框:

  • 選擇 查找 選項從 公式 類別 下拉列表;
  • 然後選擇 查找字符在字符串中第N個出現的位置 來自 選擇一個草 列錶框;
  • 參數輸入 部分中,選擇包含要使用的文本字符串的單元格,然後輸入要獲取其位置的字符,最後,指定要獲取該字符位置的數字。

4。 然後點擊 Ok 按鈕,然後將填充手柄向下拖動到要獲取位置的單元格,以根據需要獲得以下結果。

立即下載和免費試用Excel的Kutools!


更多相關文章:

  • 在Excel中提取除第一個/最後一個單詞外的所有內容
  • 要從一個單元格中提取所有單詞,但第一個或最後一個單詞可以幫助您刪除所需的不需要的單詞,當然,在這種情況下,您可以復制所需的單詞並將它們逐個粘貼到另一個單元格中。 但是,如果除了第一個或最後一個單詞之外還需要提取多個單元格值,這將很無聊。 您如何快速,輕鬆地提取Excel中除第一個或最後一個單詞以外的所有單詞?
  • 提取單元格中從右到左的字符
  • 本文將討論從右邊的單元格中拉出或提取字符,直到到達空格以在Excel工作表中獲得以下結果為止。 本文中的一個有用公式可以快速輕鬆地解決此問題。
  • 查找第一個小寫字母的位置
  • 現在,如果您有一個包含大寫和小寫字母的文本字符串列表,現在,您想知道它們在Excel工作表中第一個小寫字母的位置。 您如何快速獲得結果而又不一一列舉?

最佳辦公生產力工具

🤖 Kutools 人工智慧助手:基於以下內容徹底改變數據分析: 智慧執行   |  生成代碼  |  建立自訂公式  |  分析數據並產生圖表  |  呼叫 Kutools 函數...
熱門特色: 尋找、突出顯示或識別重複項   |  刪除空白行   |  合併列或儲存格而不遺失數據   |   沒有公式的回合 ...
超級查詢: 多條件VLookup    多值VLookup  |   跨多個工作表的 VLookup   |   模糊查詢 ....
高級下拉列表: 快速建立下拉列表   |  依賴下拉列表   |  多選下拉列表 ....
欄目經理: 新增特定數量的列  |  移動列  |  切換隱藏列的可見性狀態  |  比較範圍和列 ...
特色功能: 網格焦點   |  設計圖   |   大方程式酒吧    工作簿和工作表管理器   |  資源庫 (自動文字)   |  日期選擇器   |  合併工作表   |  加密/解密單元格    按清單發送電子郵件   |  超級濾鏡   |   特殊過濾器 (過濾粗體/斜體/刪除線...)...
前 15 個工具集12 文本 工具 (添加文本, 刪除字符,...)   |   50+ 圖表 類型 (甘特圖,...)   |   40+ 實用 公式 (根據生日計算年齡,...)   |   19 插入 工具 (插入二維碼, 從路徑插入圖片,...)   |   12 轉化 工具 (數字到單詞, 貨幣兌換,...)   |   7 合併與拆分 工具 (高級合併行, 分裂細胞,...)   |   ... 和更多

使用 Kutools for Excel 增強您的 Excel 技能,體驗前所未有的效率。 Kutools for Excel 提供了 300 多種進階功能來提高生產力並節省時間。  點擊此處獲取您最需要的功能...

產品描述


Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
Comments (3)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Using LET to define variables. 
Find Last occurrence of;
=LET(strFind,"-",strFlag,"¤",FIND(strFlag,SUBSTITUTE(A2,strFind,strFlag,LEN(A2)-LEN(SUBSTITUTE(A2,strFind,""))),1))
Text to right of;
LET(strTarget,A2,strFind,"-",strFlag,"¤",RIGHT(strTarget,LEN(strTarget)-FIND(strFlag,SUBSTITUTE(strTarget,strFind,strFlag,LEN(strTarget)-LEN(SUBSTITUTE(strTarget,strFind,""))),1)))
This gives an error if strFind is not in the target. This can be solved by wrapping FIND in an IFERROR. 
LET(strTarget,A2,strFind,"-",strFlag,"¤",IFERROR(FIND(strFlag,SUBSTITUTE(strTarget,strFind,strFlag,LEN(strTarget)-LEN(SUBSTITUTE(strTarget,strFind,""))),1),0))
LET(strTarget,A2,strFind,"-",strFlag,"¤",RIGHT(strTarget,LEN(strTarget)-IFERROR(FIND(strFlag,SUBSTITUTE(strTarget,strFind,strFlag,LEN(strTarget)-LEN(SUBSTITUTE(strTarget,strFind,""))),1),0)))
This will return the existing string if strFind is not found. If this is not desired use the find separately then test for result>0.
This comment was minimized by the moderator on the site
Thank You, great work !! Best Regards Anders
This comment was minimized by the moderator on the site
Thank you for these formulas. Very helpful.
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations