Excel trích xuất chữ cái đầu tiên của mỗi từ

Rajeev cần một công thức trích xuất các chữ cái đầu tiên của một chuỗi từ. Chẳng hạn, nếu một ô chứa văn bản "Rajeev Kumar Pandey", anh ấy muốn trích xuất sang một ô khác, các chữ cái "RKP". Số lượng từ trong chuỗi có thể thay đổi từ ô này sang ô khác

Có một số cách mà nhiệm vụ này có thể được tiếp cận. Ban đầu, giả định rằng bạn không muốn sửa đổi cấu trúc trang tính của mình bằng cách thêm các cột trung gian. Giả định này cũng loại trừ việc sử dụng tính năng Văn bản thành Cột để chia chuỗi gốc thành các từ riêng lẻ

Chìa khóa của vấn đề là đảm bảo rằng công thức của bạn có thể xác định vị trí của khoảng trắng trong chuỗi gốc. Bạn có thể nghĩ rằng một công thức như sau sẽ thực hiện công việc

=LEFT(A1,1)&MID(A1,FIND(" ",A1,1)+1,1)&MID(A1,
FIND(" ",A1,FIND(" ",A1,1)+1)+1,1)

Công thức này hoạt động một phần. Nó chỉ hoạt động tốt nếu chuỗi gốc có hai dấu cách ngăn cách ba từ. Nếu có ít từ hơn thì công thức sẽ trả về lỗi. Nếu có thêm bất kỳ từ nào, thì nó chỉ trả về các chữ cái đầu tiên của ba từ đầu tiên (nó bỏ qua bất kỳ từ nào sau từ thứ ba)

Điều này có nghĩa là công thức không chỉ cần kiểm tra khoảng trắng mà còn xử lý lỗi nếu không có khoảng trắng hoặc nếu có quá ít khoảng trắng. Việc kiểm tra lỗi có nghĩa là công thức trở nên dài hơn nhiều

=IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",
A1)+1)+1)+1)+1,1)),IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1)),
IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1)),
IF(ISERR(LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1)),
IF(ISERR(LEFT(A1,1)),"",LEFT(A1,1)),LEFT(A1,1)
&MID(A1,SEARCH(" ",A1)+1,1)),LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1)),
LEFT(A1,1)&MID(A1,SEARCH(" ",A1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1)),LEFT(A1,1)
&MID(A1,SEARCH(" ",A1)+1,1)&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)+1)+1,1)
&MID(A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1,SEARCH(" ",A1)+1)
+1)+1)+1,1))

Công thức này sẽ xử lý chính xác mọi thứ từ 0 đến 5 từ trong một chuỗi. Nó cũng giả định rằng chuỗi không bắt đầu hoặc kết thúc bằng khoảng trắng và nó không chứa nhiều số lượng khoảng trắng giữa các từ. Nếu bạn muốn xử lý số lượng từ lớn hơn hoặc các biến chứng tiềm ẩn khác (chẳng hạn như số khoảng trắng giữa các từ), thì tốt nhất bạn nên sử dụng hàm do người dùng xác định

Có một số cách mà một hàm do người dùng định nghĩa có thể lấy các ký tự đầu từ các từ của một chuỗi. Trên thực tế, tôi đã nhận được khá nhiều biến thể đạt được điều tương tự. Tuy nhiên, ví dụ sau đây có lẽ là mã ngắn gọn nhất mà tôi đã xem qua

Function Initials(Raw As String) As String
    Dim Temp As Variant
    Dim J As Integer

    Application.Volitile
    Temp = Split(Trim(Raw))

    For J = 0 To UBound(Temp)
        Initials = Initials & Left(Temp(J), 1)
    Next J
End Function

Hàm Split "xé nhỏ" một chuỗi dựa trên vị trí xuất hiện dấu cách trong đó. Các từ riêng lẻ trong chuỗi được đặt vào một mảng (trong trường hợp này là Temp), nơi bạn có thể truy cập các từ riêng lẻ. Để sử dụng hàm trong trang tính của bạn, chỉ cần sử dụng một cái gì đó như thế này

Đôi khi, khi bạn có dữ liệu văn bản, bạn có thể muốn trích xuất từ ​​đầu tiên từ chuỗi văn bản trong một ô

Có nhiều cách bạn có thể thực hiện việc này trong Excel (sử dụng kết hợp các công thức, sử dụng Tìm và Thay thế và sử dụng Flash Fill)

Trong hướng dẫn này, tôi sẽ chỉ cho bạn một số cách thực sự đơn giản để trích xuất từ ​​đầu tiên từ một chuỗi văn bản trong Excel

Hướng dẫn này bao gồm

  • Sử dụng công thức văn bản (TRÁI/TÌM)
  • Sử dụng Kỹ thuật Tìm và Thay thế và Ký tự Hoang dã
  • Sử dụng Flash Fill (Phương pháp nhanh nhất và dễ nhất)

Trích xuất từ ​​​​đầu tiên bằng công thức văn bản

Giả sử bạn có tập dữ liệu sau, nơi bạn muốn lấy từ đầu tiên từ mỗi ô

Dataset to Extract the first word from text string

Công thức dưới đây sẽ làm điều này

=IFERROR(LEFT(A2,FIND(" ",A2)-1),A2)

Formula to find and extract only the first word

Hãy để tôi giải thích cách thức hoạt động của công thức này

Phần FIND của công thức được sử dụng để tìm vị trí của ký tự khoảng trắng trong chuỗi văn bản. Khi công thức tìm thấy vị trí của ký tự khoảng trắng, hàm LEFT được sử dụng để trích xuất tất cả các ký tự trước ký tự khoảng trắng đầu tiên đó trong chuỗi văn bản

Mặc dù chỉ riêng công thức LEFT là đủ, nhưng nó sẽ báo lỗi cho bạn trong trường hợp chỉ có một từ trong ô và không có ký tự khoảng trắng

Để xử lý tình huống này, tôi đã bọc công thức TRÁI trong công thức IFERROR, công thức này chỉ trả về nội dung ô ban đầu (vì không có ký tự khoảng trắng nào cho biết ô đó trống hoặc chỉ có một từ)

Một điều tốt về phương pháp này là kết quả là năng động. Điều này có nghĩa là trong trường hợp bạn thay đổi chuỗi văn bản ban đầu tại các ô ở cột A thì công thức ở cột B sẽ tự động cập nhật và cho kết quả chính xác

Trong trường hợp bạn không muốn công thức, bạn có thể chuyển đổi nó thành các giá trị

Trích xuất từ ​​đầu tiên bằng cách sử dụng Tìm và Thay thế

Một phương pháp nhanh khác để trích xuất từ ​​đầu tiên là sử dụng Tìm và Thay thế để xóa mọi thứ trừ từ đầu tiên

Giả sử bạn có tập dữ liệu như hình bên dưới

Dataset to Extract the first word from text string

Dưới đây là các bước sử dụng Tìm và Thay thế để chỉ lấy từ đầu tiên và xóa mọi thứ khác

  1. Sao chép văn bản từ cột A sang cột B. Điều này là để đảm bảo rằng chúng tôi cũng có dữ liệu gốc
  2. Chọn tất cả các ô trong Cột B nơi bạn muốn lấy từ đầu tiênCopy the text to Column B
  3. Nhấp vào tab Trang chủClick the Home tab
  4. Trong nhóm Chỉnh sửa, nhấp vào tùy chọn Tìm và Chọn, sau đó nhấp vào Thay thế. Thao tác này sẽ mở hộp thoại Tìm & Thay thếClick on Replace
  5. Trong trường Tìm gì, hãy nhập * (một ký tự khoảng trắng theo sau là dấu hoa thị)Enter Space character followed by asterisk in Find what field
  6. Để trống trường Thay thế bằngLeave the replace with empty
  7. Nhấp vào nút Thay thế tất cảClick on replace all

Các bước trên sẽ xóa mọi thứ trừ từ đầu tiên trong các ô

result after find and replace

Bạn cũng có thể sử dụng phím tắt Control + H để mở hộp thoại Tìm và Thay thế

Cái này hoạt động ra sao?

Trong trường Find what, chúng tôi đã sử dụng ký tự khoảng trắng theo sau là dấu hoa thị. Dấu hoa thị (*) là một ký tự đại diện đại diện cho bất kỳ số lượng ký tự nào

Vì vậy, khi chúng tôi yêu cầu Excel tìm các ô chứa ký tự khoảng trắng theo sau là dấu hoa thị và thay thế nó bằng ô trống, nó sẽ tìm ký tự khoảng trắng đầu tiên và xóa mọi thứ sau nó – chỉ để lại cho chúng tôi từ đầu tiên

Và trong trường hợp ô của bạn không có văn bản hoặc chỉ có một từ không có ký tự khoảng trắng, các bước trên sẽ không thực hiện bất kỳ thay đổi nào đối với ô đó

Trích xuất từ ​​đầu tiên bằng Flash Fill

Một phương pháp thực sự đơn giản và nhanh chóng khác để trích xuất từ ​​đầu tiên bằng cách sử dụng Flash Fill

Flash Fill được giới thiệu trong Excel 2013 và có sẵn trong tất cả các phiên bản sau đó. Nó giúp thao tác văn bản bằng cách xác định mẫu mà bạn đang cố gắng đạt được và điền vào mẫu đó cho toàn bộ cột

Ví dụ: giả sử bạn có tập dữ liệu bên dưới và bạn chỉ muốn trích xuất từ ​​đầu tiên

Dataset to Extract the first word from text string

Dưới đây là các bước để làm điều này

  1. Trong ô B2, là cột liền kề của dữ liệu của chúng tôi, hãy nhập thủ công 'Tiếp thị' (là kết quả mong đợi)Enter the first word in first cell manually
  2. Trong ô B3, nhập 'HR'Enter manually in second cell
  3. Chọn phạm vi B2. B10Select the range
  4. Nhấp vào tab Trang chủ
  5. Trong nhóm Chỉnh sửa, nhấp vào trình đơn thả xuống Điền
  6. Nhấp vào tùy chọn Flash FillClick on Flash Fill

Các bước trên sẽ điền vào tất cả các ô bằng từ đầu tiên từ cột liền kề (cột A)

thận trọng. Trong hầu hết các trường hợp, Flash Fill hoạt động tốt và cho kết quả chính xác, nhưng trong một số trường hợp, nó có thể không cho bạn kết quả đúng. Chỉ cần đảm bảo kiểm tra kỹ xem kết quả có như mong đợi không

Ghi chú. Khi nhập kết quả dự kiến ​​vào ô thứ hai trong cột B, bạn có thể thấy tất cả văn bản trong tất cả các ô có màu xám nhạt. Đó là kết quả bạn sẽ nhận được nếu nhấn ngay phím enter. Trong trường hợp bạn không nhìn thấy đường màu xám, hãy sử dụng tùy chọn Flash Fill trong ribbon