Bỏ qua nội dung chính

Tìm lần xuất hiện thứ n của ký tự trong Excel – 3 cách nhanh chóng

Việc tìm lần xuất hiện thứ n của một ký tự cụ thể trong chuỗi văn bản trong Excel có thể đặc biệt hữu ích trong phân tích dữ liệu, trong đó bạn có thể cần phân tích cú pháp chuỗi hoặc trích xuất thông tin dựa trên các dấu phân cách hoặc mẫu nhất định. Ví dụ: hãy tìm lần xuất hiện thứ 2 hoặc thứ 3 của ký tự "-" trong chuỗi văn bản. Tôi sẽ trình bày các kỹ thuật đơn giản để hoàn thành nhiệm vụ này một cách hiệu quả.


Tìm lần xuất hiện thứ n của ký tự trong chuỗi văn bản bằng công thức

Bạn có thể tạo công thức để tìm lần xuất hiện thứ n của một ký tự. Hãy làm như thế này:

1. Nhập hoặc sao chép công thức sau vào ô mà bạn muốn nhận kết quả:

=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),2))
Chú thích: Trong công thức trên:
  • A2: Ô chứa chuỗi.
  • -: Nhân vật bạn đang tìm kiếm.
  • 2: Lần xuất hiện thứ 2 bạn muốn tìm, bạn có thể thay đổi thành 3,4… tùy ý.

2. Sau đó, kéo phần điền công thức xuống để điền công thức sang các ô khác và vị trí thứ 2 của ký tự – sẽ hiển thị cùng một lúc, xem ảnh chụp màn hình:

Giải thích công thức:
  • THAY THẾ thay thế lần xuất hiện thứ n của ký tự bằng ký tự không in được (CHAR(1)).
  • TÌM tìm kiếm ký tự không in được này, đưa ra vị trí của lần xuất hiện thứ n.

Tìm lần xuất hiện thứ n của ký tự trong chuỗi văn bản với Kutools for Excel

Nếu bạn không phải là người thích sử dụng công thức hoặc VBA, bạn có thể cân nhắc một giải pháp thay thế thuận tiện – Kutools cho Excel. Trong các nhóm Công thức của nó, bạn sẽ tìm thấy một tiện ích hữu ích – Tìm vị trí ký tự xuất hiện thứ N trong một chuỗi nhanh chóng xác định và trả về vị trí thứ n của bất kỳ ký tự nào trong một ô.

Sau khi cài đặt Kutools cho Excel, Click Kutools > Công thức trợ giúp > Công thức trợ giúp để mở Công thức trợ giúp hộp thoại. Bấm vào ô nơi bạn muốn đặt kết quả. Sau đó, làm như sau:

  1. Chọn Tra cứu từ danh sách thả xuống của Loại công thức phần;
  2. Chọn Tìm vị trí ký tự xuất hiện thứ N trong một chuỗi in Chọn một công thức phần;
  3. Chọn ô chứa chuỗi bạn sử dụng, sau đó nhập ký tự được chỉ định và lần xuất hiện thứ n vào hộp văn bản trong Đầu vào đối số phần;
  4. Cuối cùng, hãy nhấp vào OK để nhận kết quả.
Lời khuyên: Quan tâm đến tính năng này, xin vui lòng nhấp để tải xuống để dùng thử miễn phí trong 30 ngày.

Tìm lần xuất hiện thứ n của ký tự trong chuỗi văn bản bằng Hàm do người dùng xác định

Trong phần này, chúng ta sẽ khám phá cách tạo và sử dụng UDF để tìm lần xuất hiện thứ n của một ký tự trong Excel, đồng thời cung cấp hướng dẫn từng bước để giúp bạn tối ưu hóa việc xử lý dữ liệu của mình.

  1. Giữ phím tắt ALT + F11 chìa khóa và nó mở Microsoft Visual Basic cho các ứng dụng cửa sổ.
  2. Nhấp chuột Chèn > Mô-đunvà dán macro sau vào Cửa sổ mô-đun.
     Function FindN(sFindWhat As String, _
    sInputString As String, N As Integer) As Integer
    'Updateby Extendoffice
    Dim J As Integer
    Application.Volatile
    FindN = 0
    For J = 1 To N
    FindN = InStr(FindN + 1, sInputString, sFindWhat)
    If FindN = 0 Then Exit For
    Next
    End Function
  3. Sau đó, đóng cửa sổ vba. Quay lại trang tính, nhập công thức sau vào một ô, sau đó kéo thanh điều khiển điền xuống để điền công thức vào các ô khác, xem ảnh chụp màn hình:
    =FindN("-",A2,3)

  4. Bài viết liên quan:

    • Đếm số lần xuất hiện của một từ trong một cột
    • Nếu bạn có dữ liệu cột bao gồm một số giá trị trùng lặp như ảnh chụp màn hình bên dưới và bây giờ những gì bạn muốn làm là đếm số lần xuất hiện của một từ cụ thể trong cột này. Bây giờ với hướng dẫn này, tôi giới thiệu một số thủ thuật để giải quyết nó nhanh chóng trong Excel.
    • Trích xuất ký tự thứ n từ một chuỗi
    • Nói chung, bạn có thể muốn trích xuất chuỗi sau một ký tự cụ thể, nhưng trong trường hợp này, tôi muốn trích xuất ký tự thứ n từ một chuỗi như minh họa ảnh chụp màn hình bên dưới.
    • Trích xuất n ký tự đầu tiên/cuối từ chuỗi
    • Ví dụ: có một danh sách với các chuỗi dài trong mỗi ô và bạn chỉ muốn trích xuất n ký tự đầu tiên từ mỗi chuỗi, chẳng hạn như 3 ký tự đầu tiên của mỗi chuỗi và bây giờ bạn có thể sử dụng các phương pháp sau để giải quyết nó trong Excel .

Công cụ năng suất văn phòng tốt nhất

🤖 Trợ lý AI của Kutools: Cách mạng hóa việc phân tích dữ liệu dựa trên: Thực thi thông minh   |  Tạo mã  |  Tạo công thức tùy chỉnh  |  Phân tích dữ liệu và tạo biểu đồ  |  Gọi các hàm Kutools...
Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

Mô tả


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
Comments (28)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Your formula to find the Nth occurrence of a character in a string does not work. Using your example, adding 2 to the results of the imbedded find ensures a starting position for the initial find of a position beyond the 1st two c's but changing the +2 to +3 does not yield the position of the 4th "c", it simply starts the search one character deeper into the string and the result is still the 3rd "c". To find the 4th "c" the search must begin beyond the position of the 3rd "c". I look forward to your new solution.
This comment was minimized by the moderator on the site
Hello, David

Yes, as you said, the first formula does not work correctly, you can apply the second formula:
=FIND(CHAR(1),SUBSTITUTE(A2,"c",CHAR(1),2))

Note: The number "2" in the formula means the second "c", if you want to get the third, fourth "c", just change the number 2 to 3,4 as you need.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
Find formula1 is imperfect. It will be a great help if it is removed. I have lost lot of time trying for 4th occurance of "a" in "vedanarayanan" Thanks.
This comment was minimized by the moderator on the site
To handle the exception of the formula, you can use same with if and iserro
=IF(ISERR(FIND("c",A1,FIND("c",A1)+2)),FIND("c",A1,FIND("c",A1)+0),FIND("c",A1,FIND("c",A1)+2))
This comment was minimized by the moderator on the site
"Substitute" lets you find the Nth occurrence of a term, so combine it with "find" as follows (where 5=5th occurrence):

=FIND(CHAR(1),SUBSTITUTE(A1,"c",CHAR(1),5))
This comment was minimized by the moderator on the site
Excellent! I am glad I scrolled up to review other comments after posting my own.
This comment was minimized by the moderator on the site
This is the correct answer! please replace this whole article with this one line of code.....
This comment was minimized by the moderator on the site
The first formula is completely useless and wrong but it works just correct for this example as the first and second "c"s are adjacent. The correct formula is:


For 2nd occurence -
=FIND("c",A1,FIND("c",A1)+1)

For 3rd occurence -
=FIND("c",A1,FIND("c",A1,FIND("c",A1)+1)+1) and so on...
This comment was minimized by the moderator on the site
Absolutely agree. The +2, or +3 etc.....entirely depends on the spacing between the n and (n+1) occurences of "c". Thus you would have to manually adjust for every cell if you were trying to copy this formula down a column for instance. Essentially the same as manually counting.


Ex. Let's try to find the 4th occurrence of "c" in cell A1 using the provided formula. Per the article we should use +3 in our nested FIND function to find the 4th occurrence.


Text in Cell A1:

"cab car abc cole cube"

Manually counting, the 4th occurrence is the "c" in cole in the character position of 13.


=FIND("c",A1,FIND("c",A1)+3)

The nested function, FIND("c",A1) will find the first occurrence of "c" in position 1.

Therefore,

FIND("c",A1)+3 = 1+3 = 4

Plugging that back into our formula,

=FIND("c",A1,FIND("c",A1)+3) = FIND("c",A1,1+3) = FIND("c",A1,4)

This new formula will look for the first occurrence of "c" beginning from character position 4. The 4th character in the string is the space just after cab.

Therefore, the formula will find the "c" in car and return the value of 5 for our formula. As we know from manually counting we are looking for 13 as the output.
This comment was minimized by the moderator on the site
The firs formula works correct in my version, in the note, it has explained how to find the third or forth or nth "c".

Note: You can change the 2 in the formula based on your needs. For example, if you want to find the fourth position of "c", you can change the 2 to 3. And if you want to find the first position of "c", you shuold change 2 to 0.
This comment was minimized by the moderator on the site
Try to find out the position of the second c with the first sentence of my above comment as the string using the first formula. You'll get to know how correct it is!
This comment was minimized by the moderator on the site
Hello all,

I have a text in an Excel cell " BY TRANSFER-NEFT*HDFC0000001*N08745987123546*J0032331*KUMAR--"

I need a function to extract just "N08745987123546"

Thanks
This comment was minimized by the moderator on the site
Hello, do you want to extract the numbers after No and the number of numbers are fixed? If so, you can use Kutools for Exccel's Extract text function, type No????to extract.
This comment was minimized by the moderator on the site
HI ALL,
I have a text in an Excel cell " BY TRANSFER-NEFT*HDHC0065431*N053112345624801*K0038331*krishna--"
I need a function to extract just "N053112345624801"
This comment was minimized by the moderator on the site
Formula 1 doesn't work on fourth, fifth, sixth etc. so (+3,4,5) will always show third position of letter "c" which is 19 second formula is working though.
This comment was minimized by the moderator on the site
Hello all, I have a text in an Excel cell "23 floyd lane, longville,KN 14564" I need a function to extract just "longville" Thanks
This comment was minimized by the moderator on the site
If you must use a function, try: =TRIM(MID(A1,SEARCH(",",A1)+1,SEARCH("!@#",SUBSTITUTE(A1,",","!@#",2))-SEARCH(",",A1)-1)) Otherwise, you might consider Data > Text to Columns > Delimited (using a comma as the separator).
This comment was minimized by the moderator on the site
Try this: =INDEX(SMALL(IF(MID(A1,MATCH(ROW(INDIRECT(1&":"&LEN(A1))),ROW(INDIRECT(1&":"&LEN(A1))),0),1)="c",MATCH(ROW(INDIRECT(1&":"&LEN(A1))),ROW(INDIRECT(1&":"&LEN(A1))),0),""),MATCH(ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c","")))),ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c","")))),0)),2) where "c" is the character required and 2 is the position. Note this is an array formula.
This comment was minimized by the moderator on the site
this is simpler: =INDEX(SMALL(IF(MID(A1,ROW(INDIRECT(1&":"&LEN(A1))),1)="c",ROW(INDIRECT(1&":"&LEN(A1))),""),ROW(INDIRECT(1&":"&LEN(A1)-LEN(SUBSTITUTE(A1,"c",""))))),2)
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations