Bài học về Query Where
Mệnh đề Where chỉ trả về những hàng khớp với những điều kiện đã chọn. Nếu bỏ qua, tất cả các hàng sẽ được trả về.
Các toán tử so sánh đơn giản là:
= (bằng)
>= (lớn hơn hoặc bằng)
<= (nhỏ hơn hoặc bằng)
> (lớn hơn)
< (nhỏ hơn)
<> (khác)
!= (khác)
Bạn có thể so sánh với null bằng cách sử dụng is null hoặc is not null.
Bạn có thể kết hợp nhiều điều kiện bằng cách sử dụng toán tử logic and, or và not.
Bạn có thể dùng dấu ngoặc đơn để xác định mức độ ưu tiên rõ ràng (nghĩa là khi điều kiện and, or nhiều thì bạn dùng (…) để xác định điều kiện và/hoặc chính xác)
=> Trả về kết quả cột B, C, G với điều kiện cột G >= 100.000.000 đồng và cột B là Hải hoặc Bắc
Mệnh đề Where cũng hỗ trợ một số toán tử so sánh chuỗi phức tạp hơn. Các toán tử này lấy 2 chuỗi làm đối số; mọi đối số không phải chuỗi (ví dụ: ngày hoặc số) sẽ được chuyển đổi thành chuỗi trước khi so sánh. Việc so khớp chuỗi có phân biệt chữ hoa chữ thường (bạn có thể dùng các hàm UPPER hoặc LOWER để giải quyết vấn đề đó).
LƯU Ý: Khi lọc với câu lệch Contains, Like, Matches thì cột dữ liệu lọc không có các siêu ký tự, trong 1 số trường hợp khi lọc bạn sẽ bị “bỏ sót” hay mất luôn dòng dữ liệu đó. Ví dụ dưới, trong các ô có rất nhiều siêu ký tự như .*+()
Query Where – Lọc bỏ trống
Nếu muốn lọc cột không trống ta dùng
B is not null
hoặc
B !=”
hoặc
B <>”
” viếtphía trên là 2 dấu nháy đơn (chứ không phải nháy kép)
Thực hành 1
Đang làm
Query Where – Lọc với Number, Text, Date
Number: Điều kiện là số thì ta đánh luôn số, nếu số ở 1 ô riêng biệt, ta đưa số vào trong “& ô chứ số &”, ví dụ: “&I2&”
Hoặc bạn muốn ghép với NUMBER thì bạn “ để kết thúc mệnh đề Select rồi & với ô chứa số
Text: Điều kiện là chữ thì ta cách viết tương tự số, nhưng thêm nháy đơn 2 đầu.
Thực hành 2
Đang làm
Query Where – Lọc với IF để lất Tất cả hoặc 1 giá trị
Để đưa 1 công thức vào trong hàm QUERY, ta đưa công thức đó vào trong “& công thức &”
Thực hành 3
Đang làm
Query Where – Lọc gần đúng với Contains, Like
Contains – Khớp chuỗi con.
Ví dụ: Where Col1 Contains ‘Goo’ sẽ khớp với “Google Sheets”, “Google”, nhưng không không khớp với “goo”, “Go to”
Like – Một tính năng tìm kiếm văn bản hỗ trợ 2 ký tự đại diện: % (khớp với 0 ký tự trở lên thuộc bất kỳ loại nào) và _ (dấu gạch dưới) khớp với một ký tự bất kỳ.
Ví dụ: Where Col1 like ‘fre%’ khớp với “fre”, “fred” và “freddy”.
hoặc Where Col1 like ‘I Love _oa%’ khớp “I love Hoan”, hoặc “I love Hoang”; nhưng không khớp với “I love Khoan” do chỉ lấy trước “oa” 1 ký tự
Thực hành 4
Đang làm
Query Where – Lọc gần đúng với Starts With, Ends With
Starts with – Khớp với các chuỗi có tiền tố trùng với chuỗi con chỉ định. Ví dụ: Where Col1 Starts with ‘goo’ khớp với “google sheets”, không khớp với “www.google.com” hoặc Goodnight – do chữ G viết hoa.
Ends with – Khớp với các chuỗi có hậu tố trùng với chuỗi con chỉ định. Ví dụ: Where Col1 Ends with ‘le’ khớp với “Google“, “Table“, nhưng không khớp với “Complete”, “Television” vì “le” không nằm cuối chuỗi.
Thực hành 5
Đang làm
Query Where – Lọc gần đúng theo biểu thức chính quy với Matches
Matches – Khớp biểu thức chính quy (preg). Đọc thêm về biểu thức chính quy tại đây
Ví dụ: Where Col1 Matches ‘.*le.*’ sẽ khớp “Google”, “Table”, “Complete”, “Television”, không khớp với “Close”, “Place”, “Slide” do chữ “l” và “e” không đứng cạnh nhau.
Where lower(C) matches lower(‘Cát vàng|Xi măng’) để có thể tìm được các cả chữ viết hoa và viết thường, với điều kiện cột C là Cát vàng hoặc Xi măng. Dấu | tương đương điều kiện OR.
Còn nếu cột số C “có chứa” cụm từ Cát vàng hoặc Xi măng thì phải dùng:
Where lower(C) matches lower(‘.*Cát vàng.*|.*Xi măng.*‘)
Bạn có thể dùng điều kiện Matches để rút gọn điều kiện Contains khi phải liệt kế quá nhiều:
=QUERY(Data!A:E;”Select * where E Contains ‘Bắc Trung’ or E Contains ‘Tây Nam’ “;1)
thành
=QUERY(Data!A:E;“Select * where E Matches ‘.*Bắc Trung.*|.*Tây Nam.*’ “;1)
Thực hành 6
Đang làm
Query Where – Lọc theo điều kiện là checkbox
Thực hành 7
Đang làm
Query Where – Lọc theo điều kiện checklist
Thực hành 8
Đang làm
Query Where – Lọc nhiều điều kiện với Data Validation Multiple Dropdown
Thực hành 9
Đang làm
Query Where – Đặt điều kiện Where tại 1 ô riêng biệt
Thực hành 10
Đang làm