Excel trích xuất văn bản giữa các dấu ngoặc đơn vba

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êm


Trâ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ố

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êm


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,"[",""]]

Chủ Đề