REGEX.EXTRACT

Hàm REGEX.EXTRACT trả về các kết quả hoặc nhóm ghi trong một kết quả của biểu thức thông thường đã cho trong chuỗi nguồn.

REGEX.EXTRACT(chuỗi nguồn, chuỗi biểu thức thông thường, lần xuất hiện kết quả, lần xuất hiện nhóm ghi)

chuỗi nguồn: Một giá trị chuỗi sẽ được đối chiếu.

chuỗi biểu thức thông thường: Một giá trị chuỗi biểu thị một biểu thức thông thường, được sử dụng để đối chiếu với chuỗi nguồn.

lần xuất hiện kết quả: Một số nguyên tùy chọn cho biết cần trả về kết quả nào, trong trường hợp có nhiều kết quả. Các số nguyên âm được chấp nhận và cho phép tiếp cận các kết quả về phía sau, do đó -1 là kết quả gần nhất, v.v. Nếu cung cấp 0, một dãy gồm tất cả các kết quả sẽ được trả về. Nếu bỏ qua, kết quả thứ nhất được trả về.

lần xuất hiện nhóm ghi: Một số nguyên tùy chọn cho biết cần trả về nhóm ghi nào trong một kết quả, trong trường hợp có nhiều nhóm ghi trong biểu thức thông thường. Không chấp nhận giá trị âm. Nếu trả về 0, một dãy gồm tất cả các nhóm ghi sẽ được trả về. Nếu bỏ qua, toàn bộ kết quả được trả về.

Ghi chú

  • Biểu thức thông thường phải tuân theo tiêu chuẩn ICU.

Ví dụ

Nếu bạn có dữ liệu không khớp dễ dàng với các hàng và cột của bảng tính thì bạn có thể sử dụng REGEX.EXTRACT để đơn giản hóa. Ví dụ: trong bảng bên dưới, dữ liệu có một số cấu trúc, nhưng có thể khó tách dữ liệu theo cách thủ công vào nhiều ô để đánh giá.

A

1

Đánh giá của người dùng

2

Email: jtalma@icloud.com Tên: Julie Talma Ngày: 17/05/2021

3

Email: danny_rico@icloud.com Tên: Danny Rico Ngày: 02/06/2021

Để khắc phục sự cố này, bạn có thể thêm các cột khác vào bảng cho Tên, Email, Xếp hạng và Ngày rồi sử dụng REGEX.EXTRACT để tìm dữ liệu bạn muốn và trả về dữ liệu đó vào ô.

Ví dụ: bạn có thể nhập công thức sau để trả về tên:

Trình sửa công thức đang hiển thị công thức =REGEX.EXTRACT(A2,"(?<=Name: )(.*)(?= Date)".

Trong công thức này, các đối số sau đây được sử dụng:

  • chuỗi nguồn: A2, ô chứa dữ liệu bạn muốn tìm kiếm tên.

  • chuỗi biểu thức thông thường: "(?<=Name: )(.*)(?= Date)", biểu thức thông thường tìm kiếm văn bản giữa chuỗi "Tên: " và " Ngày".

Bạn có thể lặp lại công thức nay cho từng hàng dữ liệu để trả về tên của từng người đã trả lời cuộc khảo sát bằng cách thay đổi chuỗi nguồn để khớp với các ô khác chứa thông tin về đánh giá của người dùng.

Để khắc phục sự cố này, bạn có thể thêm các cột khác vào bảng cho Tên, Email, Xếp hạng và Ngày rồi sử dụng REGEX.EXTRACT để tìm dữ liệu bạn muốn và trả về dữ liệu đó vào ô.

Ví dụ: bạn có thể nhập công thức sau:

Trình sửa công thức đang hiển thị công thức =REGEX.EXTRACT(A2,"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")

Trong công thức này, các đối số sau đây được sử dụng:

  • chuỗi nguồn: A2, ô chứa dữ liệu bạn muốn tìm kiếm email.

  • chuỗi biểu thức thông thường: "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}", biểu thức thông thường tìm kiếm mẫu địa chỉ email.

Sắp xếp lại dữ liệu từ danh sách có lần xuất hiện kết quả

Đôi khi, bạn có thể có dữ liệu như bảng (có tiêu đề Nhà cung cấp) bên dưới, sẽ cùng nhóm các giá trị vào ô:

Nhà cung cấp

Mặt hàng

A

Đậu lăng, Garbanzo, Lima

B

Táo, Cam, Chanh

C

Quinoa, Gạo, Chia

Để tách biệt các giá trị dựa vào cửa hàng và thứ hạng, trước tiên bạn có thể tạo một bảng mới, chẳng hạn như bảng bên dưới:

A

B

C

D

1

Thứ hạng

A

B

C

2

1

3

2

4

3

Để trả về Đậu lăng, mặt hàng được xếp hạng hàng đầu cho Nhà cung cấp A, bạn có thể sử dụng công thức như sau trong ô B2 của bảng mới để trả về Đậu lăng, mặt hàng được xếp hạng hàng đầu cho Nhà cung cấp A:

Trình sửa công thức đang hiển thị công thức =REGEX.EXTRACT(Nhà cung cấp::B2;"\w+";ROW(A2)-1).

Trong công thức này, các đối số sau đây được sử dụng:

  • chuỗi nguồn: Nhà cung cấp::B2, ô chứa dữ liệu bạn muốn tìm kiếm. Trong trường hợp này, bạn muốn tìm kiếm danh sách trong ô này.

  • chuỗi biểu thức thông thường: "\w+", biểu thức thông thường tìm kiếm từ.

  • lần xuất hiện kết quả: ROW(A2)-1. Trong trường hợp này, có 3 kết quả phù hợp cho mọi REGEX.EXTRACT và bạn có thể sử dụng một hàm khác như ROW để đặt kết quả phù hợp cụ thể bạn muốn. ROW(A2) trả về số hàng của ô (2) được chọn và -1 được bao gồm để trừ hàng đầu trang khỏi kết quả; nếu không bạn sẽ trả về Garbanzo (kết quả phù hợp thứ hai) trong ví dụ này.

    Nếu bạn bỏ qua lần xuất hiện kết quả, kết quả cho từng nhà cung cấp luôn là từ đầu tiên được trả về (Lentil cho Nhà cung cấp A, Táo cho Nhà cung cấp B, v.v.).

Công thức phía trên có thể dễ dàng được sửa đổi để hoàn tất bảng cho các nhà cung cấp khác cũng như các mặt hàng khác.

  • Để trả về các sản phẩm phổ biến khác cho một nhà cung cấp duy nhất, bạn có thể sửa đổi lần xuất hiện kết quả. Ví dụ: để trả về Garbanzo, mặt hàng phổ biến nhất tiếp theo cho Nhà cung cấp A, bạn có thể thay đổi tham chiếu ô trong lần xuất hiện kết quả từ A2 thành A3.

  • Để trả về các giá trị cho một nhà cung cấp khác, bạn có thể sửa đổi chuỗi nguồn. Ví dụ: để trả về Táo, mặt hàng phổ biến nhất cho Nhà cung cấp B, bạn có thể thay đổi tham chiếu ô trong chuỗi nguồn từ B2 thành B3.

Các ví dụ khác

Giả sử A1 là "marina@example.com john@example.ca mike@example.de".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})") trả về "marina@example.com".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 2) trả về "john@example.ca".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; -1) trả về "mikeexample.de".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 1; 1) trả về "marina".

=REGEX.EXTRACT(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 2; 2) trả về "example.ca".

Xem thêmREGEX
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
Có ích?
Giới hạn ký tự: 250
Giới hạn tối đa là 250 ký tự.
Cảm ơn phản hồi của bạn.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.