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: Trong công thức này, các đối số sau đây được sử dụng:
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: Trong công thức này, các đối số sau đây được sử dụng:
|
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: Trong công thức này, các đối số sau đây được sử dụng:
|
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.
|
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". |