Đến nội dung

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àmCông dụng
dvdConcatIFNối các giá trị của một vùng, có hoặc không kèm điều kiện.
dvdConcatIFSNối các giá trị của một vùng khi thỏa nhiều điều kiện.
dvdJoinIFGộp giá trị theo một điều kiện, có tùy chọn bỏ trùng.
dvdJoinIFSGộp giá trị theo nhiều cặp vùng/điều kiện.
dvdTextJoinNối nhiều chuỗi hoặc vùng bằng một dấu phân cách.
dvdTextSplitItemLấy phần tử thứ n sau khi tách chuỗi theo dấu phân cách.
dvdExtractElementTrí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.
dvdUnDiacriticsViBỏ dấu Tiếng Việt.
dvdUniConvertChuyển văn bản gõ kiểu VNI hoặc Telex sang Unicode.
dvdUniVbaChuyển chuỗi Tiếng Việt thành biểu thức chuỗi dùng trong VBA.
dvdSymbolChèn ký hiệu ô đánh dấu (trống / tick / gạch chéo).
dvdEvaluateTí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ộcMô tả
DelimiterCóKý tự phân cách giữa các giá trị được nối.
ConcatRangeCóPhạm vi các ô cần nối giá trị.
ConditionRangeKhôngPhạm vi chứa giá trị dùng để so với điều kiện.
ConditionKhôngGiá 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:C40

Lưu ý

  • ConditionRange và Condition phả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 ">"&A1 trê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 1

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 2

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 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.

Bước 4

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ộcMô tả
DelimiterCóKý tự phân cách giữa các giá trị được nối.
ConcatRangeCóPhạm vi các ô cần nối giá trị.
ConditionsCó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 1

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 2

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.

Bước 3

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ộcMô tả
CriteriaRangeCóPhạm vi chứa các điều kiện để lọc dữ liệu.
ConditionCóĐiều kiện để lọc.
ConcatenateRangeCóPhạm vi giá trị cần gộp.
SeparatorKhôngDấu phân tách, mặc định ", ".
RemoveDuplicateKhôngTRUE để 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.
ShowConditionKhôngTRUE để 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ùng dvdConcatIF.
  • CriteriaRange và ConcatenateRange phả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 1

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 2

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.

Bước 3

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ộcMô tả
SeparatorCóKý tự phân tách; để trống thì dùng ", ".
RemoveDuplicateCóTRUE để loại bỏ giá trị trùng (không phân biệt chữ hoa/thường).
ConcatenateRangeCóPhạm vi cần gộp.
PairsCó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 Pairs phải chẵn và mọi vùng điều kiện phải cùng số ô với ConcatenateRange, 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 1

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 2

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.

Bước 3

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ộcMô tả
DelimiterCóDấu phân cách giữa các chuỗi văn bản.
IgnoreEmptyCóTRUE để bỏ qua các giá trị trống.
TextCó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 1

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 2

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.

Bước 3

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ộcMô tả
InputTextCóChuỗi gốc cần tách.
DelimiterCóKý tự hoặc chuỗi phân tách.
IndexCóVị trí phần tử, tính từ 1.
IgnoreEmptyKhôngMặ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 1

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 2

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 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.

Bước 4

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ộcMô tả
InputStringCóChuỗi cần trích xuất phần tử.
ElementNumberCóSố thứ tự của phần tử cần trích xuất, tính từ 1.
SeparatorCó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 1

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 2

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 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).

Bước 4

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ộcMô tả
MainTextCóChuỗi văn bản trong đó cần đếm.
SubTextCó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 1

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 2

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 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.

Bước 4

dvdWordCount ​

Đếm số từ của một chuỗi văn bản.

Cú pháp:

=dvdWordCount(Text)
Tham sốBắt buộcMô tả
TextCóChuỗi văn bản cần đếm số từ.

Ví dụ:

=dvdWordCount("Bê tông lót móng M1")
// → 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 ô 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 1

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 2

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.

Bước 3

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ộcMô tả
sContentCó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 1

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 2

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ơ.

Bước 3

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ộcMô tả
TextCóVăn bản cần chuyển đổi.
InputMethodCó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 ý

  • InputMethod chỉ 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, uy không có phụ âm cuối đặt ở chữ sau ("hoaf" → "hoà"), trừ khi gõ dấu ngay sau o/u ("hofa" → "hòa"). qu, gi là 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ặc u7o7 (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 1

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 2

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 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.

Bước 4

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ộcMô tả
TxtUniCó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 1

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 2

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 3

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ộcMô tả
valueCó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 đạt

Lư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 1

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 2

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 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.

Bước 4

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ộcMô tả
InputStringCó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.75

Lư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ự x và 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 hai sqrt(...): "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 1

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 2

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 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.

Bước 4

Phát hành theo giấy phép DVDAddin.