Hàm vùng và tra cứu
Nhóm này gồm 14 hàm làm việc với vùng dữ liệu: dò tìm nâng cao (một chiều, hai chiều, nhiều kết quả, tìm trên mọi trang tính), lọc và lấy giá trị duy nhất từ mảng, tính tổng/đếm theo màu nền hoặc theo dòng đang hiển thị, và tự động ẩn dòng theo điều kiện.
Các ví dụ dưới đây dùng dấu chấm phẩy ; để ngăn cách tham số (Excel chạy trên Regional format Việt Nam). Nếu máy bạn dùng định dạng English (US), hãy gõ dấu phẩy , thay cho ;.
Bảng tra nhanh:
| Hàm | Công dụng |
|---|---|
dvdXlookup | Dò tìm mở rộng, có xử lý lỗi và chế độ tìm xấp xỉ. |
dvdELookup | Lấy kết quả của lần khớp cuối cùng trong vùng. |
dvdMCLookup | Trả về tất cả các dòng khớp, gồm nhiều cột, ra một vùng đích. |
dvdMVLookup | Trả về tất cả giá trị khớp từ một cột lệch so với cột dò. |
dvdTableLookup | Dò tìm hai chiều theo tiêu đề hàng và tiêu đề cột. |
dvdLookupAllSheets | Dò tìm một giá trị trên tất cả các trang tính của workbook. |
dvdUnique | Trả về mảng các giá trị duy nhất của một vùng. |
dvdUniqueV | Trả về giá trị duy nhất, ghi phần còn lại ra vùng đích. |
dvdUnique2DArray | Giữ lại các dòng duy nhất của mảng theo một cột khóa. |
dvdFilter2DArray | Lọc mảng hai chiều theo điều kiện của một cột. |
dvdSumVisible | Cộng các ô đang hiển thị, bỏ qua dòng và cột bị ẩn. |
dvdSumIfColor | Cộng các ô có màu nền giống ô mẫu. |
dvdCountIfColor | Đếm các ô có màu nền giống ô mẫu. |
dvdAutoHide | Tự động ẩn dòng không thỏa điều kiện và đánh lại số thứ tự. |
dvdXlookup
Dò tìm một giá trị trong vùng dò và trả về giá trị tương ứng ở vùng kết quả, có tùy chọn giá trị thay thế khi không tìm thấy hoặc khi lỗi.
Cú pháp:
=dvdXlookup(LookupValue; LookupArray; ReturnArray; [IfNotFound]; [IfError]; [MatchMode])| Tham số | Bắt buộc | Mô tả |
|---|---|---|
LookupValue | Có | Giá trị cần tìm kiếm trong LookupArray. |
LookupArray | Có | Phạm vi dữ liệu nơi thực hiện tìm kiếm. |
ReturnArray | Có | Phạm vi trả kết quả. |
IfNotFound | Không | Giá trị trả về nếu không tìm thấy; bỏ trống thì trả #N/A. |
IfError | Không | Giá trị trả về nếu có lỗi; bỏ trống thì trả #N/A. |
MatchMode | Không | 0 = chính xác (mặc định), -1 hoặc 1 = xấp xỉ, tương tự XLOOKUP. |
Ví dụ:
=dvdXlookup(A6; 'Đơn giá'!$A$5:$A$500; 'Đơn giá'!$E$5:$E$500; "Chưa có đơn giá"; "Lỗi dữ liệu"; 0)
// → 1.850.000 (đơn giá của mã công tác trong ô A6)
=dvdXlookup(D6; $H$5:$H$20; $I$5:$I$20; ""; ""; 1)
// → hệ số của khoảng cự ly vận chuyển gần nhất không vượt quá D6Lưu ý
- Hàm luôn dò khớp chính xác trước; chỉ khi không tìm thấy và
MatchModekhác0mới chuyển sang xấp xỉ. - Chế độ xấp xỉ chỉ áp dụng cho dữ liệu số:
-1lấy giá trị nhỏ nhất lớn hơn hoặc bằng giá trị tìm,1lấy giá trị lớn nhất nhỏ hơn hoặc bằng giá trị tìm.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Chọn ô D12 (đơn giá của mã ở A12) rồi gõ =dvdx — danh sách gợi ý hiện DVDXLOOKUP kèm mô tả hàm (1). Nhấn Tab để chọn.

Bước 2. Chọn ô mã A12, cột mã của bảng giá (1) và cột đơn giá (2) (nhấn F4 để thêm $), rồi gõ "Chưa có giá" cho mã không tìm thấy. Khung gợi ý (3) in đậm đối số đang nhập.

Bước 3. Muốn xem mô tả từng đối số, nhấn Ctrl+A ngay sau tên hàm: hộp Đối số Hàm hiện giá trị trả về khi không tìm thấy (1) và kết quả tính thử (2). Ô thứ sáu MatchMode (cuộn xuống) nhận 1/-1 để dò xấp xỉ dữ liệu số. Bấm OK (3).

Bước 4. Nhấn Enter rồi chép công thức xuống D13: mã VL.004 trả đơn giá 15.800 (1); mã VL.009 chưa có trong bảng giá nên ô hiện "Chưa có giá" thay vì #N/A (2).

dvdELookup
Dò từ dưới lên và trả về kết quả của lần khớp cuối cùng — dùng khi một mã công tác xuất hiện nhiều lần và bạn cần bản ghi mới nhất.
Cú pháp:
=dvdELookup(LookupValue; LookupRange; ResultRange)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
LookupValue | Có | Giá trị cần tìm kiếm. |
LookupRange | Có | Phạm vi chứa giá trị cần tìm. |
ResultRange | Có | Phạm vi chứa kết quả. |
Ví dụ:
=dvdELookup(A6; $B$5:$B$300; $F$5:$F$300)
// → khối lượng của lần nghiệm thu gần nhất cho mã công tác A6Lưu ý
- Không tìm thấy thì hàm trả về chuỗi
Không tìm thấy kết quả. - Hai vùng nên có cùng số dòng vì kết quả được lấy theo vị trí tương ứng.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Chọn ô D12 rồi gõ =dvde, chọn DVDELOOKUP trong danh sách gợi ý (1) và nhấn Tab.

Bước 2. Chọn ô mã B12, cột mã của nhật ký (1) rồi cột đơn giá (2) — hai vùng phải cùng số dòng vì kết quả lấy theo vị trí. Khung gợi ý (3) mô tả đối số đang nhập.

Bước 3. Nhấn Enter rồi chép xuống D13. Hàm dò từ dưới lên nên lấy giá 15.800 (1) của lần cập nhật cuối 03/09/2026 (2), không phải 15.200 ở dòng đầu. Mã không có trong nhật ký thì hàm trả "Không tìm thấy kết quả".

dvdMCLookup
Trả về tất cả các dòng khớp với giá trị tìm kiếm, kèm đầy đủ các cột, ghi ra một vùng đích trên trang tính.
Cú pháp:
=dvdMCLookup(ReturnCols; LookupColIndex; LookupValue; outputRange)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
ReturnCols | Có | Các cột chứa giá trị trả về. |
LookupColIndex | Có | Chỉ số cột dùng để dò tìm, tính từ 1 trong vùng ReturnCols. |
LookupValue | Có | Giá trị cần tìm. |
outputRange | Có | Vùng đích để hiển thị kết quả. |
Ví dụ:
=dvdMCLookup($A$5:$F$500; 2; $H$3; $H$6:$M$40)
// → "Done", đồng thời toàn bộ các dòng có mã hạng mục ở H3 được ghi vào H6:M40Lưu ý
- Ô chứa công thức chỉ hiển thị
Done; dữ liệu nằm ởoutputRange. Kết quả chỉ được ghi trong vùng này — nhiều hơn số dòng của vùng thì dòng cuối ghi … còn N kết quả — mở rộng outputRange thay vì tràn đè lên ô bên dưới.outputRangelà một ô thì kết quả trải xuống từ ô đó. - Hàm so khớp theo chuỗi văn bản (không phân biệt chữ hoa/thường): số
5khớp ô chứa5hoặc chữ"5", nhưng không khớp"05"hay"5.0"— khácdvdXlookup/dvdELookup/dvdTableLookupvốn so cả theo giá trị số. - Hàm tính lại khi
ReturnColshoặcLookupValueđổi (không còn volatile), và chỉ ghi khi kết quả thật sự đổi — sửa chỗ khác trong sổ không làm mấtCtrl+Z. Luôn ghi vào đúng sổ chứa công thức, kể cả khi đang mở nhiều sổ có sheet trùng tên. - Không có dòng nào khớp thì hàm trả
#N/Avà dọn kết quả cũ trongoutputRange.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Chọn ô A14 rồi gõ =dvdm, chọn DVDMCLOOKUP trong danh sách gợi ý (1) và nhấn Tab.

Bước 2. Chọn bảng dữ liệu (1), gõ 1 (Hạng mục là cột thứ nhất của bảng), chọn ô cần lọc (2) rồi chọn vùng đích trống có cùng số cột (3). Khung gợi ý (4) mô tả đối số đang nhập.

Bước 3. Nhấn Enter: ô công thức hiện Done (1), bốn dòng của hạng mục Móng được ghi vào vùng đích (2), dòng thừa để trống. Đổi A13 thành "Cột" là vùng đích tự cập nhật; kết quả nhiều hơn số dòng của vùng thì dòng cuối báo … còn N kết quả — mở rộng outputRange.

dvdMVLookup
Trả về mọi giá trị khớp của một cột lệch so với cột dò: kết quả đầu tiên hiện tại ô công thức, các kết quả còn lại được ghi xuống vùng đích.
Cú pháp:
=dvdMVLookup(LookupValue; LookupCol; OffsetCol; outputRange)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
LookupValue | Có | Giá trị cần tìm. |
LookupCol | Có | Cột chứa giá trị cần tìm. |
OffsetCol | Có | Số cột dịch sang phải so với LookupCol để lấy giá trị trả về. |
outputRange | Có | Vùng đích chứa các giá trị thứ 2 trở đi (dành cho Excel 2019/2016 không có mảng động). |
Ví dụ:
=dvdMVLookup($H$3; $B$5:$B$500; 4; $J$4:$J$40)
// → khối lượng đầu tiên của mã công tác H3; các khối lượng còn lại ghi vào J4:J40Lưu ý
- Các kết quả thứ 2 trở đi chỉ được ghi trong
outputRange(chọn vùng trống ngoài bảng dữ liệu); thừa thì dòng cuối ghi … còn N kết quả — mở rộng outputRange.outputRangelà một ô thì trải xuống từ ô đó. - Hàm so khớp theo chuỗi văn bản (không phân biệt chữ hoa/thường) như
dvdMCLookup, không so theo giá trị số nhưdvdXlookup/dvdELookup/dvdTableLookup:"05"hay"5.0"không khớp số5. - Hàm là volatile (cột kết quả nằm lệch so với
LookupColnên Excel không tự theo dõi được) nhưng chỉ ghi khi kết quả thật sự đổi — sửa chỗ khác không làm mấtCtrl+Z; luôn ghi vào đúng sổ chứa công thức. - Không tìm thấy thì hàm trả
#VALUE!và dọn kết quả cũ trongoutputRange.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Chọn ô B14 rồi gõ =dvdm, chọn DVDMVLOOKUP trong danh sách gợi ý (1) và nhấn Tab.

Bước 2. Chọn ô cần tìm A14, cột dò Hạng mục (1), rồi gõ số cột lệch sang phải: 1 để lấy cột Tên công tác (2). Khung gợi ý (3) giải thích đối số OffsetCol.

Bước 3. Gõ dấu ; rồi chọn vùng đích ngay dưới ô công thức cho các kết quả thứ 2 trở đi (1). Hộp Đối số Hàm (Ctrl+A) cho thấy kết quả đầu tiên (2). Bấm OK (3).

Bước 4. Nhấn Enter: công tác đầu tiên của hạng mục Móng hiện tại ô công thức (1), ba công tác còn lại được ghi xuống vùng đích (2). Không tìm thấy thì hàm trả #VALUE! và dọn vùng đích.

dvdTableLookup
Dò tìm hai chiều: lấy giá trị nằm ở giao của dòng và cột được xác định bởi tiêu đề.
Cú pháp:
=dvdTableLookup(LookupRowValue; LookupColumnValue; TableRange)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
LookupRowValue | Có | Giá trị cần tìm trong cột đầu tiên của bảng. |
LookupColumnValue | Có | Giá trị cần tìm trong hàng đầu tiên của bảng. |
TableRange | Có | Bảng dữ liệu, bao gồm cả tiêu đề hàng và tiêu đề cột. |
Ví dụ:
=dvdTableLookup("D16"; "Cấp bền B22.5"; $A$5:$H$30)
// → 1.284 (tra định mức theo đường kính thép và cấp bền bê tông)Lưu ý
- Không tìm thấy dòng hoặc cột tương ứng thì hàm trả chuỗi
Không tìm thấy kết quả.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Chọn ô D11 rồi gõ =dvdt, chọn DVDTABLELOOKUP trong danh sách gợi ý (1) và nhấn Tab.

Bước 2. Chọn ô cấp bền B11 (tìm ở cột đầu của bảng), ô độ sụt C11 (tìm ở hàng đầu của bảng), rồi chọn cả bảng giá kèm tiêu đề hàng và cột (1). Khung gợi ý (2) mô tả đối số đang nhập.

Bước 3. Nhấn Enter rồi chép xuống D12: hàm lấy giá trị ở giao của hàng B25 và cột 12±2 (2) — 1.320.000 (1). Không thấy tiêu đề hàng hoặc cột thì hàm trả "Không tìm thấy kết quả".

dvdLookupAllSheets
Dò tìm một giá trị trên tất cả các trang tính đang hiển thị của workbook và trả về giá trị ở cột chỉ định.
Cú pháp:
=dvdLookupAllSheets(lookupValue; lookup_column; result_column)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
lookupValue | Có | Giá trị cần tìm kiếm. |
lookup_column | Có | Số thứ tự cột chứa giá trị cần tìm (cột A là 1). |
result_column | Có | Số thứ tự cột chứa giá trị trả về. |
Ví dụ:
=dvdLookupAllSheets(A6; 2; 6)
// → khối lượng ở cột F của dòng có mã công tác A6, tìm trên mọi sheet khối lượngLưu ý
- Hàm bỏ qua chính trang tính chứa công thức và các trang tính đang ẩn; không tìm thấy thì trả
#N/A. - Chỉ trả về kết quả khớp đầu tiên: các sheet được duyệt theo thứ tự tab; trong mỗi sheet, hàm tìm từ dòng 2 trở xuống và xét dòng 1 sau cùng.
- So khớp trọn ô, không phân biệt chữ hoa/thường; số so theo giá trị, không theo định dạng hiển thị (
"0,5"khớp ô chứa 0,5). Dấu*(chuỗi bất kỳ) và?(một ký tự) là ký tự đại diện; gõ~*,~?để tìm đúng dấu đó. Dòng đang ẩn hay bị lọc vẫn được dò. - Ô kết quả trống thì hàm trả chuỗi rỗng; ô kết quả là lỗi thì trả đúng lỗi đó.
- Cột được tính theo số thứ tự cột của trang tính, không phải theo vị trí trong một vùng.
- Tìm trong sổ chứa công thức, kể cả khi đang mở nhiều sổ. Hàm không nhận vùng nào làm đối số nên không tự tính lại khi dữ liệu ở sheet khác đổi, hoặc khi ẩn/hiện một sheet — bấm
Ctrl+Alt+F9để cập nhật. Lần tính đầu tiên trong phiên, kết quả có thể đổi một nhịp sau khi add-in đọc xong danh sách sheet ẩn.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Các sheet tầng có cùng bố cục: mã cấu kiện ở cột B — cột số 2 của trang tính (1), khối lượng bê tông ở cột F — cột số 6 (2).

Bước 2. Sang sheet Tra cứu, chọn ô B4 rồi gõ =dvdlo — danh sách gợi ý hiện DVDLOOKUPALLSHEETS (1). Nhấn Tab.

Bước 3. Chọn ô mã A4 (1), gõ 2 (cột B chứa mã) và 6 (cột F chứa khối lượng) — số cột tính trên sheet tầng. Khung gợi ý (2) mô tả đối số đang nhập.

Bước 4. Nhấn Enter rồi chép xuống: mỗi mã lấy khối lượng từ sheet tầng chứa nó (1) — D3-12, V3-01 ở Tầng 3, C5-02 ở Tầng 5. Mã gõ sai D3-21 không có ở sheet nào nên trả #N/A (2). Hàm bỏ qua sheet chứa công thức và sheet ẩn; số liệu tầng đổi thì nhấn Ctrl+Alt+F9.

dvdUnique
Trả về mảng một cột chứa các giá trị duy nhất của một vùng.
Cú pháp:
=dvdUnique(rng)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
rng | Có | Phạm vi dữ liệu đầu vào. |
Ví dụ:
=dvdUnique($B$6:$B$500)
// → danh sách hạng mục không trùng: Móng, Cột, Dầm, SànLưu ý
- Hàm trả về mảng: Excel 365/2021 tự tràn (spill); Excel 2019 trở về trước cần chọn sẵn vùng rồi nhấn
Ctrl+Shift+Enter, hoặc dùngdvdUniqueV. - Giá trị được so sánh không phân biệt chữ hoa và chữ thường.
- Ô trống trong vùng được bỏ qua (như
dvdUniqueV), nên chọn dư vài dòng trống cuối bảng cũng không sinh mục trống trong kết quả.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Chọn ô B14 rồi gõ =dvduniq, chọn DVDUNIQUE trong danh sách gợi ý (1) và nhấn Tab.

Bước 2. Chọn cột Hạng mục của bảng (1) — ô trống trong vùng được bỏ qua. Khung gợi ý (2) mô tả đối số duy nhất của hàm.

Bước 3. Nhấn Enter: Excel 365/2021 tự tràn kết quả xuống B14:B17, mỗi hạng mục một lần theo thứ tự xuất hiện (1) (không phân biệt hoa/thường). Excel 2019 trở về trước: chọn sẵn B14:B17, gõ công thức rồi nhấn Ctrl+Shift+Enter.

dvdUniqueV
Trả về giá trị duy nhất đầu tiên tại ô công thức và ghi các giá trị duy nhất còn lại xuống vùng đích — dành cho phiên bản Excel không hỗ trợ mảng động.
Cú pháp:
=dvdUniqueV(inputRange; outputRange)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
inputRange | Có | Dải ô chứa các giá trị cần tìm giá trị duy nhất. |
outputRange | Có | Dải ô để hiển thị các giá trị duy nhất còn lại (dành cho Excel 2019/2016). |
Ví dụ:
=dvdUniqueV($B$6:$B$500; $H$7:$H$40)
// → "Móng" tại ô công thức; các hạng mục còn lại ghi vào H7:H40Lưu ý
- Các giá trị thứ 2 trở đi chỉ được ghi trong
outputRange; thừa thì dòng cuối ghi … còn N kết quả — mở rộng outputRange. - Hàm tính lại khi
inputRangeđổi (không còn volatile) và chỉ ghi khi kết quả thật sự đổi — sửa chỗ khác không làm mấtCtrl+Z; luôn ghi vào đúng sổ chứa công thức. - Các ô trống trong vùng nguồn được bỏ qua.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Chọn ô đầu danh sách F4 và gõ =dvduniq — Excel gợi ý ba hàm; chọn DVDUNIQUEV (1) rồi nhấn Tab.

Bước 2. Quét cột vật liệu (1) làm inputRange, gõ ; rồi quét vùng ngay dưới ô công thức $F$5:$F$12 làm outputRange. Khung gợi ý (2) giải thích đối số đang nhập.

Bước 3. Hộp Đối số Hàm (Ctrl+A ngay sau tên hàm) cho thấy vùng nguồn (1), vùng đích còn trống (2) và giá trị trả về ô công thức (3).

Bước 4. Nhấn Enter: ô công thức F4 hiện vật liệu đầu tiên (1); 4 vật liệu còn lại được ghi xuống F5:F8 (2) dưới dạng giá trị ngay sau lượt tính, phần thừa của vùng đích để trống. Sửa cột C thì danh sách tự cập nhật.

dvdUnique2DArray
Giữ lại các dòng duy nhất của một mảng hai chiều dựa trên một cột làm khóa.
Cú pháp:
=dvdUnique2DArray(sArray; colIndex; HasTitle)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
sArray | Có | Mảng hai chiều đầu vào. |
colIndex | Có | Chỉ số cột làm khóa duy nhất, tính từ 1. |
HasTitle | Có | TRUE nếu vùng dữ liệu có dòng tiêu đề. |
Ví dụ:
=dvdUnique2DArray($A$5:$F$500; 2; TRUE)
// → bảng nhà thầu phụ, mỗi mã chỉ giữ lại dòng xuất hiện đầu tiênLưu ý
- Hàm trả về mảng hai chiều: Excel 365/2021 tự tràn; phiên bản cũ cần nhập dạng công thức mảng bằng
Ctrl+Shift+Enter. HasTitlebằngTRUEthì dòng tiêu đề luôn được giữ nguyên ở đầu kết quả.- Dòng có ô khóa trống bị bỏ qua, không xuất hiện trong kết quả.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Chọn ô F3 (góc trên-trái của bảng kết quả) và gõ =dvduniq; chọn DVDUNIQUE2DARRAY trong danh sách gợi ý (1) rồi nhấn Tab.

Bước 2. Quét cả bảng kể cả dòng tiêu đề (1), rồi gõ 2 (cột Mã VT làm khóa) và TRUE (bảng có dòng tiêu đề). Khung gợi ý (2) in đậm đối số đang nhập.

Bước 3. Nhấn Enter: kết quả tràn ra F3:I8 (1) — dòng tiêu đề và mỗi mã vật tư một dòng (lần xuất hiện đầu tiên); các dòng trùng mã 7, 8, 10 bị bỏ.

dvdFilter2DArray
Lọc một mảng hai chiều theo điều kiện áp dụng cho một cột và trả về các dòng thỏa điều kiện.
Cú pháp:
=dvdFilter2DArray(DataArray; ColumnIndex; Criteria; HasTitle)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
DataArray | Có | Mảng hai chiều chứa dữ liệu cần lọc. |
ColumnIndex | Có | Chỉ số cột áp dụng điều kiện lọc, tính từ 1. |
Criteria | Có | Điều kiện lọc, ví dụ ">5", "abc", "abc*". |
HasTitle | Có | TRUE nếu vùng dữ liệu có dòng tiêu đề. |
Ví dụ:
=dvdFilter2DArray($A$5:$F$500; 6; ">0"; TRUE)
// → bảng chỉ còn các công tác có khối lượng lớn hơn 0
=dvdFilter2DArray($A$5:$F$500; 2; "BT*"; TRUE)
// → các dòng có mã công tác bắt đầu bằng "BT"Lưu ý
- Hàm trả về mảng hai chiều: Excel 365/2021 tự tràn; phiên bản cũ cần nhập dạng công thức mảng bằng
Ctrl+Shift+Enter. - Điều kiện chấp nhận toán tử so sánh (
">5",">=2","<>0") và ký tự đại diện (*,?) nhưCOUNTIF:"BT*"hay"=BT*"lọc mã bắt đầu bằng BT,"<>BT*"lấy các dòng còn lại. - Số thập phân trong điều kiện viết dấu phẩy hay dấu chấm đều được (
">0,5"=">0.5");"1.250.000"là 1250000.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Chọn ô F3 (góc trên-trái của bảng kết quả) và gõ =dvdf; chọn DVDFILTER2DARRAY (1) rồi nhấn Tab.

Bước 2. Quét cả bảng kể cả dòng tiêu đề (1), rồi gõ 4 (cột Khối lượng), điều kiện ">0" và TRUE (có dòng tiêu đề). Khung gợi ý (2) nêu các dạng điều kiện hợp lệ.

Bước 3. Nhấn Enter: kết quả tràn ra F3:I7 (1) — dòng tiêu đề và 4 công tác có khối lượng lớn hơn 0; các dòng khối lượng 0 bị loại.

dvdSumVisible
Cộng giá trị của các ô đang hiển thị, bỏ qua ô nằm trong dòng hoặc cột bị ẩn.
Cú pháp:
=dvdSumVisible(SumRng)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
SumRng | Có | Vùng tính tổng giá trị của các ô được hiển thị. |
Ví dụ:
=dvdSumVisible($F$6:$F$500)
// → tổng thành tiền của các dòng còn hiển thị sau khi lọc hạng mụcLưu ý
- Hàm là volatile: Excel tính lại mỗi khi bảng tính thay đổi, nên tránh dùng hàng loạt trên bảng rất lớn.
- Ô ẩn do lọc
AutoFilter, do ẩn thủ công hay dodvdAutoHideđều được bỏ qua.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Bảng đang lọc cột Hạng mục chỉ còn Móng (dòng 7–9 và 11 bị ẩn). Ở ô tổng F12 gõ =dvdsu và chọn DVDSUMVISIBLE (1).

Bước 2. Quét cả cột thành tiền $F$4:$F$11 (1) — kể cả các dòng đang ẩn, hàm tự bỏ qua chúng. Khung gợi ý (2) giải thích đối số.

Bước 3. Nhấn Enter: F12 = 426.746.000 (1) — chỉ cộng 4 dòng đang hiển thị (SUM cả cột cho 827.780.000). Bỏ lọc thì ô tự tính lại thành tổng đủ.

dvdSumIfColor
Cộng giá trị của các ô có màu nền giống với màu nền của một ô mẫu.
Cú pháp:
=dvdSumIfColor(rngSum; rngCellColor)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
rngSum | Có | Vùng tính tổng giá trị. |
rngCellColor | Có | Ô mang màu nền dùng làm điều kiện. |
Ví dụ:
=dvdSumIfColor($F$6:$F$500; $H$3)
// → tổng khối lượng của các dòng được tô cùng màu với ô H3 (ví dụ màu đánh dấu phát sinh)Lưu ý
- Đổi màu nền của một ô không làm Excel tính lại; hàm tự tính lại ở lần Excel tính kế tiếp (sửa bất kỳ ô nào, hoặc nhấn
F9). - So màu theo chỉ số bảng màu của Excel (như bản VBA gốc): hai màu tô rất gần nhau có thể được coi là cùng màu.
- Hàm so sánh theo màu nền tô trực tiếp, không nhận diện màu do định dạng có điều kiện tạo ra.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Các dòng phát sinh được tô vàng giống ô chú giải G4. Ở ô E12 gõ =dvdsu và chọn DVDSUMIFCOLOR (1).

Bước 2. Quét cột thành tiền (1), gõ ; rồi bấm ô mẫu màu G4 (2). Khung gợi ý (3) giải thích đối số đang nhập.

Bước 3. Nhấn Enter: E12 = 15.024.000 (1) — tổng 3 dòng tô vàng (dòng 7, 9, 11). Đổi màu ô không làm Excel tính lại: sửa một ô bất kỳ hoặc nhấn F9.

dvdCountIfColor
Đếm số ô trong vùng có màu nền giống với màu nền của một ô mẫu.
Cú pháp:
=dvdCountIfColor(RangeToCount; ReferenceCell)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
RangeToCount | Có | Phạm vi các ô cần đếm. |
ReferenceCell | Có | Ô chứa màu nền dùng làm tham chiếu. |
Ví dụ:
=dvdCountIfColor($B$6:$B$500; $H$4)
// → 12 (số hạng mục được tô màu cảnh báo chậm tiến độ)Lưu ý
- Đổi màu nền của một ô không làm Excel tính lại; hàm tự tính lại ở lần Excel tính kế tiếp (sửa bất kỳ ô nào, hoặc nhấn
F9). - So màu theo chỉ số bảng màu của Excel (như bản VBA gốc): hai màu tô rất gần nhau có thể được coi là cùng màu.
- Hàm so sánh theo màu nền tô trực tiếp, không nhận diện màu do định dạng có điều kiện tạo ra.
- Hàm đếm cả ô trống có màu khớp. Ô mẫu không tô màu thì mọi ô không tô màu trong vùng (tới dòng/cột cuối đang dùng của sheet) đều được đếm.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Các công việc chậm tiến độ được tô đỏ ở cột B, giống ô chú giải F4. Ở ô D12 gõ =dvdcou và chọn DVDCOUNTIFCOLOR (1).

Bước 2. Quét cột công việc (1), gõ ; rồi bấm ô mẫu màu F4 (2). Khung gợi ý (3) giải thích đối số đang nhập.

Bước 3. Nhấn Enter: D12 = 4 (1) công việc chậm tiến độ. Tô hoặc bỏ màu một ô rồi nhấn F9 để đếm lại (đổi màu không làm Excel tính lại).

dvdAutoHide
Ẩn tự động các dòng không thỏa điều kiện và đánh lại số thứ tự cho những dòng còn hiển thị.
Cú pháp:
=dvdAutoHide(Target; Cells; Conditions; [OrdersRange]; [Title])| Tham số | Bắt buộc | Mô tả |
|---|---|---|
Target | Có | Vùng các dòng thuộc phạm vi xử lý ẩn/hiện. |
Cells | Có | Vùng chứa giá trị để so với điều kiện. |
Conditions | Có | Điều kiện, ví dụ "0", ">=2", "<>0"; khai báo được nhiều điều kiện bằng một vùng. |
OrdersRange | Không | Vùng đánh số thứ tự lại sau khi ẩn. |
Title | Không | Chuỗi hiển thị trong ô công thức, mặc định DVDAutoHide. |
Ví dụ:
=dvdAutoHide($A$6:$A$500; $F$6:$F$500; "<>0"; $A$6:$A$500; "Ẩn dòng khối lượng 0")
// → giữ lại các dòng có khối lượng khác 0, ẩn phần còn lại và đánh số thứ tự liên tụcLưu ý
- Dòng nào có ít nhất một ô trong
Cellsthỏa tất cả điều kiện thì được giữ hiển thị; các dòng còn lại bị ẩn. - Ô trống thỏa điều kiện
"<>0": dòng có khối lượng để trống (như dòng tiêu đề nhóm) vẫn hiện và được đánh số trongOrdersRange. - Toán tử
>,<,>=,<=so một số với ô chữ (hay ngược lại) luôn không thỏa, nhưCOUNTIF: ô ghi chữMóngkhông qua điều kiện">0". Số trong điều kiện viết dấu phẩy hay dấu chấm đều được (">0,5"=">0.5"). - Việc ẩn dòng chỉ chạy sau khi Excel tính xong, nên kết quả có thể xuất hiện chậm một nhịp so với lúc gõ công thức.
- Hàm là volatile: Excel tính lại mỗi khi bảng tính thay đổi.
- Đặt công thức ở ô nằm ngoài vùng
Targetđể công thức không bị ẩn theo.
Hướng dẫn bằng hình
Thực hành
Tải file mẫu của hàm này — dữ liệu y như hình dưới, ô cần gõ công thức đã được chọn sẵn.
Bước 1. Bảng khối lượng có nhiều công tác khối lượng 0. Chọn ô B15 — nằm ngoài vùng sẽ ẩn — gõ =dvda và chọn DVDAUTOHIDE (1).

Bước 2. Quét cột STT làm Target (1), cột khối lượng làm Cells (2), rồi gõ điều kiện giữ dòng "<>0". Khung gợi ý (3) nêu các dạng điều kiện.

Bước 3. Gõ tiếp cột STT làm OrdersRange và một tiêu đề. Hộp Đối số Hàm cho thấy điều kiện (1), vùng được đánh lại số thứ tự (2) và chữ sẽ hiện trong ô (3). Bấm OK (4).

Bước 4. Ô B15 hiện tiêu đề (2); ngay sau lượt tính, 4 dòng khối lượng 0 (dòng 5, 7, 9, 12) bị ẩn và cột STT được đánh lại 1–6 (1). Đổi khối lượng một dòng thành 0 thì dòng đó tự ẩn ở lần tính kế tiếp.
