Lọc dữ liệu dựa trên danh sách trong Tab khác trong Google Sheets

Đây là một mẹo Filter thú vị. Bạn sẽ học cách lọc dữ liệu dựa trên danh sách trong một Tab khác trong Google Sheets.

Bạn có thể làm cho công thức Filter của mình gọn gàng và dễ đọc bằng cách tuân thủ những mẹo dưới đây của tôi và bạn sẽ học được cách sử dụng tiên tiến hơn với chức năng Filter.

Bạn có biết cách lọc tập dữ liệu bằng các tiêu chí từ một phạm vi cột không?

Ý tôi là, tôi muốn sử dụng các tiêu chí trong một công thức Filter từ phạm vi cột có thể ở cùng một tab hoặc tab khác.

Xin vui lòng xem hình ảnh bên dưới. Danh sách tiêu chí nằm trong cột E và phạm vi cần lọc là cột A và B.

Danh sách tiêu chí

Không dễ dàng để nhập tất cả các tiêu chí vào công thức vì có tổng cộng 10 tiêu chí, cũng như không khuyến khích vì nó có thể làm công thức của bạn dùng chìm.

Nếu bạn có 3-4 tiêu chí, bạn có thể dễ dàng bao gồm chúng trong hàm. Ý tôi là bạn có thể tùy ý cứng và cứng như sau:

=filter(A1:B,regexmatch(A1:A,"plum|cherry|papaya"))

Nhưng khi số lượng tiêu chí rất lớn, giải pháp tốt hơn là nhập tiêu chí vào một cột và tham chiếu cột đó làm tiêu chí. Điều này có thể thực hiện được không?

Đúng vậy! Với sự trợ giúp của chức năng REGEXMATCH, chúng ta có thể làm điều đó một cách dễ dàng.

Tương tự: Regexmatch trong Tiêu chí Filter trong Google Sheets [Ví dụ]

Lọc dữ liệu dựa trên một danh sách trong Tab khác trong Google Sheets

Công thức Filter chính:

=filter(A1:B,regexmatch(A1:A,join("|",E1:E10)))

Trong ví dụ của tôi ở trên, tập dữ liệu (A1:B) và danh sách tiêu chí (E1:E10) nằm trên cùng một tab. Nếu danh sách tiêu chí nằm trên một tab khác, hãy bao gồm tên Tab cùng với phạm vi như thông thường.

Ví dụ:

Tab2!E1:E10

Ở công thức Filter chính của chúng tôi, phạm vi là A1:B và tiêu chí là công thức Regexmatch.

Công thức Regexmatch này có tác dụng gì?

Để hiểu điều đó, hãy xem một ví dụ đơn giản. Giả sử giá trị trong ô A1 là “Inspired”. Công thức REGEXMATCH sau sẽ trả về TRUE nếu bất kỳ từ “Info” hoặc “Inspired” nào xuất hiện trong ô A1.

=regexmatch(A1,"Info|Inspired")

Trong ví dụ chính của chúng tôi (công thức Filter chính), danh sách tiêu chí nằm trong phạm vi E1:E10. Hàm Join kết hợp tất cả các tiêu chí lại với nhau và chúng cách nhau bằng ký hiệu dấu “|”.

=join("|",E1:E10)

Kết quả:

“apple|apricot|banana|blackberry|blackcurrant|blueberry|cherry|coconut|fig|grape”

Hàm REGEXMATCH trả về TRUE cho tất cả các kết hợp phù hợp và FALSE cho các kết hợp không phù hợp.

Hàm Filter lọc các giá trị TRUE. Điều đó có nghĩa là tất cả các giá trị trong phạm vi A1:B sẽ được lọc bất kỳ khi nào có phù hợp trong E1:E10.

Một số mẹo bổ sung

Một vấn đề chưa được giải quyết trong công thức trên là việc khớp chính xác.

Ví dụ, công thức Regexmatch được sử dụng ở trên không thể phân biệt được từ “pineapple” và “apple”. Nó xem xét cả hai như nhau.

Nếu bạn muốn có một bộ lọc chính xác với nhiều tiêu chí như trên, hãy thay đổi công thức như sau.

=filter(A1:B,regexmatch(A1:A,join("|",("^"&E1:E10&"$"))))

Ở đây, tôi đã đặt ký hiệu Caret ^ ở đầu mỗi tiêu chí và ký hiệu Dollar $ ở cuối. Đó là:

^apple$|^cherry$

Vậy là xong. Hy vọng bạn đã thích hướng dẫn này. Cảm ơn bạn đã đọc!

Liên quan:

Related posts