Hướng dẫn Excel này giải thích cách trích xuất văn bản trong ngoặc hoặc trong văn bản được xác định trong bảng tính Excel và VBA
Trích xuất văn bản trong ngoặc trong bảng tính Excel
Trong bài viết trước tôi đã trình bày cách loại bỏ văn bản trong ngoặc đơn hoặc trong bất kỳ văn bản xác định nào, trong bài viết này tôi sẽ giải thích cách loại bỏ văn bản trong ngoặc đơn hoặc trong văn bản xác định bất kỳ
Trong bảng tính Excel, bạn có thể trích xuất bất kỳ chuỗi con nào bằng hàm Mid
Để tóm tắt lại cú pháp của Mid Function
MID[ text, start_position, number_of_characters ]văn bản Chuỗi văn bản mà bạn muốn trích xuất ký tự start_positionVị trí của ký tự đầu tiên bạn muốn trích xuất. Vị trí bắt đầu từ 1
số_của_ký tự
Số ký tự trả vềNhìn vào các đối số của hàm, câu hỏi đặt ra là chúng ta bắt đầu và kết thúc quá trình trích xuất ở đâu
Giả sử Ô A1 chứa văn bản ABC [D E F]
Nếu chúng ta muốn trích xuất văn bản bên trong ngoặc [i. e. D E F], trong đối số đầu tiên [vị trí bắt đầu], chúng tôi xác định vị trí của dấu ngoặc mở bằng Hàm tìm kiếm, sau đó thêm 1 để chúng tôi bắt đầu trích xuất mà không bao gồm dấu ngoặc mở
SEARCH["[",A1]+1
Đối với đối số thứ hai, số ký tự được tính bằng cách trừ vị trí của dấu ngoặc mở khỏi vị trí của dấu ngoặc đóng, sau đó trừ đi một để loại trừ dấu ngoặc đóng
SEARCH["]",A1]-SEARCH["[",A1]-1
Công thức hoàn chỉnh sẽ là
=MID[A1,SEARCH["[",A1]+1,SEARCH["]",A1]-SEARCH["[",A1]-1]
ví dụ
Lưu ý rằng công thức này chỉ hoạt động trên bộ dấu ngoặc đầu tiên, nó không hoạt động cho dấu ngoặc thứ 2 trở lên
Thứ hai, công thức này không chỉ hoạt động trên dấu ngoặc đơn, bạn có thể xác định bất kỳ văn bản bắt đầu và văn bản kết thúc nào trong đối số Hàm tìm kiếm
Trích xuất văn bản trong ngoặc trong VBA
Cách trích xuất giống như trong VBA, chỉ khác là Find Function không có trong VBA, chúng ta cần sử dụng Instr Function để thay thế
Cú pháp của Hàm Instr hơi khác so với Hàm Tìm
InStr[ [start], string, substring, [compare] ]
Sử dụng mã dưới đây để trích xuất văn bản trong ngoặc trong ô A1
Mid[Range["A1"], InStr[Range["A1"], "["] + 1, InStr[Range["A1"], "]"] - InStr[Range["A1"], "["] - 1]
Trích xuất văn bản trong ngoặc bằng Chức năng tùy chỉnh VBA
Cá nhân tôi không thích sử dụng công thức dài vì quá dài dễ dẫn đến sai sót trong lập luận. Sử dụng Chức năng tùy chỉnh có thể đơn giản hóa các đối số
Xin lỗi, vì sự bướng bỉnh cá nhân, tôi đã làm điều này mà không cần lặp lại. khiến bạn gần như không thể hiểu được
Các tùy chọn khác là sử dụng các vòng lặp để phân tích chuỗi. mà tôi chắc rằng người khác cũng có thể làm cho bạn
Mã số
Public Sub My_Split[]
Dim z As Variant
z = Split[Replace[Join[Filter[Split[Replace[Replace[Selection.Value, "]", "^#"], "[", "#^"], "#"], "^"], "|"], "^", ""], "|"]
Selection.Offset[0, 1].Resize[, UBound[z] + 1] = z
End Sub
Hiển thị thêmTrân trọng
Ger
_______________________________________________
Có 10 loại người trên thế giới. Những người hiểu nhị phân và những người mà không.
Tại sao Halloween và Giáng sinh lại giống nhau? .
_______________________________________________
VÌ THẾ
Người quản lý
3020,165Bài báo1Bài đăng3,686Hệ điều hànhMacOSPhiên bản ExcelOffice 365
Lại. Trích xuất văn bản hoặc số nguyên từ giữa các dấu ngoặc đơn
Trích dẫn từ Ger Plante;726680
Mã số
Hiển thị thêmPublic Sub My_Split[] Dim z As Variant z = Split[Replace[Join[Filter[Split[Replace[Replace[Selection.Value, "]", "^#"], "[", "#^"], "#"], "^"], "|"], "^", ""], "|"] Selection.Offset[0, 1].Resize[, UBound[z] + 1] = z End Sub
săn bắt
đẹp nè haha
www. xương cựa. các giải pháp. www. ozgrid. com. Quy tắc DIỄN ĐÀN
Ger Plante
Người quản lý
127,606Bài viết5,327
Lại. Trích xuất văn bản hoặc số nguyên từ giữa các dấu ngoặc đơn
SNB nghĩ tốt về tôi
nói cheeschees
_______________________________________________
Có 10 loại người trên thế giới. Những người hiểu nhị phân và những người mà không.
Tại sao Halloween và Giáng sinh lại giống nhau? .
_______________________________________________
NBVC
Người điều hành siêu hạng
1526,795Bài đăng5,223Hệ điều hànhWindows [x64]Phiên bản ExcelExcel 2016
Lại. Trích xuất văn bản hoặc số nguyên từ giữa các dấu ngoặc đơn
Thay đổi chút ít công thức của Pangolin để anh em copy ngang
=IF[LEN[$A1]-LEN[SUBSTITUTE[$A1,"[",""]]