DGET: lấy đúng một giá trị duy nhất, và cách nó phát hiện dữ liệu trùng lặp giúp bạn
Chia sẻ
"DGET trả về đúng một giá trị khớp điều kiện — nếu có nhiều hơn một dòng khớp, nó báo lỗi thay vì âm thầm lấy dòng đầu tiên như VLOOKUP vẫn làm, biến DGET thành một cách phát hiện dữ liệu trùng lặp ngoài ý muốn."
Bài trước, DMAX, DMIN tìm giá trị lớn nhất, nhỏ nhất. DGET là hàm cuối cùng và đặc biệt nhất trong nhóm hàm cơ sở dữ liệu — nó không tổng hợp nhiều dòng thành một con số, mà lấy ra đúng một giá trị duy nhất, và cố tình báo lỗi nếu điều đó không thể thực hiện được.
Công thức trong bài dùng dấu phẩy (,); đổi sang dấu chấm phẩy (;) nếu Excel của bạn cấu hình theo vùng miền khác.
Cú pháp
=DGET(vung_du_lieu, truong, vung_dieu_kien)
Cùng cấu trúc vùng điều kiện với các hàm D khác, nhưng kết quả trả về là một giá trị, không phải một con số tổng hợp.
Ứng dụng: tra cứu khi cần đối chiếu nhiều cột để xác định đúng một dòng
VLOOKUP tra theo đúng một cột khoá duy nhất. Khi cần xác định một dòng dựa trên nhiều cột cùng lúc — ví dụ tìm giá của đúng sản phẩm "Bút bi" từ nhà cung cấp "NCC01" (hai sản phẩm trùng tên nhưng khác nhà cung cấp có giá khác nhau):
=DGET(A1:D50,"Giá",F1:G2)
Vùng điều kiện khai cả SanPham="Bút bi" và NhaCungCap="NCC01" trên cùng một dòng — DGET tìm đúng một dòng thoả cả hai điều kiện và trả về giá của dòng đó.
Khác biệt quan trọng nhất: báo lỗi khi khớp nhiều hơn một dòng
=DGET(A1:D50,"Giá",F1:F2)
Nếu điều kiện chỉ khai SanPham="Bút bi" (thiếu điều kiện nhà cung cấp) và có hai dòng cùng tên "Bút bi" từ hai nhà cung cấp khác nhau, DGET báo lỗi #NUM! — nó từ chối đoán xem nên lấy dòng nào. Đây là khác biệt quan trọng nhất so với VLOOKUP: VLOOKUP sẽ âm thầm lấy dòng khớp đầu tiên tìm thấy mà không hề báo hiệu gì, còn DGET chủ động báo lỗi ngay khi phát hiện điều kiện chưa đủ để xác định duy nhất một dòng.
Tận dụng làm công cụ phát hiện dữ liệu trùng lặp ngoài ý muốn
=IFERROR(DGET(A1:D50,"Giá",F1:F2),"Kiểm tra lại: trùng lặp hoặc không tìm thấy")
Nếu một mã sản phẩm lẽ ra phải là duy nhất trong bảng dữ liệu nhưng vô tình bị nhập trùng hai lần, DGET sẽ báo lỗi ngay khi tra theo đúng mã đó — trở thành một cách kiểm tra tính duy nhất của dữ liệu, phát hiện lỗi nhập liệu mà VLOOKUP không bao giờ cảnh báo.
Không khớp dòng nào: báo lỗi khác hẳn
=DGET(A1:D50,"Giá",F1:F2)
Nếu không có dòng nào khớp điều kiện, DGET báo lỗi #VALUE! — khác với lỗi #NUM! khi khớp quá nhiều dòng. Hai mã lỗi khác nhau giúp phân biệt rõ ràng hai tình huống: "không tìm thấy gì" và "tìm thấy nhiều hơn một".
Tổng kết
DGET lấy đúng một giá trị khớp điều kiện, chủ động báo lỗi #NUM! nếu khớp nhiều hơn một dòng và #VALUE! nếu không khớp dòng nào — khác hẳn VLOOKUP âm thầm lấy dòng đầu tiên tìm thấy. Chính đặc tính "từ chối đoán" này biến DGET thành một công cụ hữu ích để phát hiện dữ liệu trùng lặp ngoài ý muốn.
Đây là bài cuối trong cụm 5 bài lô 19 về nhóm hàm cơ sở dữ liệu, bắt đầu từ DSUM.
Mục lục
Muốn làm chủ Excel?
Tham gia khóa học E-Learning của Trà Đá Data để được hướng dẫn chi tiết từ A-Z với Case Study thực tế.
Tìm hiểu ngayBài viết liên quan
Khám phá thêm các bài viết cùng chủ đề
DMAX, DMIN: giá trị lớn nhất và nhỏ nhất kiểu cơ sở dữ liệu
DMAX và DMIN tìm giá trị lớn nhất, nhỏ nhất dựa trên vùng điều kiện kiểu bảng — đúng vị trí của MAXIFS/MINIFS trong nhóm hàm cơ sở dữ liệu, cùng trả về 0 thay vì báo lỗi khi không có dòng nào khớp.
DAVERAGE: tính trung bình kiểu cơ sở dữ liệu
DAVERAGE tính trung bình dựa trên một vùng điều kiện kiểu bảng, hỗ trợ cả điều kiện HOẶC lẫn VÀ phức tạp giống DSUM. Cùng gặp lỗi #DIV/0! như AVERAGEIF/AVERAGEIFS khi không có dòng nào khớp.
DCOUNT, DCOUNTA: đếm kiểu cơ sở dữ liệu, và khác biệt giữa đếm số với đếm mọi ô có dữ liệu
DCOUNT chỉ đếm các ô chứa số thoả điều kiện, DCOUNTA đếm mọi ô có dữ liệu (số, chữ, ngày). Cùng chung vùng điều kiện kiểu bảng với DSUM, hỗ trợ cả điều kiện HOẶC lẫn VÀ phức tạp.
Bình luận
Đăng nhập để tham gia bình luận
Đăng nhậpNhận bài viết mới nhất
Đăng ký để nhận thông báo khi có bài viết mới. Không spam, chỉ kiến thức chất lượng.