Hàm văn bản
Nhóm này gồm 14 hàm làm việc với chuỗi: nối giá trị của một vùng (có hoặc không có điều kiện), tách và trích phần tử trong chuỗi, đếm từ / đếm lần xuất hiện, xử lý Tiếng Việt (bỏ dấu, VNI/Telex, chuỗi Unicode cho VBA) và tính nhanh biểu thức khối lượng viết trong ô diễn giải.
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 |
|---|---|
dvdConcatIF | Nối các giá trị của một vùng, có hoặc không kèm điều kiện. |
dvdConcatIFS | Nối các giá trị của một vùng khi thỏa nhiều điều kiện. |
dvdJoinIF | Gộp giá trị theo một điều kiện, có tùy chọn bỏ trùng. |
dvdJoinIFS | Gộp giá trị theo nhiều cặp vùng/điều kiện. |
dvdTextJoin | Nối nhiều chuỗi hoặc vùng bằng một dấu phân cách. |
dvdTextSplitItem | Lấy phần tử thứ n sau khi tách chuỗi theo dấu phân cách. |
dvdExtractElement | Trích phần tử thứ n của chuỗi, giữ nguyên phần tử rỗng. |
dvdCountOccurrences | Đếm số lần một chuỗi con xuất hiện trong chuỗi chính. |
dvdWordCount | Đếm số từ của một chuỗi. |
dvdUnDiacriticsVi | Bỏ dấu Tiếng Việt. |
dvdUniConvert | Chuyển văn bản gõ kiểu VNI hoặc Telex sang Unicode. |
dvdUniVba | Chuyển chuỗi Tiếng Việt thành biểu thức chuỗi dùng trong VBA. |
dvdSymbol | Chèn ký hiệu ô đánh dấu (trống / tick / gạch chéo). |
dvdEvaluate | Tính biểu thức toán học viết sau dấu hai chấm trong một chuỗi. |
dvdConcatIF
Nối các giá trị của một vùng thành một chuỗi; nếu khai báo thêm vùng điều kiện thì chỉ nối những dòng thỏa điều kiện.
Cú pháp:
=dvdConcatIF(Delimiter; ConcatRange; [ConditionRange]; [Condition])| Tham số | Bắt buộc | Mô tả |
|---|---|---|
Delimiter | Có | Ký tự phân cách giữa các giá trị được nối. |
ConcatRange | Có | Phạm vi các ô cần nối giá trị. |
ConditionRange | Không | Phạm vi chứa giá trị dùng để so với điều kiện. |
Condition | Không | Giá trị điều kiện, chấp nhận toán tử (">5", ">=2", "<>0") và ký tự đại diện ("BT*"). |
Ví dụ:
=dvdConcatIF(", "; C6:C40; B6:B40; "Móng")
// → "Bê tông lót M100, Bê tông móng M300, Cốt thép móng"
=dvdConcatIF(" + "; C6:C40)
// → nối toàn bộ tên công tác có nội dung trong C6:C40Lưu ý
ConditionRangevàConditionphải khai báo cùng nhau; thiếu một trong hai thì hàm nối toàn bộ vùng.- Ô giá trị trống luôn được bỏ qua, có hay không có điều kiện, nên kết quả không có dấu phân cách lặp.
- 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"và">0.5"cùng là "lớn hơn 0,5","1.250.000"là 1250000, nên ghép">"&A1trên máy định dạng Việt Nam dùng được ngay. Một dấu chấm/phẩy đứng trước đúng ba chữ số mà phần nguyên khác 0 ("1.250","12,345") được hiểu là phân cách hàng nghìn. - Ký tự đại diện (
*,?) dùng được cả khi kèm=hoặc<>nhưCOUNTIF:"=BT*"khớp mã bắt đầu bằng BT,"<>BT*"lấy các dòng còn lại (kể cả ô trống). Điều kiện không kèm toán tử được hiểu như=.
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 ô C12 rồi gõ =dvdcon — danh sách gợi ý hiện DVDCONCATIF kèm mô tả hàm (1). Nhấn Tab để chọn.

Bước 2. Gõ dấu phân cách ", ", quét vùng tên công tác (1), rồi vùng hạng mục (2) và điều kiện "Móng". Khung gợi ý (3) in đậm đối số đang nhập kèm giải thích.

Bước 3. Muốn xem đủ các đối số, nhấn Ctrl+A ngay sau tên hàm (hoặc nút 𝑓x): hộp thoại Đối số Hàm có ô điều kiện (1) — nhận cả toán tử như ">0" và ký tự đại diện như "BT*" — và kết quả tính thử (2). Bấm OK (3).

Bước 4. Nhấn Enter: ô C12 nối tên các công tác thuộc hạng mục Móng (1). Bỏ hai đối số điều kiện thì hàm nối cả vùng, bỏ qua ô trống.

dvdConcatIFS
Nối các giá trị của một vùng khi thỏa đồng thời nhiều điều kiện, mỗi điều kiện là một cặp vùng và tiêu chí.
Cú pháp:
=dvdConcatIFS(Delimiter; ConcatRange; Conditions…)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
Delimiter | Có | Ký tự phân cách giữa các giá trị được nối. |
ConcatRange | Có | Phạm vi các ô cần nối giá trị. |
Conditions | Có | Các cặp Vùng / Điều kiện, khai báo lần lượt và lặp lại bao nhiêu cặp tùy nhu cầu. |
Ví dụ:
=dvdConcatIFS(", "; C6:C60; B6:B60; "Móng"; E6:E60; ">0")
// → "Bê tông móng M300, Cốt thép móng" (hạng mục Móng và có khối lượng)Lưu ý
- Điều kiện dùng cùng cú pháp với
dvdConcatIF: toán tử so sánh và ký tự đại diện (kể cả"=BT*","<>BT*"); số thập phân viết dấu phẩy hay dấu chấm đều được (">0,5"=">0.5"). - Các vùng điều kiện nên có cùng số ô với
ConcatRange; dòng nào vượt quá số ô của vùng điều kiện sẽ bị loại. - Dòng thỏa mọi điều kiện mà ô giá trị trống được bỏ qua, như
dvdJoinIFS.
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 ô C12, gõ =dvdcon, dùng phím ↓ chọn DVDCONCATIFS (1) rồi nhấn Tab.

Bước 2. Gõ dấu phân cách, quét vùng tên công tác (1), rồi lần lượt từng cặp vùng/điều kiện: hạng mục "Móng" (2) và khối lượng kỳ này ">0" (3). Khung gợi ý (4) giải thích đối số Conditions.

Bước 3. Nhấn Enter: chỉ những công tác Móng có khối lượng kỳ 3 được nối (1) — hai dòng khối lượng 0 bị loại.

dvdJoinIF
Gộp các giá trị của một vùng khi cột điều kiện khớp với giá trị cho trước, có thể bỏ trùng và ghi kèm tên điều kiện ở đầu kết quả.
Cú pháp:
=dvdJoinIF(CriteriaRange; Condition; ConcatenateRange; [Separator]; [RemoveDuplicate]; [ShowCondition])| Tham số | Bắt buộc | Mô tả |
|---|---|---|
CriteriaRange | Có | Phạm vi chứa các điều kiện để lọc dữ liệu. |
Condition | Có | Điều kiện để lọc. |
ConcatenateRange | Có | Phạm vi giá trị cần gộp. |
Separator | Không | Dấu phân tách, mặc định ", ". |
RemoveDuplicate | Không | TRUE để bỏ giá trị trùng (không phân biệt chữ hoa/thường, giữ cách viết của lần xuất hiện đầu), mặc định FALSE. |
ShowCondition | Không | TRUE để thêm điều kiện và dấu hai chấm trước kết quả. |
Ví dụ:
=dvdJoinIF(B6:B60; "Tầng 3"; C6:C60; " + "; TRUE; TRUE)
// → "Tầng 3: Cột C1 + Dầm D2 + Sàn S1"
=dvdJoinIF(D6:D60; "Đạt"; A6:A60)
// → "BB-01, BB-04, BB-07" (số biên bản nghiệm thu đã đạt)Lưu ý
- Hàm so khớp nguyên giá trị (không dùng toán tử hay ký tự đại diện) nhưng không phân biệt chữ hoa/thường (
"tầng 3"khớp"Tầng 3"), và số được so theo giá trị (5,"5","05"khớp nhau;"0,5"và"0.5"khớp ô số 0,5); cần lọc theo">5"hay"BT*"thì dùngdvdConcatIF. CriteriaRangevàConcatenateRangephải có cùng số ô, nếu lệch nhau hàm trả về#REF!.
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 ô C12 rồi gõ =dvdj — danh sách gợi ý hiện DVDJOINIF kèm mô tả hàm (1). Nhấn Tab để chọn.

Bước 2. Quét vùng tầng (1), gõ điều kiện "Tầng 3", quét vùng cấu kiện (2), rồi gõ dấu phân tách " + " và TRUE để bỏ giá trị trùng. Khung gợi ý (3) in đậm đối số đang nhập kèm giải thích.

Bước 3. Gõ thêm ; TRUE (ghi kèm điều kiện ở đầu) rồi nhấn Enter: ô hiện các cấu kiện tầng 3 đã đổ, mỗi cấu kiện một lần (1). Hàm so khớp chính xác; cần toán tử hay ký tự đại diện thì dùng dvdConcatIF.

dvdJoinIFS
Gộp các giá trị của một vùng khi thỏa đồng thời nhiều cặp vùng/điều kiện.
Cú pháp:
=dvdJoinIFS(Separator; RemoveDuplicate; ConcatenateRange; Pairs…)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
Separator | Có | Ký tự phân tách; để trống thì dùng ", ". |
RemoveDuplicate | Có | TRUE để loại bỏ giá trị trùng (không phân biệt chữ hoa/thường). |
ConcatenateRange | Có | Phạm vi cần gộp. |
Pairs | Có | Các cặp Vùng / Điều kiện, khai báo lần lượt và lặp lại bao nhiêu cặp tùy nhu cầu. |
Ví dụ:
=dvdJoinIFS(" + "; TRUE; C6:C60; B6:B60; "Tầng 3"; E6:E60; ">0")
// → "Cột C1 + Dầm D2 + Sàn S1"Lưu ý
- Số tham số trong
Pairsphải chẵn và mọi vùng điều kiện phải cùng số ô vớiConcatenateRange, nếu không hàm trả về#REF!. - Điều kiện chấp nhận toán tử so sánh và ký tự đại diện như
dvdConcatIF; số thập phân viết dấu phẩy hay dấu chấm đều được (">0,5"=">0.5").
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 ô C12, gõ =dvdj, dùng phím ↓ chọn DVDJOINIFS (1) rồi nhấn Tab.

Bước 2. Gõ dấu phân tách " + " và TRUE (bỏ trùng), quét vùng cấu kiện (1), rồi từng cặp vùng/điều kiện: tầng "Tầng 3" (2) và khối lượng thực tế ">0" (3). Khung gợi ý (4) giải thích đối số Pairs.

Bước 3. Nhấn Enter: ô hiện các cấu kiện tầng 3 đã đổ bê tông (1) — Cột C1 đổ hai đợt chỉ ghi một lần, Cầu thang CT1 chưa đổ (0 m³) bị loại.

dvdTextJoin
Nối nhiều giá trị hoặc nhiều vùng bằng một dấu phân cách, có tùy chọn bỏ qua ô trống.
Cú pháp:
=dvdTextJoin(Delimiter; IgnoreEmpty; Text…)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
Delimiter | Có | Dấu phân cách giữa các chuỗi văn bản. |
IgnoreEmpty | Có | TRUE để bỏ qua các giá trị trống. |
Text | Có | Các giá trị hoặc phạm vi cần nối, khai báo được nhiều tham số. |
Ví dụ:
=dvdTextJoin("; "; TRUE; B6:B12; "Phát sinh ngoài hợp đồng")
// → "Cột C1; Dầm D2; Sàn S1; Phát sinh ngoài hợp đồ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 ô B11 rồi gõ =dvdte — danh sách gợi ý hiện DVDTEXTJOIN kèm mô tả hàm (1). Nhấn Tab để chọn.

Bước 2. Gõ dấu phân cách "; ", TRUE để bỏ qua ô trống, quét vùng cấu kiện (1) rồi thêm một giá trị gõ trực tiếp "Cầu thang CT1". Khung gợi ý (2) cho biết đối số Text nhận nhiều giá trị/vùng.

Bước 3. Nhấn Enter: ô B11 ghép tất cả thành một dòng (1); ô trống B6 được bỏ qua nên không có hai dấu ; liền nhau.

dvdTextSplitItem
Tách chuỗi theo dấu phân cách rồi lấy phần tử ở vị trí chỉ định.
Cú pháp:
=dvdTextSplitItem(InputText; Delimiter; Index; [IgnoreEmpty])| Tham số | Bắt buộc | Mô tả |
|---|---|---|
InputText | Có | Chuỗi gốc cần tách. |
Delimiter | Có | Ký tự hoặc chuỗi phân tách. |
Index | Có | Vị trí phần tử, tính từ 1. |
IgnoreEmpty | Không | Mặc định bỏ qua phần tử rỗng; FALSE hoặc 0 (kể cả dạng chữ "FALSE", "0") giữ phần tử rỗng. |
Ví dụ:
=dvdTextSplitItem("MB-T3-D1"; "-"; 2)
// → "T3"
=dvdTextSplitItem(A6; "/"; 3)
// → "Móng M1" (từ mã công tác "HM01/BT/Móng M1")Lưu ý
- Vị trí vượt quá số phần tử sẽ trả về chuỗi rỗng, không báo lỗi.
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 ô B4, gõ =dvdte, dùng phím ↓ chọn DVDTEXTSPLITITEM (1) rồi nhấn Tab.

Bước 2. Bấm ô mã cấu kiện (1), gõ dấu phân tách "-" và vị trí 2 (phần tử thứ hai là tầng). Khung gợi ý (2) in đậm đối số đang nhập.

Bước 3. Hộp thoại Đối số Hàm (Ctrl+A sau tên hàm) cho thấy chuỗi gốc (1) và kết quả tính thử (2); để trống IgnoreEmpty thì hàm mặc định bỏ qua phần tử rỗng. Bấm OK (3).

Bước 4. Nhấn Enter rồi kéo công thức xuống B7 (1). Mã gõ thừa dấu gạch VP9--T4-S1 vẫn cho T4 vì phần tử rỗng được bỏ qua.

dvdExtractElement
Trích phần tử thứ n của một chuỗi theo dấu phân tách, giữ nguyên cả những phần tử rỗng.
Cú pháp:
=dvdExtractElement(InputString; ElementNumber; Separator)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
InputString | Có | Chuỗi cần trích xuất phần tử. |
ElementNumber | Có | Số thứ tự của phần tử cần trích xuất, tính từ 1. |
Separator | Có | Ký tự hoặc chuỗi phân tách. |
Ví dụ:
=dvdExtractElement("Bê tông/M300/Móng M1"; 2; "/")
// → "M300"
=dvdExtractElement(B6; 1; ",")
// → "Cột C1" (lấy hạng mục đầu tiên trong danh sách của ô B6)Lưu ý
- Khác với
dvdTextSplitItem, hàm này đếm cả phần tử rỗng, nên"A//B"có phần tử thứ 2 là chuỗi rỗ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 ô B4 rồi gõ =dvdext — danh sách gợi ý chỉ còn DVDEXTRACTELEMENT (1). Nhấn Tab để chọn.

Bước 2. Bấm ô diễn giải (1), gõ số thứ tự 3 (phần thứ ba là vị trí) rồi dấu phân tách "/". Khung gợi ý (2) in đậm đối số đang nhập.

Bước 3. Trong hộp thoại Đối số Hàm, ô ElementNumber (1) là số thứ tự tính từ 1; kết quả tính thử hiện ở (2). Bấm OK (3).

Bước 4. Nhấn Enter rồi kéo xuống B7 (1). Dòng Ván khuôn//Móng M2 không có mác vẫn cho đúng Móng M2 vì phần tử rỗng vẫn được đếm (dvdTextSplitItem sẽ trả về chuỗi rỗng).

dvdCountOccurrences
Đếm số lần một chuỗi con xuất hiện trong chuỗi chính.
Cú pháp:
=dvdCountOccurrences(MainText; SubText)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
MainText | Có | Chuỗi văn bản trong đó cần đếm. |
SubText | Có | Chuỗi văn bản cần đếm số lần xuất hiện. |
Ví dụ:
=dvdCountOccurrences("Tầng 1;Tầng 2;Tầng 3"; ";") + 1
// → 3 (số hạng mục trong danh sách phân cách bằng dấu chấm phẩy)
=dvdCountOccurrences(C6; "D")
// → 4 (số thanh thép ký hiệu D trong ghi chú cấu kiện)Lưu ý
- Hàm phân biệt chữ hoa và chữ thườ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 ô cần ghi số tầng lặp (D4) rồi gõ =dvdcou — danh sách gợi ý hiện DVDCOUNTOCCURRENCES kèm mô tả hàm (1). Nhấn Tab để chọn.

Bước 2. Bấm ô C4 (1) làm chuỗi cần đếm, gõ ; rồi "Tầng" là chuỗi con cần đếm. Khung gợi ý (2) in đậm đối số đang nhập kèm giải thích.

Bước 3. Hoặc nhấn Ctrl+A sau tên hàm để mở hộp thoại Đối số Hàm: mỗi đối số một ô nhập (1), kết quả tính thử hiện ngay (2). Bấm OK (3).

Bước 4. Nhấn Enter rồi kéo công thức xuống D6: mỗi dòng đếm được số tầng áp dụng (1). Hàm phân biệt hoa thường — gõ "tầng" (chữ t thường) sẽ ra 0.

dvdWordCount
Đếm số từ của một chuỗi văn bản.
Cú pháp:
=dvdWordCount(Text)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
Text | Có | Chuỗi văn bản cần đếm số từ. |
Ví dụ:
=dvdWordCount("Bê tông lót móng M1")
// → 5Hướ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 ô cần đếm số từ (C4) rồi gõ =dvdw — danh sách gợi ý hiện DVDWORDCOUNT kèm mô tả hàm (1). Nhấn Tab để chọn.

Bước 2. Bấm ô tên công việc B4 (1) — hàm chỉ có một đối số, khung gợi ý (2) giải thích đối số đó.

Bước 3. Gõ ), nhấn Enter rồi kéo công thức xuống C7 (1). Từ được tách theo khoảng trắng nên 4x6 hay 100 cũng tính là một từ; dùng cột này để lọc ra các tên công việc quá dài.

dvdUnDiacriticsVi
Bỏ dấu Tiếng Việt của một chuỗi, giữ nguyên các ký tự khác.
Cú pháp:
=dvdUnDiacriticsVi(sContent)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
sContent | Có | Chuỗi Unicode Tiếng Việt cần bỏ dấu. |
Ví dụ:
=dvdUnDiacriticsVi("Bê tông cốt thép")
// → "Be tong cot thep"
=dvdUnDiacriticsVi(A6)
// → "Bien ban nghiem thu Mong M1" (dùng đặt tên file hồ sơ)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 ô C4 rồi gõ =dvdun — danh sách gợi ý hiện các hàm bắt đầu bằng DVDUN; chọn DVDUNDIACRITICSVI (1) rồi nhấn Tab.

Bước 2. Bấm ô tên hồ sơ B4 (1). Khung gợi ý (2) nhắc đối số là chuỗi Unicode Tiếng Việt cần bỏ dấu.

Bước 3. Gõ ), nhấn Enter rồi kéo xuống C7: tên hồ sơ đã bỏ dấu (1), Đ thành D, số và dấu - giữ nguyên — dùng làm tên file khi lưu hoặc gửi hồ sơ.

dvdUniConvert
Chuyển văn bản gõ theo kiểu VNI hoặc Telex sang Tiếng Việt Unicode.
Cú pháp:
=dvdUniConvert(Text; InputMethod)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
Text | Có | Văn bản cần chuyển đổi. |
InputMethod | Có | Kiểu gõ của văn bản đầu vào: "VNI" hoặc "Telex". |
Ví dụ:
=dvdUniConvert("Be6 to6ng"; "VNI")
// → "Bê tông"
=dvdUniConvert("Bee toong"; "Telex")
// → "Bê tông"Lưu ý
InputMethodchỉ nhận"VNI"hoặc"Telex"; giá trị khác thì hàm trả nguyên văn bản gốc.- Phím dấu thanh gõ ngay sau nguyên âm hay ở cuối từ đều được:
"mosng","mongs"(Telex) và"mo1ng","mong1"(VNI) đều ra"móng";"coots"ra"cốt". Dấu được đặt theo quy tắc chính tả: vầnươ,uô,iê,yêđặt ở chữ thứ hai ("duwowngf"→"dường"); có phụ âm cuối thì đặt ở nguyên âm cuối ("hoafng"→"hoàng");oa,oe,uykhông có phụ âm cuối đặt ở chữ sau ("hoaf"→"hoà"), trừ khi gõ dấu ngay sauo/u("hofa"→"hòa").qu,gilà phụ âm đầu ("quas"→"quá","giuwax"→"giữa"). - Phím mũ/móc (
aa,aw,ee,oo,ow,uw,dd/6,7,8,9) phải gõ ngay sau chữ của nó, nênươcần gõ đủuwow(Telex) hoặcu7o7(VNI). Từ không phải âm tiết tiếng Việt (chữ nước ngoài, mã nhưM300, từ đã có dấu) được chuyển như bản trước.
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 ô D4 rồi gõ =dvduni — chọn DVDUNICONVERT trong danh sách gợi ý (1) và nhấn Tab.
![]()
Bước 2. Bấm ô nội dung B4 (1), gõ ; rồi bấm ô kiểu gõ C4 (2) (chứa VNI hoặc Telex). Khung gợi ý (3) giải thích đối số đang nhập.
![]()
Bước 3. Trong hộp thoại Đối số Hàm (Ctrl+A sau tên hàm), ô InputMethod (1) hiện giá trị "VNI" lấy từ C4 và kết quả tính thử (2). Bấm OK (3).
![]()
Bước 4. Nhấn Enter rồi kéo xuống D6: các dòng đã thành Tiếng Việt có dấu (1). Dấu thanh gõ ngay sau nguyên âm (co65t) hay ở cuối từ như kiểu Telex thường gõ (lots mongs) đều được chuyển.
![]()
dvdUniVba
Chuyển chuỗi Tiếng Việt thành biểu thức chuỗi dán được vào code VBA, các ký tự có mã trên 127 (mọi chữ có dấu) được viết thành ChrW(...).
Cú pháp:
=dvdUniVba(TxtUni)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
TxtUni | Có | Chuỗi Unicode Tiếng Việt cần chuyển. |
Ví dụ:
=dvdUniVba("Nghiệm thu")
// → "Nghi" & ChrW(7879) & "m thu"Lưu ý
- Dùng khi viết macro VBA cho biểu mẫu hồ sơ: dán trực tiếp kết quả vào code để không bị lỗi font khi lưu file .bas.
- Mọi ký tự có mã trên 127 đều thành
ChrW(...), kể cả chữ Latin-1 nhưê,à,ô,ò,ý— trình soạn VBA trên máy tiếng Việt (bảng mã 1258) làm mất các chữ này nếu để trong ngoặc kép:=dvdUniVba("Bê tông")trả về"B" & ChrW(234) & " t" & ChrW(244) & "ng". - Ký tự xuống dòng (Alt+Enter) và tab cũng thành
ChrW(...); dấu"trong chuỗi được nhân đôi theo cú pháp VBA.
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 ô C4 rồi gõ =dvduniv — danh sách gợi ý hiện DVDUNIVBA kèm mô tả hàm (1). Nhấn Tab để chọn.

Bước 2. Bấm ô chứa chuỗi Tiếng Việt B4 (1); khung gợi ý (2) giải thích đối số duy nhất của hàm.

Bước 3. Gõ ), nhấn Enter rồi kéo xuống C6: mỗi ô là một đoạn mã VBA (1) — mọi ký tự có dấu (mã trên 127) thành ChrW(mã), chữ không dấu giữ trong ngoặc kép, nên dán vào trình soạn VBA máy nào cũng không mất chữ.

Bước 4. Sao chép nội dung ô C4 vào macro, ví dụ: Range("A1").Value = "Bi" & ChrW(234) & "n b" & ChrW(7843) & "n nghi" & ChrW(7879) & "m thu" — khi macro chạy, ô A1 nhận chuỗi "Biên bản nghiệm thu".
dvdSymbol
Trả về ký hiệu ô đánh dấu để dùng trong biểu mẫu kiểm tra, nghiệm thu.
Cú pháp:
=dvdSymbol(value)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
value | Có | 1 = hộp trống, 2 = hộp có tick, 3 = hộp có dấu x. |
Ví dụ:
=dvdSymbol(2)
// → ☑
=dvdSymbol(IF(D6="Đạt"; 2; 3))
// → ☑ khi kết quả kiểm tra là Đạt, ☒ khi không đạtLưu ý
- Giá trị khác 1, 2, 3 trả về chuỗi rỗ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 ô D4 của phiếu kiểm tra rồi gõ =dvdsy — danh sách gợi ý hiện DVDSYMBOL kèm mô tả hàm (1). Nhấn Tab để chọn.

Bước 2. Gõ đối số IF(C4="Đạt"; 2; 3): ô kết quả C4 (1) là Đạt thì ra 2 (hộp có tick), ngược lại ra 3 (hộp có dấu x). Khung gợi ý (2) nhắc ý nghĩa 1, 2, 3.

Bước 3. Trong hộp thoại Đối số Hàm, ô value (1) tính ra 2 và kết quả tính thử là ☑ (2). Bấm OK (3).

Bước 4. Kéo công thức xuống D7: mục Đạt có ☑, mục Không đạt có ☒ (1). Đối số 1 cho hộp trống ☐; giá trị khác 1, 2, 3 trả về chuỗi rỗng.

dvdEvaluate
Tính biểu thức toán học viết sau dấu hai chấm trong một chuỗi diễn giải khối lượng.
Cú pháp:
=dvdEvaluate(InputString)| Tham số | Bắt buộc | Mô tả |
|---|---|---|
InputString | Có | Chuỗi đầu vào chứa biểu thức toán học nằm sau dấu hai chấm. |
Ví dụ:
=dvdEvaluate("Móng M1: 2x3x0.8")
// → 4.8
=dvdEvaluate("Dầm D1: 5*0.3*0.5")
// → 0.75Lưu ý
- Phần chuỗi từ dấu
=trở về sau bị bỏ qua, nên diễn giải dạng"Móng M1: 2x3x0.8 = 4.8"vẫn tính đúng. - Ký tự
xvàXđược hiểu là dấu nhân; khoảng trắng bị loại bỏ. - Biểu thức không hợp lệ hoặc kết quả bằng 0 sẽ trả về chuỗi rỗng.
- Hỗ trợ
+ - * /, dấu ngoặc, lũy thừa^và căn bậc haisqrt(...):"KL: 2x3^2"→ 18,"KL: sqrt(16)+1"→ 5. Thứ tự tính giống công thức Excel: lũy thừa tính từ trái sang (2^3^2= 64) và dấu âm đứng trước áp vào số trước khi lũy thừa (-2^2= 4).
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 ô khối lượng D4 rồi gõ =dvde — chọn DVDEVALUATE trong danh sách gợi ý (1) và nhấn Tab.

Bước 2. Bấm ô diễn giải B4 (1): hàm chỉ tính phần biểu thức nằm sau dấu :. Khung gợi ý (2) nhắc ý nghĩa đối số.

Bước 3. Hộp thoại Đối số Hàm cho xem trước chuỗi diễn giải (1) và kết quả 0,22 × 0,5 × 6,3 = 0,693 (2). Bấm OK (3).

Bước 4. Kéo công thức xuống D7 (1). Tên cấu kiện trước dấu : bị bỏ qua, x là dấu nhân, dấu phẩy thập phân đọc đúng, phần từ dấu = trở đi (dòng 7) không tính; biểu thức lỗi hoặc bằng 0 trả về ô trống.
