Khớp chuỗi Google Trang tính

mèo con nói
Tháng Chín 20, 2020 tại 8. 26 giờ sáng

Xin chào, trước tiên tôi muốn nói lời cảm ơn vì tất cả các hướng dẫn, họ đã thực sự giúp đỡ

Vì vậy, tôi có một trang tính với 2 tab trên đó. Đầu tiên được gọi là "Vật phẩm" và thứ hai được gọi là "Master"
Đây là cách đơn giản nhất để mô tả những gì tôi cần
Thẩm quyền giải quyết. vật phẩm. A. A (Danh sách id duy nhất)
Nhìn vào đây cho một trận đấu. Bậc thầy. C. C (Danh sách id, một số lặp lại)
Trở lại. Bậc thầy. B. B (thông tin đi kèm với id)
Vào trong. vật phẩm. G. G (kết quả cần nằm trong một ô và được phân tách bằng dấu phẩy)
Điều khó khăn là có thể có bất kỳ số lượng trận đấu nào trong Master. C. C từ 0 trở lên và tôi cần tất cả chúng trừ cái đầu tiên vì cái đó khác và tôi đã có cái đó trong Mục. E. E. Nếu không có kết quả phù hợp, nó sẽ để trống

Tôi hiện đang sử dụng công thức này để tìm kết quả khớp đầu tiên trong Mục. E2, nhưng tôi không biết cách điều chỉnh nó cho các trận còn lại và loại trừ người đầu tiên vào Vật phẩm. G2
=IFERROR(INDEX('Chính'. $B. $B, TRẬN ĐẤU ($A2, 'Chính'. $C. $C, 0)))

Hồi đáp

Bài đăng này giải thích cách đối sánh chính xác một chuỗi cũng như nhiều chuỗi bằng biểu thức chính quy trong Google Trang tính

Trên thực tế, tôi đã giải thích điều tương tự trong một số hướng dẫn trước đây của mình. Nhưng chủ đề trọng tâm của những bài hướng dẫn đó lại khác

Hơn nữa, khớp chính xác của nhiều chuỗi sử dụng biểu thức chính quy (khớp mẫu) có thể là một phần trong một vài hướng dẫn trong tương lai của tôi

Vì vậy, thay vì viết đi viết lại các bước, tôi nghĩ tốt hơn là nên viết một hướng dẫn về biểu thức chính quy cho khớp chính xác để tôi có thể liên kết nó trong các hướng dẫn có liên quan trong tương lai. Hướng dẫn này là kết quả của quá trình suy nghĩ đó

Có hai hàm trong Google Sheets để đối sánh biểu thức chính quy. Chúng là REGEXMATCH và QUERY

REGEXREPLACE và REGEXEXTRACT là hai hàm khác sử dụng biểu thức chính quy. Chúng tôi không yêu cầu hai chức năng này cho toán học chính xác

Hai hàm hỗ trợ khớp chính xác bằng biểu thức chính quy trong Google Sheets

Trên thực tế, chúng ta có thể sử dụng REGEXMATCH để khớp chính xác và trả về TRUE hoặc FALSE trong khi QUERY để khớp chính xác và lọc một phạm vi

Xin lưu ý rằng, tương tự như QUERY, sử dụng hàm FILTER với REGEXMATCH, chúng ta có thể lọc các chuỗi khớp chính xác. Nhưng khả năng tổng hợp của QUERY sẽ vẫn bị thiếu

Dưới đây là mảng mẫu để kiểm tra các công thức của chúng ta (đối sánh chính xác đối sánh biểu thức chính quy)

Phạm vi dữ liệu mẫu. A1. B8

Sản phẩm Giao hàngSản phẩm 1 tháng 1Sản phẩm 2 tháng 2Sản phẩm 6 tháng 1Sản phẩm 11 tháng 3Sản phẩm 22 tháng 2Sản phẩm 1 & 5 tháng 2Sản phẩm 2 & 6 tháng 3

Kết hợp chính xác biểu thức chính quy trong REGEXMATCH trong Google Sheets

Tiêu chí đơn (Điều kiện)

Giả sử tôi muốn kiểm tra xem ô A2 có chứa “Sản phẩm 1” hay không. Sau đó, tôi nên sử dụng công thức REGEXMATCH như bên dưới

=REGEXMATCH(A2,"^Product 1$")

Điều này sẽ trả về TRUE nếu ô A2 chứa chuỗi “Sản phẩm 1”. Đây là đối sánh chính xác bằng cách sử dụng cụm từ thông dụng trong Google Trang tính. Nó sẽ không khớp với “Sản phẩm” hoặc “Sản phẩm 11”

Để khớp chính xác một tiêu chí trong toàn bộ cột, hãy sử dụng hàm ARRAYFORMULA với REGEXMATCH

=ArrayFormula(REGEXMATCH(A2:A,"^Product 1$"))

Chờ đợi. Trước khi sử dụng công thức này, bạn cần bao gồm một biểu thức logic để giới hạn việc mở rộng kết quả sang các ô không trống

Tôi thường sử dụng kết hợp IF và LEN để kiểm tra xem độ dài của ô có lớn hơn hoặc bằng 0 không. Nếu ô có nội dung, LEN sẽ trả về độ dài của các ký tự khác 0

=ArrayFormula(if(len(A2:A)=0,,REGEXMATCH(A2:A,"^Product 1$")))
Khớp chuỗi Google Trang tính

Nếu bạn không quen với cách kết hợp IF và LEN, thì đây là một công thức thay thế.

=ArrayFormula(if(A2:A="",,REGEXMATCH(A2:A,"^Product 1$")))

Điều gì về việc sử dụng tiêu chí cho kết hợp chính xác làm tham chiếu ô?

Hãy chèn tiêu chí là ô D1. Sau đó, trong các công thức trên, sử dụng tiêu chí như dưới đây

=ArrayFormula(if(len(A2:A)=0,,REGEXMATCH(A2:A,"^"&D1&"$")))

Nhiều tiêu chí (Điều kiện)

Để đối sánh chính xác nhiều điều kiện bằng cách sử dụng biểu thức chính quy trong Google Trang tính, hãy phân tách từng tiêu chí bằng ký hiệu

=ArrayFormula(REGEXMATCH(A2:A,"^Product 1$"))
5. Các dấu Caret và Dollar phải được lặp lại cho từng tiêu chí

=ArrayFormula(if(len(A2:A)=0,,REGEXMATCH(A2:A,"^Product 1$|^Product 22$|^Product 2$")))

Tiêu chí trong D1. D3 (Phạm vi cố định)

Để tham khảo nhiều tiêu chí, chúng ta có thể viết các tiêu chí như dưới đây nhưng không nên

=ArrayFormula(if(len(A2:A)=0,,REGEXMATCH(A2:A,"^"&D1&"$|^"&D2&"$|^"&D3&"$")))
Khớp chuỗi Google Trang tính

Sẽ hoạt động nhưng không linh hoạt vì các tham chiếu ô được tham chiếu riêng lẻ. Vì vậy, trong tương lai, chúng tôi có thể yêu cầu sửa đổi công thức để thêm nhiều điều kiện hơn. Chúng tôi có thể làm cho nó linh hoạt như dưới đây.

Tiêu chí trong D1. D (Phạm vi mở)

________số 8_______

Điều này sẽ giúp bạn bao gồm nhiều tiêu chí hơn trong cột D trong tương lai

Vì vậy, công thức sẽ là;

=ArrayFormula(if(len(A2:A)=0,,REGEXMATCH(A2:A,"^"&textjoin("$|^",true,D1:D)&"$")))

Lọc kết quả khớp chính xác bằng FILTER và REGEXMATCH trong Google Sheets

Nếu bạn có thể hiểu cách sử dụng cụm từ thông dụng để khớp chính xác trong Google Trang tính, thì phần lọc sẽ dễ dàng cho bạn

Syntax: FILTER(range, condition1)

Bạn chỉ muốn sử dụng công thức REGEXMATCH làm LỌC ‘điều kiện1’

Thí dụ

=ArrayFormula(REGEXMATCH(A2:A,"^Product 1$"))
0

Bạn có thể xóa

=ArrayFormula(REGEXMATCH(A2:A,"^Product 1$"))
6 và một trong các dấu ngoặc đóng khỏi phần cuối vì công thức FILTER trong Google Trang tính không yêu cầu hàm ARRAYFORMULA bên trong

Khớp chuỗi Google Trang tính

Kết hợp biểu thức chính quy trong truy vấn

Nếu mục đích đối sánh chính xác của bạn bằng biểu thức chính quy trong Google Trang tính chỉ là để lọc hoặc lọc và tổng hợp dữ liệu, thì QUERY là tùy chọn tốt hơn

Trong Truy vấn, chúng ta có thể sử dụng mệnh đề MATCHES để đối sánh biểu thức chính quy của một tiêu chí cũng như nhiều tiêu chí

Bạn có thể thích. Thứ tự mệnh đề đúng trong Truy vấn Google Trang tính là gì?

tiêu chí duy nhất

=ArrayFormula(REGEXMATCH(A2:A,"^Product 1$"))
1

Khi tiêu chí nằm trong ô D1 (vui lòng tham khảo Ví dụ về việc sử dụng chữ trong truy vấn trong Google Trang tính)

=ArrayFormula(REGEXMATCH(A2:A,"^Product 1$"))
2

Ở đây cũng cho nhiều tiêu chí, chúng ta có thể sử dụng dấu phân cách

=ArrayFormula(REGEXMATCH(A2:A,"^Product 1$"))
5. Nhưng không giống như REGEXMATCH, dấu ^ và $ xung quanh tiêu chí là không bắt buộc

Tiêu chí được mã hóa cứng vào Công thức

=ArrayFormula(REGEXMATCH(A2:A,"^Product 1$"))
3

Tài liệu tham khảo Cel

=ArrayFormula(REGEXMATCH(A2:A,"^Product 1$"))
4

Để biết thêm chi tiết về đối sánh cụm từ thông dụng QUERY, vui lòng xem hướng dẫn này – Đối sánh Đối sánh cụm từ thông dụng trong Truy vấn Google Trang tính

Chức năng so khớp hoạt động như thế nào trong Google Trang tính?

MATCH trả về vị trí trong một mảng hoặc phạm vi của một giá trị phù hợp thay vì chính giá trị đó . Để trả về chính giá trị đó hoặc một giá trị khác tương ứng với hàng hoặc cột tìm thấy kết quả khớp, hãy sử dụng INDEX , HLOOKUP hoặc VLOOKUP.

Regexmatch là gì?

Hàm REGEXMATCH kiểm tra xem một đoạn văn bản có khớp với biểu thức chính quy hay không . cú pháp. REGEXMATCH ( biểu thức văn bản đơn, biểu thức văn bản đơn ) Ý nghĩa. REGEXMATCH ( input_text, regular_expression ) Trả về. Một boolean duy nhất.