Chào mọi người, mình là thành viên mới của diễn đàn và cũng là người thường xuyên làm việc với Google Sheets. Dạo gần đây mình có xử lý một file dữ liệu khá lớn, lên đến hàng chục ngàn dòng và nhận thấy rằng việc chỉ dùng các hàm cơ bản như VLOOKUP hay IF đôi khi không còn đủ hiệu quả, thậm chí còn làm chậm file. Mình muốn chia sẻ một chút kinh nghiệm về cách mình đã tối ưu hóa quá trình xử lý và phân tích dữ liệu bằng cách kết hợp hai hàm cực kỳ mạnh mẽ là FILTER và QUERY.
Trước đây, để lọc ra một tập con dữ liệu theo nhiều điều kiện, mình thường phải lồng ghép nhiều hàm IF hoặc dùng các cột phụ trợ. Tuy nhiên, hàm FILTER giúp việc này trở nên đơn giản hơn rất nhiều. Ví dụ, để lấy tất cả các dòng có 'Doanh thu' lớn hơn 10,000,000 và 'Khu vực' là 'Miền Bắc', mình chỉ cần dùng công thức:
=FILTER(A1:Z10000, (B1:B10000 > 10000000) * (C1:C10000 = "Miền Bắc"))Trong đó, A1:Z10000 là toàn bộ dải dữ liệu, cột B chứa doanh thu và cột C chứa khu vực.
Nhưng nếu nhu cầu phức tạp hơn, ví dụ như cần nhóm dữ liệu, tính tổng theo từng nhóm, hoặc sắp xếp kết quả theo nhiều tiêu chí cùng lúc, thì QUERY thực sự là 'vũ khí bí mật'. Hàm này sử dụng cú pháp giống SQL, cho phép bạn thực hiện các thao tác rất mạnh mẽ. Ví dụ, để lấy tổng doanh thu theo từng khu vực từ dữ liệu ở trên và sắp xếp theo doanh thu giảm dần:
=QUERY(A1:Z10000, "SELECT C, SUM(B) WHERE B IS NOT NULL GROUP BY C ORDER BY SUM(B) DESC LABEL SUM(B) 'Tổng Doanh Thu'")Sử dụng QUERY giúp mình giảm đáng kể số lượng công thức trong bảng tính, làm cho file nhẹ hơn và dễ quản lý hơn. Đôi khi mình còn kết hợp FILTER để lọc trước một phần dữ liệu, sau đó mới đưa vào QUERY để xử lý tiếp, tăng tốc độ đáng kể.
Không biết có anh chị em nào có kinh nghiệm hay các mẹo khác khi làm việc với dữ liệu lớn trên Google Sheets không? Chia sẻ cho mọi người cùng học hỏi nhé!