Tải bản đầy đủ (.pdf) (41 trang)

Tài liệu Đặc tả xử lý và xử lý tự động doc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (537.12 KB, 41 trang )

1/41
HỌC VIỆN PHÒNG KHÔNG - KHÔNG QUÂN
GIÁO TRÌNH ĐÀO TẠO NHÂN LỰC CNTT
ĐẶC TẢ XỬ LÝ VÀ XỬ LÝ TỰ ĐỘNG
(Trích)
Người viết:
Nguyễn Anh Cường - - 0988.529.310
Nguyễn Phương Thảo - - 0439.950.557
2/41
Chương 1:
CÁC TRƯỜNG TRONG WORD
Microsoft Word cung cấp hơn 80 trường, một thành phần rất quan trọng
trong việc xử lý tự động. Các trường này lưu trữ những giá trị của văn bản đang
soạn thảo, sử dụng thành thạo các trường sẽ rất có lợi, vì Word hỗ trợ rất nhiều.
Các trường giúp cho văn bản luôn đúng, không phải sửa chữa dữ liệu khi thay đổi,
làm chủ các trường sẽ khiến văn bản tự động thay đổi dữ liệu trong mọi tình huống.
1.1. Căn bản về các trường của Microsoft Word
1.1.1. Chèn một trường của Word vào văn bản
Để chèn trường ra vị trí nào đó trong văn bản:
B1. Đặt trỏ thanh tại vị trí càn chèn.
B2. Chọn thực đơn Insert/Field.
Hộp thoại chèn trường sẽ xuất hiện.
Hình 1.1. Hộp thoại của thực đơn Insert/Field.
Sử dụng trường nào chỉ việc chọn trường đó ở hộp danh sách các trường
có thể chọn Field codes để cung cấp thêm các chỉ số khác cho trường. Sau khi
chọn OK trường sẽ được chèn ra vị trí trỏ thanh với kết quả của nó. Để tìm hiểu
hoặc sửa chữa trường, nhấn Alt + F9, đoạn mã trường sẽ nổi lên trong dấu {}.
Dòng mã trường hiển thị ở mục Field codes sẽ được hiện trong dấu ngoặc nhọn
này, cho thấy đoạn mã sẽ được chèn vào văn bản để tạo ra hiệu ứng cần thiết.
Căn cứ vào mục đích, cú pháp, có thể sửa chữa nội dung đoạn mã trường để có
được kết quả như ý.


Trên thực tế cách chèn trường kiểu trên mất thời gian, thường chỉ sử dụng
khi chưa hiểu rõ về trường.
Để chèn trường theo cách thông dụng, nhấn Ctrl + F9 sẽ hiện ra dấu {}.
Danh sách các
trường của Word
Danh mục các
trường theo chủ đề
Mô tả vắn tắt công dụng
của trường hiện tại
Hỗ trợ cú pháp viết
code cho trường
Các hỗ trợ giúp chèn trường
chính xác, hiệu quả
Nút giúp đỡ, nháy
vào rồi chọn trường
cần tìm hiểu
3/41
Tiến hành gõ vào trong dấu {} này. Sai sót chủ yếu của người dùng là lẽ ra phải
nhấn phím Ctrl + F9 để hiện các cặp dấu {} rồi gõ vào, thì họ lại gõ trực tiếp các
dấu {} từ bàn phím. Việc gõ trực tiếp dấu {} không bao giờ Word coi như
trường, nên nội dung đó sẽ không bao giờ được tính toán và hiển thị đúng như
mong muốn.
Trong văn bản, khi cho hiển thị mã trường, dòng mã này được bao bởi
cặp dấu móc nhọn {}. Khi gõ nội dung trong các dấu {} nội dung của văn bản sẽ
dài ra. Phần nội dung trong dấu {} này không ảnh hưởng đến vấn đề trình bày
của văn bản vì nội dung đó nằm trong phần điều khiển hiển thị, Word coi đó là
một dạng lập trình với văn bản ẩn. Khi nhấn F9 để thực hiện, hoặc nhấn Alt+F9
để che dấu toàn bộ nội dung điều khiển bị tô xám trong dấu {}, văn bản sẽ trở về
trạng thái hiển thị bình thường.
Muốn tìm hiểu chi tiết hơn về các mã trường của Word, hãy hiện hộp

thoại chèn trường Insert/Field (hình 1.1 trang 2) rồi lên nút nhấn có dấu hỏi
ở góc trên bên phải, sau đó bất kỳ mã trường nào để xem phần giúp đỡ.
Thông thường, mỗi mã trường sẽ trả về một kết quả tùy theo chức năng
định sẵn. Đa số các trường còn có thêm các khóa chuyển (switch) để có thể định
dạng, tùy biến kết quả trả về của trường. Để chọn khóa chuyển cho trường, ở
hộp thoại chèn trường, chọn tên trường trong danh sách, sau đó vào nút
Option ở góc dưới bên trái. Khung hội thoại Field Options sẽ hiện ra để chọn
các khóa chuyển. Nếu khi kích chọn tên trường mà nút Option bị mờ (bị vô hiệu
hóa) thì trường đó không cần thêm khóa chuyển, nó vẫn làm việc hoàn hảo. Trên
thực tế việc gõ các khoá chuyển trực tiếp thường gõ sau dấu \, tuỳ khoá chuyển
mà có thể bổ sung thêm các tham số khác cho trường.
Một trong những khoá chuyển của Word là \* MERGEFORMAT khoá
chuyển này có tác dụng mỗi khi mở hoặc thực hiện in hoặc liên kết, trường sẽ tự
động cập nhật lại giá trị. Trong tài liệu này, khoá chuyển \* MERGEFORMAT
không đưa vào các ví dụ (để tránh dài, khó theo dõi), nên mỗi khi muốn cập
nhật, phải bôi đen chọn trường và nhấn F9. Để quan sát nội dung code của một
trường, bôi đen trường đó nhấn Shift + F9, để tắt chế độ này cũng nhấn Shift +
F9. Để bật tắt toàn bộ code của tất cả các trường trong tài liệu, nhấn Alt+F9.
Các trường của Word không phân biệt chữ hoa thường, nên khi sử dụng
nếu không chú ý vấn đề này thì cũng không sao, tuy nhiên nên viết thống nhất
để dễ theo dõi, nếu viết thường xuyên nên đưa các tên trường vào bộ gõ tắt
AutoCorrect hoặc AutoText để tránh sai sót không đáng có khi nhập liệu.
Để cập nhật kết quả trường, lựa chọn bôi đen đoạn văn bản chứa trường
đã chèn, nhấn phím F9. Để sử dụng tất cả các code trong tài liệu này, máy tính
cần phải điều chỉnh định dạng theo kiểu Việt Pháp.
1.2. Những nguyên tắc cơ bản khi làm việc với trường Word
1.2.1. Lấy giá trị nhập vào từ người dùng
a) Giá trị nhập vào được đưa ra ngay tại vị trí lời nhắc
Để yêu cầu người dùng nhập vào giá trị, sau đó giá trị này điền luôn ra tại
vị trí đặt lời nhắc, sử dụng trường FillIn theo cú pháp sau:

{FillIn “Lời nhắc” \d “Giá_trị_ngầm_định”}
4/41
Trong đó giá trị ngầm định thường là một số, một chuỗi hoặc một ngày tháng.
Ví dụ 1:
{FillIn “Nhập vào đây tên bạn” \d “Nguyễn Phương Thảo”}
Khi cập nhật trường (bôi đen trường FillIn nhấn F9) sẽ hiện:
Hình 1.2. Hộp thoại khi nhấn F9 để đưa giá trị qua trường FillIn
Nhược điểm của FillIn là không đưa giá trị người dùng nhập vào biến, chính
vì vậy, nếu như phải điền tên nhiều lần thì lại phải viết lại FillIn, điều này gây bực
mình cho người dùng, vì vừa điền giá trị rồi, đến đoạn sau lại hỏi để điền giá trị
lại. Như vậy sẽ không hay nếu xảy ra hiện tượng bất nhất, như khi người dùng
nhập giá trị giữa lần FillIn trước và lần FillIn sau không giống nhau. Để tránh hiện
tượng này, phải đưa giá trị người dùng nhập vào một dạng biến gọi là BookMark.
b) Giá trị người dùng nhập đưa vào biến BookMark để dùng nhiều lần
Có thể dùng một trong 2 cách:
{SET Tên_BookMark {FillIn “Lời nhắc” \d “Giá trị ngầm định”}}
Hoặc đơn giản hơn:
{ASK Tên_BookMark “Lời nhắc” \d “Giá trị ngầm định”}
Ví dụ 2:
Cả 2 cách sau đều đưa giá trị người dùng nhập vào BookMark có tên là
NgaySinh và đặt sẵn giá trị 08/5/1972:
{SET NgaySinh {FillIn “Nhập vào ngày sinh của bạn:” \d “08/5/1972”}}
{ASK NgaySinh “Nhập vào ngày sinh của bạn:” \d “08/5/1972”}
Khi thực hiện cập nhật trường, sẽ hiện hộp thoại như hình 1.3 ở trang 4.
Hình 1.3. Hộp thoại ASK đưa giá trị người dùng nhập vào BookMark
Nếu đã đưa được vào BookMark rồi thì việc xử lý các giá trị của
BookMark để tính toán và hiển thị chỉ là thủ tục.
1.2.2. Đặt giá trị cho BookMark không thông qua người dùng
a) Đặt giá trị cho BookMark trực tiếp
Cũng có thể đưa luôn giá trị vào BookMark mà không cần phải hỏi giá trị

từ người dùng nhập vào:
5/41
Tên các BookMark
đã đặt
Thêm
Xoá, sẽ hiện rõ khi
chọn BookMark cần xoá
Nhảy tới vị trí
BookMark
Sắp xếp theo tên
hoặc vị trí BookMark
{SET Tên_BookMark “Giá trị đặt”}
Trong đó giá trị đặt có thể là một chuỗi hoặc một trường tính toán dạng
biểu thức.
Ví dụ 3 đặt biến SoNamToiThieuDuDKNghiHuu là 25:
{SET SoNamToiThieuDuDKNghiHuu 25}
Ví dụ 4 đặt biến SoNamTinhTuNgayThanhLapHocVienDenNay bằng lấy 4
chữ số chỉ năm của ngày hiện tại, trừ đi năm thành lập Học viện là 1964:
{SET SoNamTinhTuNgayThanhLapHocVienDenNay {={DATE \@ “yyyy”}-1964}}
b) Lựa chọn một vùng rồi đặt tên BookMark
Khi muốn trích dẫn lại một chuỗi ký tự biến đổi, phải đưa chuỗi ấy vào
biến BookMark, để khi sử dụng, chuỗi đó sẽ được cập nhật tự động theo.
Ví dụ 5: Trường hợp phải trích dẫn “Hộp thoại cập nhật trường như hình
1.3 ở trang 4”. Nếu như gõ cố định số hình đó, số trang đó thì khi bổ sung dữ
liệu, bổ sung các hình vẽ khác lên trước số trang của hình vẽ đó, thì lại phải gõ
lại các con số chỉ thứ tự của hình ở tại vị trí hình đó, đồng thời phải sửa chữa tất
cả vị trí trích dẫn tới “Hộp thoại cập nhật trường” về số hình, số trang.
Để cập nhật tự động, phải bôi đen từ chữ “ình xx.xx” đưa vào BookMark.
Sở dĩ không bôi đen chữ Hình mà chỉ bôi đen từ chữ ình thôi, là do khi trích
dẫn hình vẽ, nếu cần viết hoa thì chỉ việc viết chữ H đứng trước, khi cần viết

thường chỉ viết chữ h đứng trước. Đương nhiên trong trường hợp này các số
xx.xx phải được chèn bằng trường SEQ để tự động cập nhật số thứ tự hình vẽ.
Thực hiện các bước sau để đưa phần bôi đen vào BookMark:
B1. Bôi đen phần cần đưa vào BookMark, trường hợp này là “ình xx.xx”.
B2. Chọn Insert/BookMark hiện hộp thoại hình 1.4 trang 5.
B3. Gõ tên BookMark vào hộp BookMark name, rồi nút Add để thêm
vào. Nếu gõ tên trùng BookMark đã có, BookMark đó sẽ thay thế BookMark đã có.
Hình 1.4. Hộp thoại BookMark
Từ hộp thoại hình 1.4 trang 5 có thể sử dụng để thực hiện:
- Kiểm soát BookMark theo vị trí xuất hiện trong tài liệu hoặc tên của chúng.
6/41
- Có thể xoá BookMark từ hộp thoại này bằng cách chọn BookMark cần
xoá, nút Delete sẽ hiện rõ lên để chọn xoá.
- Có thể nhảy tới BookMark bằng cách chọn BookMark rồi nút Goto.
1.2.3. Chèn BookMark và kết quả tính toán ra văn bản
a) Chèn số tự động
Số tự động là các số tăng dần ở mỗi phân đoạn sau mỗi lần chèn ra. Bắt
đầu của số tự động là 1. Nếu ở cùng một phân đoạn mà chèn số tự động ra nhiều
hơn 1 lần, thì giá trị của tất cả số tự động trong phân đoạn đó đều giống nhau. Số
tự động không đặt lại giá trị (reset) được. Số tự động được chèn theo cú pháp:
{AutoNum}
Ví dụ 6: cần gõ số cho các điều của một quy chế thì mỗi điều đều gõ:
Điều {AutoNum}
Lựa chọn bằng cách bôi đen toàn bộ văn bản rồi nhấn F9, sẽ được các
điều gõ theo thứ tự từ 1.
Ngoài ra còn có trường ListNum tương tự AutoNum. Khi chèn ListNum ra sẽ
có luôn dấu ngoặc() bao quanh số. Trường ListNum không đúng với quy định
hiện hành trong Học viện nên tài liệu này không giới thiệu.
b) Chèn số tăng dần theo BookMark
Có thể chỉ định các dãy số BookMark được đặt tên để tăng theo mục đích

của từng dãy số thông qua trường SEQ. Các BookMark này có đặc điểm rất thú
vị là sẽ tăng dần theo số lần chèn ra. Để chèn BookMark này, cần xác định tên
BookMark sẽ sử dụng trong văn bản rồi thực hiện theo một trong 3 cú pháp với
3 mục đích khác nhau:
{SEQ Tên_BookMark} - Số Tên_BookMark sẽ tăng dần bắt đầu từ 1.
{SEQ Tên_BookMark \c} - Số Tên_BookMark sẽ giữ nguyên theo giá trị theo
lần gần nhất và vị trí gần nhất BookMark đã chèn ra phía trên Tên_BookMark
đang chèn.
{SEQ Tên_BookMark \r 1} - Đặt lại giá trị (reset) từ số 1 cho Tên_BookMark
và chèn ra.
Ví dụ 7:
Để sử dụng sự tăng dần cho các hình vẽ. Đặt các BookMark sau:
- sttChuong: Ghi lại số thứ tự của chương.
- sttHinh: Ghi lại số thứ tự của hình.
Như vậy các chương được gõ bằng cách:
Chương {SEQ sttChuong}
Các hình được gõ theo cách:
Hình {SEQ sttChuong \c}.{SEQ sttHinh}. Tên hình
Do các hình đầu tiên của mỗi chương được bắt đầu lại từ số 1, nên hình
đầu tiên đó sẽ gõ theo cách:
Hình {SEQ sttChuong \c}.{SEQ sttHinh \r 1}. Tên hình
Khi đó, thực tế nếu ở chương 3, hình sẽ được tự động điền là:
Hình 3.x. Tên hình
Trong đó x là số thứ tự của hình trong chương. Chỉ số x sẽ tự động được
cập nhật, theo số hình trong chương, cho dù khi soạn thảo, số lượng hình có
7/41
thêm hoặc bớt thì số thứ tự x sẽ luôn đúng và sắp xếp theo đúng thứ tự mỗi khi
mở tệp hoặc mỗi khi lựa chọn bôi đen và nhấn F9 để cập nhật.
Tương tự có thể đặt các BookMark khác để chèn. Ví dụ như đặt các số
trên tiêu đề 2 số, 3 số, 4 số, các bảng

Ví dụ 8:
Gõ bảng với số thứ tự tự động:
Bảng đầu tiên của chương được gõ như sau:
Bảng {SEQ sttChuong \c}.{SEQ sttBang \r 1}. Tên bảng
Các bảng còn lại được gõ như sau:
Bảng {SEQ sttChuong \c}.{SEQ sttBang}. Tên bảng
Ví dụ 9:
Các ví dụ chỉ cần gõ như sau:
Ví dụ đầu tiên của chương: Ví dụ {SEQ sttVD \r 1}
Các ví dụ khác: Ví dụ {SEQ sttVD}
Ví dụ 10:
Tiêu đề 3 số của chương:
{SEQ sttChuong \c}.{SEQ sttMuc2So \c}.{SEQ sttMuc3So}. Nội dung của tiêu
đề 3 số.
Tương tự, mục đầu tiên của mỗi phần nên có thêm từ khoá \r 1 để reset lại
số thứ tự về giá trị 1.
Riêng giá trị chèn ra muốn là a, b, c thì dùng:
{SEQ a \* alphabetic} nếu muốn tăng dần theo a, b, c
{SEQ a \* alphabetic \r 1} nếu muốn đặt lại giá trị ban đầu là a
Để chèn các số thứ tự là số La mã thì dùng:
{ SEQ sttLaMa \* roman} nếu muốn tăng dần theo I, II, III, IV
{ SEQ sttLaMa \* roman \r 1} nếu muốn đặt lại giá trị ban đầu là I
Sử dụng trường công thức cùng với SEQ có thể tạo ra các chuỗi số giảm
dần, bằng cách đặt một BookMark lấy một hằng số cố định trừ đi trường SEQ
của một BookMark.
Ví dụ 11:
Muốn có một chuỗi giảm dần:
B1. Đặt số cố định đặt trước là 6:
{SET SoCoDinhDatTruoc 6 }
B2. Chèn số thứ tự giảm dần

Gõ và copy công thức {=SoCoDinhDatTruoc - {SEQ sttChuoi}} của trường để
chèn vào những vị trí cần thiết.
- Chèn lần thứ 1 sẽ được số 5
- Chèn lần thứ 2 sẽ được số 4
- Chèn lần thứ 3 sẽ được số 3
- Chèn lần thứ 4 sẽ được số 2
- Chèn lần thứ 5 sẽ được số 1
- Chèn lần thứ 6 sẽ được số 0
- Chèn lần thứ 7 sẽ được số -1
- Chèn lần thứ 8 sẽ được số -2
8/41
Nếu muốn nhảy số với những bước nhảy khác với 1, thì thay phép trừ
bằng phép nhân và kết hợp với các phép tính khác. Có thể sử dụng nhiều
BookMark kết hợp để tạo những chuỗi số đặc biệt như chuỗi Fibonaxi
c) Chèn BookMark
Để chèn giá trị của một BookMark ra vị trí sử dụng cú pháp:
{ref Tên_BookMark}
Ví dụ trong những tài liệu tiếng nước ngoài, tiếng Trung hoặc tiếng Ả rập
chẳng hạn, sau khi hỏi chuyên gia, thì có thể dùng trường REF để đặt các
BookMark đúng các vị trí (lưu ý: BookMark phải được đặt giá trị theo cách đặt
đã chỉ rõ ở phần trên rồi):
Tất cả chỗ cần điền tên, đặt {ref HoTen} vào từng vị trí đó. Tương tự, tất
cả chỗ cần điền ngày tháng năm sinh, đặt {ref NgaySinh} vào từng vị trí đó.
Lưu ý: Trường Ref không làm việc với các BookMark sử dụng tại trường SEQ.
Nếu chưa gán BookMark một giá trị nào, sẽ hiện thông báo:
Error! Reference source not found.
Ngoài cách chèn trực tiếp giá trị của BookMark, thì có thể chèn ra các giá
trị đặc biệt liên quan.
d) Chèn trang chứa BookMark
Khi muốn chèn trang chứa BookMark thì dùng cú pháp:

{PAGEREF Tên_BookMark}
Ở đây tên_BookMark thường được gán bằng phương pháp lựa chọn, bôi
đen và chèn Insert/BookMark để đặt tên như hình 1.4 ở trang 5.
Ví dụ 12: Muốn trích dẫn hoặc chỉ rõ BookMark có tên là hinhHopThoaiBK
ở trang nào đó thì:
Nếu chưa đặt BookMark, bôi đen chữ “ình xx.xx” và đặt tên BookMark.
Muốn trích dẫn tên BookMark gõ {ref hinhHopThoaiBK}.
Muốn chỉ rõ BookMark đó ở trang nào gõ {PAGEREF hinhHopThoaiBK}
Ví dụ 13: Đoạn trên đã được gõ như sau, nên tài liệu này có thay đổi thêm
bớt dữ liệu vào đầu văn bản thì số hình và số trang sẽ tự cập nhật:
Ở đây tên_BookMark thường được gán bằng phương pháp lựa chọn, bôi
đen và chèn Insert/BookMark để đặt tên như h{ref hinhHopThoaiBK} ở trang
{PAGEREF hinhHopThoaiBK}.
Cập nhật số trang tự động
Cập nhật tên hình tự động
e) Chèn nội dung có định dạng Style chỉ định, ở Header và Footer
Khi soạn thảo văn bản dạng từ điển hoặc danh mục điện thoại, thì Header
và Footer thường thay đổi nội dung theo từ cần giải nghĩa thuộc trang đó. Ví dụ
trong đầu trang này đang giải nghĩa chữ Công nghệ, thì ở header hay footer của
trang này sẽ hiện chữ Công nghệ, khi ở đầu trang khác giải nghĩa chữ Khoa học
thì ở header hay footer của trang khác đó sẽ hiện chữ Khoa học Xem minh hoạ
hình 1.5 và hình 1.6 ở trang 9.
Để thực hiện được công việc này, các chữ cần tra như Khoa học, Công
nghệ phải được định dạng khác với các chữ thông thường trong văn bản, bằng
một kiểu Style riêng. Ví dụ kiểu Style là ChuCanTra.
9/41
Hình 1.5. Header hiển thị nội dung của từ mục cần tra
Hình 1.6. Khi nhấn Alt+F9, mã trường trên Header hiện ra
Header hiển thị từ mục cần tra của trang.
Sang trang khác từ mục cần tra thay đổi,

Header tự động cập nhật theo.
Từ mục cần tra được định dạng theo Style có
tên là TuCanTra
Tên của Style là TuCanTra, nên trường
sẽ quét từ đầu trang, nếu gặp cụm từ
nào được định dạng TuCanTra, nội
dung của cụm từ đó sẽ hiển thị trên
Header.
10/41
Khi cần chèn chuỗi ký tự đầu tiên của trang được định dạng style
ChuCanTra dùng trường STYLEREF theo 1 trong 2 cú pháp thường sử dụng:
{STYLEREF ChuCanTra}: Rà soát từ đầu trang (được chèn Styleref) trở xuống,
nếu có chuỗi ký tự định dạng Style là ChuCanTra thì hiện chuỗi đầu tiên tìm thấy.
Nếu không tìm thấy ở trang hiện tại, thì rà quét ngược lên các trang trước đó để
hiện chuỗi đầu tiên tìm thấy thoả mãn định dạng Style ChuCanTra.
{STYLEREF ChuCanTra \l}: Rà quét từ cuối trang được chèn Styleref trở lên
và hiển thị chuỗi đầu tiên thoả mãn dạng Style ChuCanTra.
f) Chèn số trang, tổng số trang của văn bản
- Để chèn số của trang hiện tại dùng trường {PAGE}
- Tổng số trang văn bản dùng trường {NUMPAGES}
- Số chỉ section hiện tại dùng {SECTION}
- Tổng số trang của section hiện tại dùng trường {SECTIONPAGES} Các giá
trị này có thể đưa vào biểu thức để tính toán.
1.3. Tính toán các trường Word
1.3.4. Cú pháp về gõ công thức trong trường formular
Cú pháp:
{=Formula [Bookmark] [\# Numeric Picture]}
Ở đây:
- Dấu ngoặc nhọn ‘{}’ được tạo bằng cách nhấn Ctrl-F9 hoặc chọn lệnh
Formula trên thực đơn Table để chèn trường=(Formula) vào 1 bảng hoặc vào một

đoạn text khác. Nếu gõ trực tiếp dấu bằng bàn phím qua các phím {và phím }
không phải là tạo trường, cũng đồng nghĩa là sẽ không tính toán được.
- Ký tự đầu tiên trong trường phải là dấu ‘=’ (đằng sau có thể có dấu cách);
- tiếp đến là công thức ở đây Word gọi chung là Formula, công thức này
là biểu thức sử dụng các toán tử, các toán hạng có thể gồm số, những tham chiếu
BookMark hoặc có thể là một kết quả của trường là số thông qua các khoá
chuyển, hoặc bất cứ một trường và hàm đáp ứng được kết quả số.
- tiếp đến là quy cách hiển thị để định hình dữ liệu, Word gọi chung là
Numeric Picture. Quy cách này được chỉ rõ ở từng mục bên dưới. Việc định hình
dữ liệu dùng để hiển thị ra, nhưng khi tham gia biểu thức tính toán, việc định hình
này sẽ đưa ra một phần của dữ liệu, ví dụ như số năm, số tháng (của dữ liệu dạng
ngày), nếu đưa định hình dữ liệu vào biến BookMark, thì biến BookMark chỉ
chứa dữ liệu định hình đó chứ không phải chứa toàn bộ dữ liệu chung. Ví dụ, nếu
đưa định dạng với định hình số tháng vào biến Thang, thì biến Thang chỉ chứa dữ
liệu là tháng, chứ nó không chứa các dữ liệu khác như ngày hoặc năm.
Chú ý: Với các trường hoặc hàm là số khi thông qua khoá chuyển, bắt
buột phải đặt trong dấu {} (bằng cách nhấn Ctrl + F9). Không gõ trực tiếp dấu {}
bằng bàn phím.
Khi muốn ưu tiên phép tính nào trước, đặt phép tính trong dấu ngoặc đơn và
chỉ dùng dấu ngoặc đơn. Có thể lồng nhiều ngoặc đơn với nhau, cần chú ý vì nếu
số lượng các dấu ngoặc mở và và số lượng các dấu ngoặc đóng không bằng nhau,
Word sẽ sinh ra lỗi Syntax Error. Tương tự các dấu nháy đơn, nháy kép để trích
dẫn chuỗi cũng vậy. Không dùng 2 dấu nháy đơn (') thay cho 1 dấu nháy kép(").
11/41
1.3.5. Các toán tử số
Bảng 1.1. Các toán tử số
Toán tử
Ký hiệu
Ví dụ
Kết quả

Cộng
+
{=3+2}
5
Trừ

{=3-2}
1
Nhân
*
{=3*2}
6
Chia
/
{=3/2}
1,5
Phần trăm
%
{=3*2%}
0,06

^
{=3^2}
9
Khai căn bậc n
^(1/n)
{=3^(1/2)}
1,73
1.3.6. Các toán tử so sánh
Có thể sử dụng các toán tử so sánh để so sánh 2 vế, có kết quả trả về đúng

- TRUE (1) hoặc sai - FALSE (0).
Bảng 1.2. Các toán so sánh
Toán tử
Ký hiệu
Ví dụ
Cách viết khác
Kết quả
Bằng
=
{=3=2+1}
{=NOT(3<>2+1)}
TRUE
Không bằng (khác)
<>
{=3<>2+1}
Nhỏ hơn
<
{=3<2+1}
Nhỏ hơn hoặc bằng
<=
{=3<=2+1}
Lớn hơn
>
{=3>2+1}
Lớn hơn hoặc bằng
>=
{=3>=2+1}
1.3.7. Các hàm
Khi sử dụng các hàm có nhiều đối số, các đối số phải được ngăn cách
nhau bởi dấu chấm phảy. Nếu xuất hiện lỗi “Syntax Error,” là do sử dụng dấu

phảy thay cho dấu chấm phảy, hoặc thiết lập máy tính chưa đưa về dạng thiết lập
Việt Pháp.
Bảng 1.3. Các hàm
Ví dụ
Hàm
Trả về
Viết hàm
Trả về
ABS(x)
Giá trị tuyệt đối của x
{=ABS(-5)} hoặc
{=ABS(5)}
5
AVERAGE()
Trung bình cộng của danh sách
đối số
{=AVERAGE(1;2;3)}
2
COUNT()
Đếm số bên trong
{=COUNT(1;2;3)}
3
DEFINED(x)
Giá trị 1 (TRUE) nếu biểu thức
đúng, hoặc giá trị 0 (FALSE) nếu
biểu thức không thể tính toán.
{=DEFINED(1/0)}
0
FALSE
Giá trị 0

{=FALSE}
0
INT(x)
Phần nguyên của số x
{=INT(5,15)}
5
MIN()
Số nhỏ nhất trong danh sách đối
số.
{=MIN(1;2;3)}
1
12/41
Ví dụ
Hàm
Trả về
Viết hàm
Trả về
MAX()
Số lớn nhất trong danh sách đối
số.
{=MAX(1;2;3)}
3
MOD(x;y)
Phần dư của phép chia x/y
{=MOD(5,15;2)}
1,15
PRODUCT()
Kết quả của phép nhân các đối số
{=PRODUCT(2;4;6;8)}
384

ROUND(x,y)
Làm tròn giá trị x theo số chữ số
thập phân y chỉ định.
{=ROUND(123,456;2)}
{=ROUND(123,456;1)}
{=ROUND(123,456;0)}
{=ROUND(123,456;-1)}
123,46
123,5
123
120
SIGN(x)
Giá trị 1 nếu x có giá trị dương
Giá trị –1 nếu x có giá trị âm
{=SIGN(-123)}
{=SIGN(123)}
-1
1
SUM()
Tổng của các giá trị đối số
{=SUM(1;2;3)}
6
TRUE
Giá trị 1
{=TRUE}
1
Chú ý: Các hàm được viết với dấu ngoặc đơn rỗng trong bảng có thể chấp
nhận số lượng bất kỳ các đối số được ngăn cách bởi dấu chấm phảy (;). Các đối
số có thể là các số, kết quả là số của công thức, hoặc định dạng tên bookmark
(trả về số).

g) Các hàm logic
Bảng 1.4. Các hàm logic
Ví dụ
Hàm
Trả về
Viết hàm
Trả
về
AND(x;y)
Trả về giá trị 1 (TRUE) nếu cả hay
biểu thức logic ‘x’ và ‘y’ đều
TRUE, hoặc giá trị 0 (zero) nếu có ít
nhất một biểu thức là FALSE.
{=AND(5=2+3;3=5-2)}
1
OR(x;y)
Trả về giá trị 1 (TRUE) nếu có ít
nhất một biểu thức ‘x’ hoặc ‘y’ là
TRUE, hoặc giá trị 0 (zero) (FALSE)
nếu tất cả biểu thức là FALSE.
{=OR(5=2+3;3=5-2)}
1
NOT(x)
Đảo trạng thái giá trị của biểu thức
đối số. Trả về giá trị 0 (FALSE) nếu
biểu thức ‘x’ là TRUE, hoặc giá trị 1
(TRUE) nếu biểu thức x là FALSE.
{=NOT(3<>2+1)}
tương đương với
{=(3=2+1)}

1
IF(x;y;z)
Trả về y nếu x có giá trị TRUE,
ngược lại trả về z nếu x có giá trị
FALSE.
IF(5=2+3;2*3;2/3)
IF(5<>2+3;2*3;2/3)
6
0,667
h) Lồng ghép AND & OR để ghép các biểu thức logic phức tạp
Các hàm AND và OR chỉ có thể cho phép kiểm tra 2 biểu thức logic làm
đối số, nên khi có nhiều biểu thức logic cần ghép, phải lồng chúng vào với nhau
theo cách như ở các ví dụ sau:
Để lồng 3 biểu thức logic như=AND(AND(5=2+3;3=5-2);2=5-3), trả về 1,
13/41
có thể được hiểu như là=(5=2+3)*(3=5-2)*(2=5-3) cũng trả về 1, giải quyết sự
giới hạn đối số của hàm AND.
Để lồng 3 biểu thức logic như=OR(OR(5=2+3;3=5-2);2=5-3), trả về 1, có
thể được hiểu như là=((5=2+3)+(3=5-2)+(2=5-3)>0), cũng trả về 1, giải quyết
sự giới hạn đối số của hàm OR.
Word còn cho phép sử dụng hàm XOR (x; y), trả về 1 (TRUE), nếu chỉ
một biểu thức đối số là TRUE. Có thể được hiểu như là=((5=2+3)+(3=5-
2)+(2=5-3)=1), sẽ trả về 0 (FALSE) nếu cả hai biểu thức đối số đều là FALSE
(0), hoặc đều là TRUE (1).
i) Kiểm tra các số âm
Kiểm tra các số âm được dùng theo mẫu sau sẽ không chính xác ở một số
trường hợp theo khuyến cáo của tài liệu trợ giúp của Microsoft:
{QUOTE{ASK SoNhapVao “Nhập vào một số lớn hơn âm 5”}{IF{SoNhapVao}> -5
TRUE FALSE}}
Hình 1.7. Hộp thoại nhập số

Nhấn F9, hiện hộp thoại hình 1.7, nhập số vào ví dụ -3, kết quả là FALSE
Để làm việc đúng, nên cộng kết quả với một số nào đó, để so sánh với số
0. Trường hợp ví dụ trên sẽ phải viết như sau:
{QUOTE{ASK SoNhapVao “Nhập vào một số lớn hơn âm 5”} {IF{={SoNhapVao}+5}>
0 TRUE FALSE}}
Nhấn F9, hiện hộp thoại hình 1.7, nhập số vào ví dụ -3 kết quả là TRUE
j) Kiểm tra và trả về một chuỗi text với các hàm logic trong các Bookmark
Có thể dùng một trường IF để kiểm tra sự chính xác của 2 chuỗi, và xuất
kết quả ra như sau:
{IF{BkMrk1}={BkMrk2} “BkMrk1=BkMrk2” “BkMrk1 <> BkMrk2”} hoặc
{IF{BkMrk}=”TRUE Text” “BkMrk là TRUE Text” “BkMrk không phải là TRUE Text”}
hoặc
{IF “Xin chào”=“Xin chào” TRUE FALSE}
Thực tế, có thể dùng bất cứ một lỗi tham chiếu trong các trường IF để
kiểm tra 2 chuỗi, và xuất ra như một kết quả như sau:
{IF{BkMrk1}> {BkMrk2} “BkMrk1 > BkMrk2” “BkMrk1 <=BkMrk2”} và
{IF{BkMrk}=> “TRUE Text” “BkMrk=> TRUE Text” “BkMrk < TRUE Text”}
Khi sử dụng so sánh theo cách này, Word sẽ so sánh từng ký tự một trong
mỗi chuỗi. Kết quả xuất ra có thể làm điều kiện cho một trường logic khác (như
một trường IF khác chẳng hạn).
Để kiểm tra một chuỗi xem có chứa một chuỗi con không:
{QUOTE{ASK ChuoiNhapVao “Hãy nhập vào một chuỗi xem có chữ AB trong
14/41
đó không nha?”}{IF{ChuoiNhapVao}=”?AB*” TRUE FALSE}}
Nhấn F9 hiện hộp thoại hình 1.8 nhập vào một chuỗi ví dụ AAAA sẽ có
kết quả là FALSE.
Hình 1.8. Hộp thoại đề nghị nhập chuỗi kiểm tra
Dùng các ký tự ‘?’ khi muốn chỉ định từng ký tự trong chuỗi con bất kỳ,
và dùng ký tự ‘*’ để chỉ định một dãy các ký tự không rõ bất kỳ.
Có thể cũng lồng các trường IF với nhau như là:

{IF{BkMrk1}={BkMrk2} {IF{BkMrk3}={BkMrk4} {IF{BkMrk5}={BkMrk6}
“TRUE Text” “FALSE Text 3”} “FALSE Text 2”} “FALSE Text 1”}
Chú ý: Word chỉ cho phép lồng tối đa 20 mức đối với các trường IF. Sử
dụng trường IF thì phải chèn bằng cách Insert/Field hoặc Ctrl + F9 để chèn nội
dung trường. Ngăn cách giữa các phần của trường IF bằng dấu cách. Điều này
khác với hàm IF của trường Formula (trường được chèn với dấu=đứng trước),
ngăn cách giữa các phần của hàm IF là dấu chấm phảy.
Như ở mục trước đó, có thể không sử dụng AND và OR để kiểm tra các
chuỗi text, mà dùng các trường IF thay thế cũng có kết quả tương tự.
Ví dụ 14: Ví dụ sau giống như sử dụng AND:
{IF{={IF{REF BkMrk1}=”TRUE Text” 1 0}*{IF{REF BkMrk2}}=”TRUE Text” 1
0}=1 “Cả hai điều kiện đúng” “Ít nhất một điều kiện không đúng”}
Hoặc:
{IF{={IF BkMrk1=”TRUE Text” 1 0}*{IF BkMrk2=”TRUE Text” 1 0}}=1 “Cả
hai điều kiện đúng” “Ít nhất một điều kiện không đúng”}
Cũng vậy, khi sử dụng giống như hàm AND, có thể thay bằng IF như sau:
{IF(={IF{REF BkMrk1}={REF BkMrk2} 1 0}*{IF{REF BkMrk3}={REF BkMrk4}
1 0}*{IF{REF BkMrk5}={REF BkMrk6} 1 0}}=1 “Tất cả điều kiện đúng” “Ít nhất một
điều kiện không đúng”}
Không sử dụng OR, có thể dùng IF như sau:
{IF{={IF{REF BkMrk1}=”TRUE Text” 1 0}+{IF{REF BkMrk2}=”TRUE Text” 1
0}}> 0 “Ít nhất một điều kiện đúng” “Không có điều kiện nào đúng”}
Hoặc
{IF{={IF BkMrk1=”TRUE Text” 1 0}+{IF BkMrk2=”TRUE Text” 1 0}}> 0 “Ít
nhất một điều kiện đúng” “Không có điều kiện nào đúng”}
Code sau sử dụng giống như nhiều OR:
{IF{={IF{REF BkMrk1}={REF BkMrk2} 1 0}+{IF{REF BkMrk3}={REF BkMrk4}
1 0}+{IF{REF BkMrk5}={REF BkMrk6} 1 0}}> 0 “Ít nhất một điều kiện đúng”
“Không có điều kiện nào đúng”}
Code sau sử dụng giống như XOR:

{IF{={IF{REF BkMrk1}=”TRUE Text” 1 0}+{IF{REF BkMrk2}}=”TRUE Text” 1
15/41
0}=1 “Có duy nhất một điều kiện đúng” “Không phải có duy nhất một điều kiện đúng”}
Hoặc:
{IF{={IF BkMrk1=”TRUE Text” 1 0}+{IF BkMrk2=”TRUE Text” 1 0}}=1
“Chính xác chỉ một điều kiện đúng” “Không chính xác là chỉ một điều kiện đúng”}
Code sau sử dụng giống như nhiều XOR:
{IF{={IF{REF BkMrk1}={REF BkMrk2} 1 0}+{IF{REF BkMrk3}={REF BkMrk4} 1
0}+{IF{REF BkMrk5}={REF BkMrk6} 1 0}}=1 “Chính xác chỉ một điều kiện đúng”
“Không chính xác là chỉ một điều kiện đúng”}
Sử dụng số lần XOR có thể mở rộng để kiểm tra số lượng điều kiện là TRUE
bằng cách thay số ‘1’ bằng số lượng chính xác biểu thức cần phải là TRUE.
k) Tính toán trong các FormText
Bật thanh công cụ Forms bằng cách bất cứ thanh công cụ nào,
Forms. Thanh công cụ Forms sẽ hiện ra.
Hình 1.9. Các nút trên thanh Forms
Ở đây muốn chèn một FormText, thì đặt trỏ thanh tại vị trí cần chèn,
nút Text trên thanh công cụ sẽ hiện ra một trường FormText dạng như _____.
Để cập nhật giá trị cho FormText này, _____ cần cập nhật, hoặc đặt trỏ
thanh vào FormText cần chỉnh rồi nút Option sẽ hiện ra:
Hình 1.10. Hộp thoại Text Form Field Option
Có thể chọn kiểu dữ liệu là số, hoặc cần tính toán phải chọn kiểu dữ liệu
Text
Check Box
Drop Down
Option
Shading
Protect Form
Kiểu dữ liệu
Giá trị ngầm định

Định dạng
Đặt lớn nhất
Tên Boockmark để tính toán
16/41
là Calculate như hình 1.11. Trong Word kể từ phiên bản Word 2000, sử dụng
formfield để tính toán có thể lấy kết quả của một formfield này làm bộ phận hoặc
đưa vào công thức cho một formfield khác.
Trong các phiên bản trước đây của Word phải định nghĩa các bookmark sau
đó mới gán vào các mẫu trường biểu thức để tính toán. Các giá trị kết quả trong các
trường đích bị lặp lại, nên cần thay thế để tránh lỗi này từ giá trị nguồn formfield.
Hình 1.11. Để tính toán công thức với các Bookmark
Bảng kiểm chứng sau minh hoạ các trường hợp cần nghiên cứu để nắm rõ,
nếu không sẽ có kết quả không như mong muốn.
Bảng 1.5. Cẩn thận khi sử dụng với FormText
Tên
Giá trị hoặc công thức
cho trường
Kết quả
Ghi chú
Text1
Text1
1
Dùng FormText
Text2
Text2
2
Dùng FormText
Text3
=Text1*Text2
2

Dùng FormText
Text4
Text4
3
Dùng FormText
Text5
Text5
4
Dùng FormText
Text6
=Text4*Text5
12
Dùng FormText
Text7
=Text3
2
Dùng FormText
Text8
=Text6
3
Dùng FormText
Text9
=Text7*Text8
6
Dùng FormText
Ct10
{={Text3}*{Text6}}
24
Dùng Formula
Ct11

{={=Text3}*{=Text6}}
24
Dùng Formula
Ct12
{=Text3*Text6}
24
Dùng Formula
Chú ý: Office 2000 trở về trước và một số bản Office 2003 chưa nâng cấp
sẽ có kết quả không giống nhau giữa Ct10, Ct11, Ct12. Nếu muốn làm việc đúng
cần chọn và mở khoá trường (Ctrl-Shift-F11) rồi copy chúng vào văn bản khác
sau đó bảo vệ văn bản này bằng Protect Form. Thực hiện trộn các trường với
17/41
nhau qua các văn bản được bảo vệ này để có kết quả đúng.
l) Tính toán với các trường DropDown
Các trường DropDown được chèn vào văn bản bằng cách nút DropDown
trên thanh công cụ Forms, khi chèn ra có dạng ______.
Hình 1.12. Hộp thoại DropDown Options
Muốn cập nhật, DropDown để hiện ra hình 1.12
Muốn tính toán với các giá trị của DropDown sử dụng 1 trong 2 cách:
Cách 1:
{={DropDown1}+{DropDown2}+{DropDown3}+{DropDown4}}
Cách 2:
{={REF DropDown1}+{REF DropDown2}+{REF DropDown3}+{REF DropDown4}}
1.3.8.Tham chiếu vào các ô trong bảng
a) Nhận biết địa chỉ ô
Word hỗ trợ bảng lên tới 63 cột và không hạn chế số hàng (Cung cấp giới
hạn text tới 32Mb). Không như Excel, Word không tự động nhận biết những ô
chứa vị trí con trỏ. Điều này rất khó khăn khi làm việc với những bảng lớn, đặc
biệt là khi làm việc với những ô trộn hợp nhất lại. Macro sau báo địa chỉ ô góc
trái trên của một vùng ô được chọn:

Sub DiaChiO()
If Selection.Information(wdWithInTable)=TRUE Then
If Selection.Cells(1).ColumnIndex > 26 Then
StatusBar=”Địa chỉ ô: “ & Chr(64 + Int(Selection.Cells(1).ColumnIndex/ 26)) &
Chr(64 + (Selection.Cells(1).ColumnIndex Mod 26)) & Selection.Cells(1).RowIndex
Else
StatusBar=”Địa chỉ ô: “ & Chr(64 + Selection.Cells(1).ColumnIndex) &
Selection.Cells(1).RowIndex
End If
End If
End Sub
Nút thêm giá trị
cho DropDown
Chọn giá trị, chọn nút
này để loại bỏ
Danh sách
các giá trị
DropDown
Đặt tên DropDown làm
BookMark
18/41
b) Tham chiếu vào các ô chứa số
Khi sử dụng tham chiếu ô trong một bảng, Word dùng địa chỉ ô như địa
chỉ ô của Excel, nhưng do không có các cột A, B, C, D và các hàng 1,2,3,4
nên người dùng phải tưởng tượng. Mặt khác, các địa chỉ ô của Word chỉ được
viết ở dạng như là A1, B2 (theo Excel gọi đó là địa chỉ tương đối), không sử
dụng được địa chỉ dạng $A$2 (theo Excel gọi đó là địa chỉ tuyệt đối).
c) Tham chiếu vào các ô chứa text
Địa chỉ ô của Word giống như địa chỉ tương đối dạng A1 của Excel không làm
việc với các chuỗi text, nó làm việc với dữ liệu ngày tháng, cho phép trộn giữa

số và chữ trong một ô theo bảng mẫu sau:
Bảng 1.6. Mẫu tham chiếu với các ô trong bảng
Giá trị trong ô
mẫu
Gõ công
thức truy
nhập các
ô mẫu
Giá trị
nhận
được
Giải thích
21/03/2000
{=A2 \#
0.000000}
0.000.000
Ở đây các số bị chia ra
21 March 2010
{=A3 \#
0.000000}
0.002.031
Ở đây các số được cộng với
nhau và chữ bị bỏ qua (cộng 21
với 2010)
((15+14)*2-10)/6
{=A4}
8
Biểu thức được thực hiện, có vẻ
lạ kỳ nhưng đôi khi cũng có ích
5 chó, 2 chim và 3

mèo
{=A5}
10
Các số được cộng với nhau, các
chữ bị bỏ qua
Xin chào
{=A6}
0
Không có số nên trả về số 0
12ab 67 abc 12
{=A7}
91
Các số được cộng với nhau, các
chữ bị bỏ qua
100 m2, 50 m2
{=A8}
150
Các số dính chữ ở đằng trước
như m2 bị bỏ qua, chỉ cộng các
số có dấu cách đứng trước.
10 m 2, 100 m 2
{=A9}
114
Chú ý, khi gõ m2 không được
có dấu cách như m 2, sẽ bị cộng
tất cả các số
12,5 m2, 10,5 m2
{=A10}
23
Cộng với số thập phân

12.5 m2, 10.5 m2
{=A11}
32
Nếu viết theo kiểu Mỹ sẽ bị
tính nhầm, do cộng 12+5+10+5
Để tham chiếu tới một chuỗi ký tự trong ô thì chuỗi ký tự (không phải
chính ô đó) phải được gán vào BookMark và truy cập sẽ thực hiện qua truy cập
vào BookMark.
d) Tham chiếu vùng, các vùng ô
Có thể tham chiếu vào một vùng ô liên tục hoặc không liên tục theo quy
định tại bảng 1.7 trang 19.
Chú ý: Tất cả các nội dung trong tài liệu này muốn làm việc chính xác cần
19/41
phải chỉnh máy tính về dạng dữ liệu Việt Pháp (dùng dấu chấm phảy khi liệt kê).
Các dạng dữ liệu kiểu Anh Mỹ không phù hợp với tiêu chuẩn và quy định Việt
Nam nên không đề cập và hướng dẫn trong tài liệu này.
Bảng 1.7. Dấu xác định khi làm việc với vùng các ô
Dấu
Mô tả
Ví dụ
:
(hai
chấm)
Xác định vùng. Trả về một vùng bao
gồm tất cả các ô nằm giữa hai ô hai bên
của dấu hai chấm.
=SUM(A1:A5)
;
(chấm
phảy)

Xác định nhiều vùng. Trả về tất cả các ô
thuộc các vùng rời rạc được liệt kê sau
từng dấu chấm phảy.
=SUM(A1:A5;A10:A15;A20)
e) Tham chiếu toàn bộ hàng hoặc cột
Để sử dụng nhiều hàng cột:
- Chỉ dùng số hàng và chữ cái chỉ cột khi tham chiếu. Ví dụ 1:1 là tham
chiếu hàng trên cùng của bảng, hoặc A:A để tham chiếu cột đầu tiên bên trái
bảng. Không nên tham chiếu lòng vòng, ví dụ như công thức đặt ở hàng đó
nhưng trong công thức lại tính tổng của tất cả các ô trong hàng đó. Như vậy sẽ
bị lỗi xảy ra khi cập nhật và rất khó phát hiện. Việc truy nhập toàn bộ hàng hay
cột sẽ có lợi, khi người dùng thêm hoặc xoá ô trong hàng cột đó mà khi viết
công thức chưa xác định được số lượng các ô của hàng, cột cần tính.
- Sử dụng vùng ô giống như địa chỉ tương đối của Excel để truy nhập.Ví dụ
dùng địa chỉ D1:D4 để chỉ các hàng (1-4) trong cột D. Điều này rất nguy hiểm,
khi thay đổi số ô, số hàng, số cột của bảng sẽ làm thay đổi địa chỉ nên trong
những trường hợp đó bao giờ cũng phải cập nhật lại công thức.
f) Tham chiếu các ô liền kề trong một hàng hoặc một cột
Để chỉ rõ các ô liền kề có nội dung của các cột/hàng trong một bảng,
Word cho phép dùng các từ khoá làm tham số gồm ABOVE (trên), BELOW
(dưới), LEFT (trái) và RIGHT (phải) cho các hàm AVERAGE() tính trung bình
cộng, COUNT() đếm số, MAX() lớn nhất, MIN() nhỏ nhất, PRODUCT() nhân
và SUM() cộng. Phép tính thực hiện đối với tất cả các ô cần tính theo phía của
từ khoá.
Bảng 1.8. Ví dụ sử dụng với từ khoá ABOVE
6
6
6
6
6

6
6
6
6
6
6
6
6
6
6
6
6
6
A
5
A
5
A
5
A
5
A
5
A
5
B
4
B
4
B

4
B
4
B
4
B
4
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
2
2
2
2
2

2
2
2
2
2
2
2
2
2
2
2
2
2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1

1
1,2
1,2
2,63
5
5
8
3
3
6
0
0
0
0
0
0
6
6
21
{=AVERAGE
(ABOVE)}
{=COUNT
(ABOVE)}
{=MAX
(ABOVE)}
{=MIN
(ABOVE)}
{=PRODUCT
(ABOVE)}
{=SUM

(ABOVE)}
20/41
Điều gì xảy ra? Các tham số từ khoá ABOVE, BELOW, LEFT hoặc
RIGHT được tính chỉ những ô trong phạm vi quy định của Word (ở đây để làm
rõ, các ô này đã được tô màu xám). Khi sử dụng COUNT nó đếm cả ô trống.
Nên khi sử dụng các tham số từ khoá này phải cảnh giác. Một số vấn đề khác
liên quan đến các từ khoá này khi xử lý đối với tiếng Việt không chính xác nên
không giới thiệu tiếp ở tài liệu này.
Chú ý: Nếu dữ liệu không bắt đầu từ hàng đầu tiên của bảng phải bổ sung
một giá trị xê dịch (offset) cho từng dòng sau dòng dữ liệu đầu tiên. Nghĩa là
nếu dữ liệu bắt đầu từ dòng 2, phải đặt +1 sau mỗi {SEQ Row} trong cột sử dụng
SEQ. trường hợp này là {={SEQ Row}+1}, tương tự nếu dữ liệu bắt đầu từ dòng
3, thì phải dùng +2
1.3.9. Kiểm tra hoặc trả về nội dung ô trong bảng
Các trường công thức không tính toán với các chuỗi text đơn thuần, bao
gồm ngày tháng và thời gian ở tất cả các tham chiếu ô của bảng. BookMark để
tính toán chỉ có thể là nội dung của ô, không phải là toàn bộ ô, nếu không sẽ gặp
lỗi tham chiếu.
{IF{BkMrk}=”TRUE Text” “TRUE Response” {=(A2-A1)}}
Để xem trường hợp này xét bảng sau:
Bảng 1.9. Tham chiếu BookMark khi chọn dữ liệu là ô hoặc nội dung của ô
Đây là BookMark
1 bao gồm và cả ô
toàn bộ nội dung
của ô
Lỗi Error! Not a
valid bookmark
self-reference khi
gõ công thức
trong bảng liên

quan đến
{BkMrk1}
{BkMrk1}
Ở đây bôi đen toàn bộ
ô A1 và đưa vào
BookMark
Đây là BookMark
2, chỉ gồm nội
dung của ô thôi
Đây là BookMark
2, chỉ gồm nội
dung của ô thôi
{BkMrk2}
Ở đây chỉ bôi đen
phần chữ của ô A2 và
đưa vào BookMark
Sử dụng tham chiếu từ ngoài bảng khi gõ:
{BkMrk1} và {BkMrk2}
Sẽ nhận được:
Đây là BookMark
1 bao gồm và cả ô
toàn bộ nội dung
của ô

Đây là BookMark 2, chỉ gồm nội dung của ô thôi
Tương tự, để kiểm tra trong bảng xem ô A1 có rỗng hoặc có giá trị bằng 0
sẽ trả về 0, và tính toán B2-B1 chỉ khi là TRUE, có thể dùng:
{=IF(A1=0;0;B2-B1)} hoặc {=IF(A1;B2-B1;0)}
1.3.10. Tham chiếu nội dung của ô trong bảng từ ngoài bảng
Chỉ những hàm sau được chấp nhận khi viết bên ngoài bảng:

21/41
AVERAGE(), COUNT(), MAX(), MIN(), PRODUCT(), và SUM().
Khi tham chiếu vào giá trị của các ô từ bên ngoài bảng, thiết đặt một
BookMark cho bảng (như Bang1 chẳng hạn), rồi dùng hàm thích hợp (cho dù
chỉ cho 1 ô đơn) để lấy những giá trị này.
Ví dụ 15:
{=SUM(Bang1 C1)} - Tính tổng các số nằm trong ô C1 thuộc Bang1
Hoặc {=SUM(Bang1 A3)+SUM(Bang1 B3)}- Tính tổng của ô A3 và B3
trong Bang1.
Kỹ thuật này rất hữu ích khi cần truy cập nhiều hơn 1 giá trị bảng để tính
toán chúng thậm chí truy cập với những giá trị trong những ô khác nhau ở nhiều
bảng khác nhau.
Chú ý: Nếu sử dụng bằng cách đặt tên BookMark cho bảng với con số
đứng cuối, phải chắc chắn rằng tên của BookMark dài tối thiểu là 4 ký tự. Nếu
không, Word sẽ nhầm lẫn giữa tên BookMark và tên ô.
g) Tham chiếu tính tổng hàng và tổng cột từ ngoài bảng
Sử dụng với cách viết 2 lần hàng và cột và dấu hai chấm ở giữa. Ví dụ 16:
{=SUM(Bang1 D:D)/2)} - Tính tổng cột D của Bang1, rồi chia 2.
Tương tự đối với hàng. Ví dụ 17:
{=SUM(Bang1 3:3)/2)} - Tính tổng hàng 3 của bang1, rồi chia 2.
h) Định dạng kết quả trường số
Dựa trên nguyên tắc đặt \# sau đó đến kiểu hình định dạng. Dùng số 0 để
bắt buộc hiển thị và dùng dấu # để không bắt buộc hiển thị đủ số chữ số. Xem
bài định dạng của Excel để rõ hơn.
i) Làm tròn số tới bội số của một hệ số gần nhất
Hàm ROUND dùng để làm tròn đến một giá trị là bội số của một phép
nhân với một số. Ví dụ 18:
{=ROUND((SUM(5;6;7)/5;0)*5} làm tròn tới 20, là bội số gần nhất của 5,
do tổng SUM(5;6;7)=18.
j) Làm tròn lên hoặc xuống các số

Có thể làm tròn lên hoặc làm tròn xuống. Xét vấn đề này có thể dùng
công thức tương tự sau:
{=INT(SUM(5,5;6,6;7,7)+IF(MOD(SUM(5,5;6,6;7,7);1)>0;1;0))}=20 để làm
tròn lên hoặc:
{=INT(SUM(5,5;6,6;7,7))}=19 để làm tròn xuống.
Để làm tròn tới bội số gần nhất của một số (như số 5), dùng biểu thức:
{=INT(SUM(5,5;6,6;7,7)/5+IF(MOD(SUM(5,5;6,6;7,7);5)>0;1;0))}=20 để
làm tròn lên hoặc {=INT(SUM(5,5;6,6;7,7)/5)*5}=15 để làm tròn xuống.
k) Làm tròn chẵn
Word cho phép là tròn chẵn lên trên với điều kiện lớn hơn 0,5 đơn vị trở
lên sẽ đưa lên số chẵn trên và ngược lại sẽ làm tròn đến số chẵn dưới:
{=ROUND(5,5)-(MOD(5,5;0,5)=0)*(MOD(ROUND(5,5;0);2)>0)/2;0)}=6 và
{=ROUND(6,5)-(MOD(6,5;0,5)=0)*(MOD(ROUND(6,5;0);2)>0)/2;0)}=6
(đáng lẽ kết quả sẽ là 7, khi không làm tròn).
Tương tự có thể làm tròn đến các mốc cách nhau 0,5 như 0,5:0; 1,5:2;
22/41
2,5:2; 3,5:4; v v
Để làm tròn chẵn lên bộ số của 1 số (ví dụ số 5); Có thể dùng công thức:
{=ROUND(55-(MOD(55;5)=0)*(MOD(ROUND(55;-1);20)>0)/2;-1)}=60 hoặc
{=ROUND(65-(MOD(65;5)=0)*(MOD(ROUND(65;-1);20)>0)/2;-1)}=60 (đáng lẽ
phải là 70, khi không làm tròn).
Các tính toán phức tạp khác nên đưa vào Excel vì sử dụng trong Word sẽ
mạo hiểm nếu không nắm rõ những khiếm khuyết của Word.
1.4. Làm việc với ngày tháng
1.4.1. Các loại ngày tháng
Microsoft Word cung cấp các loại ngày tháng và thời gian sau:
- DATE: Ngày hiện tại
- CREATEDATE: Ngày tạo lập tệp
- SAVEDATE: Ngày cất gần nhất
- PRINTDATE: Ngày in gần nhất

- TIME: Thời gian hiện tại (Word chỉ chèn giá trị thời gian tức thời. Khi nhấn
F9 cập nhật, giá trị thời gian tại thời điểm đó sẽ tự động đưa vào ngay lập tức.)
1.4.2. Định dạng ngày tháng
Sử dụng cú pháp tương tự sau:
{DATE \@ “Numeric Picture”}
Trong đó Numeric Picture (mẫu định hình) bao gồm các chữ cái chỉ ra
phần của ngày tháng cần lấy. Mẫu định hình quyết định tới kết quả xuất ra tại vị
trí gõ công thức hoặc vị trí của trường ngày tháng được chèn.
Ví dụ 19: Mẫu định hình chỉ có yyyy sẽ hiện ra 4 chữ số của năm, nếu đưa
vào biểu thức thì Word chỉ tính toán với số năm mà thôi, còn các dữ liệu khác
định dạng không đưa ra (ngày, tháng ) không được xem xét và tính toán.
Chú ý: Ngày tháng và thời gian chèn ở dạng trường nên không có dấu =
đứng trước. Nếu gõ dấu = trước bất cứ trường nào, Word sẽ coi các trường đó như
BookMark và sẽ xử lý như BookMark.
Nếu BookMark chưa có, sẽ hiện thông báo có dạng !Undefined Bookmark,
DATE (BookMark DATE chưa định nghĩa).
Nếu bỏ quên dấu nháy kép trong mẫu định hình, kết quả sẽ hiển thị không
chính xác, thậm chí không hiển thị.
Các quy định trong mẫu định hình.
a) Định dạng năm
Hiển thị một năm là hai hoặc bốn chữ số, phụ thuộc vào số chữ “y” được
sử dụng. Các chữ “y” có thể là chữ hoa hay chữ thường.
Bảng 1.10. Quy định định dạng năm
Tham số
Hiển thị
Ví dụ
Kết quả
Y, YY, y
hoặc yy
Mẫu năm gồm 2 chữ số, tự

thêm số 0 đối với các năm từ
00 đến 09
{Date \@ y} hoặc
{Date \@ yy}
10 hoặc
10
YYYY hoặc
yyyy
Mẫu năm gồm 4 chữ số
{Date \@ yyyy}
2010
23/41
b) Định dạng tháng
Sử dụng chữ M viết hoa để định dạng tháng. Không được nhầm với chữ
m viết thường là định dạng phút.
Bảng 1.11. Quy định định dạng tháng
Tham số
Hiển thị
Ví dụ
Kết quả
M
Số chỉ tháng
{Date \@ M}
2
MM
Số chỉ tháng với 2 con số, hiện số 0
đứng trước nếu tháng từ 1 đến 9
{Date \@ MM}
02
MMM

3 ký tự đầu tiên của tên tháng bằng tiếng Anh
{Date \@ MMM}
Feb
MMMM
Tên tháng đầy đủ bằng tiếng Anh
{Date \@ MMMM}
February
c) Định dạng ngày
Sử dụng chữ D viết hoa hoặc d viết thường để định dạng ngày.
Bảng 1.12. Quy định định dạng ngày
Tham số
Hiển thị
Ví dụ
Kết quả
D hoặc d
Số chỉ ngày của tháng
{Date \@ d}
22
DD hoặc dd
Số chỉ ngày của tháng bắt buộc phải có
2 chữ số, nếu ngày từ 1 đến 9 sẽ được
tự thêm số 0 đứng trước
{Date \@ dd}
22
DDD hoặc
ddd
3 ký tự đầu tiên của tên thứ trong tuần
bằng tiếng Anh
{Date \@ ddd}
Mon

DDDD hoặc
dddd
Tên thứ đầy đủ trong tuần bằng tiếng
Anh
{Date \@ dddd}
Monday
Xem các code mẫu để nắm rõ cách hiển thị thứ trong tuần bằng tiếng Việt.
d) Định dạng giờ
Sử dụng chữ H viết hoa hoặc h viết thường để định dạng giờ.
Bảng 1.13. Quy định định dạng giờ
Tham số
Hiển thị
Ví dụ
Kết quả
h
Số chỉ giờ hiện tại theo định dạng
12 giờ trong ngày
{Date \@ h}
1
H
Số chỉ giờ hiện tại theo định dạng
24 giờ trong ngày
{Date \@ H}
13
hh
Số chỉ giờ hiện tại theo định dạng
12 giờ trong ngày, bắt buộc phải
có 2 chữ số, nếu giờ từ 1 đến 9 sẽ
được tự thêm số 0 đứng trước
{Date \@ hh}

01
HH
Số chỉ giờ hiện tại theo định dạng
24 giờ trong ngày, bắt buộc phải
có 2 chữ số, nếu giờ từ 1 đến 9 sẽ
được tự thêm số 0 đứng trước
{Date \@ HH}
13
am/pm hoặc
AM/PM
‘AM’ or ‘PM’ khi hiển thị 12 h
{Date \@ am/pm}
PM
Chú ý: Có thể định dạng ký tự AM/PM bằng cách thay đổi trong hộp
24/41
thoại Windows Control Panel ‘Regional Settings’. Nếu đặt AM là sáng, PM là
chiều sẽ hiện “sáng”, hoặc “chiều” sau thời gian hiển thị.
e) Định dạng phút
Sử dụng chữ m viết thường để định dạng phút. Không được nhầm chữ M
viết hoa là ký hiệu của định dạng tháng.
Bảng 1.14. Quy định định dạng phút
Tham số
Hiển thị
Ví dụ
Kết
quả
m
Số chỉ phút hiện tại
{Date \@ m}
48

mm
Số chỉ phút hiện tại bắt buộc phải có 2 chữ số, nếu
phút từ 1 đến 9 sẽ được tự thêm số 0 đứng trước
{Date \@ mm}
48
f) Định dạng giây
Sử dụng chữ s viết thường hoặc S viết hoa để định dạng giây.
Bảng 1.15. Quy định định dạng giây
Tham số
Hiển thị
Ví dụ
Kết quả
s hoặc S
Số chỉ giây hiện tại
{Date \@ h}
1
ss hoặc SS
Số chỉ giây hiện tại bắt buộc
phải có 2 chữ số, nếu giây từ 1
đến 9 sẽ được tự thêm số 0
đứng trước
{Date \@ H}
13
Chú ý: Chỉ trường DATE hoặc Time mới hỗ trợ định dạng giây.
g) Tìm một ngày trong tuần bằng tiếng Anh
{QUOTE{ASK NgayNhapVao “Xin nhập vào một ngày cần tìm thứ trong tuần,
theo định dạng dd/mm/yyyy format?” \d{DATE \@
“d/MM/yyyy”}}{NgayNhapVao \@ “dd/MM/yyyy”}{={NgayNhapVao \@
YYYYMMdd}-{DATE \@ YYYYMMdd} \# “’ sẽ là ‘;’ trước đây là ‘;’ hiện tại là
‘”}{NgayNhapVao \@ dddd}.”}

Khi nhấn F9 sẽ hiện hộp thoại tương tự như sau
Hình 1.13. Hộp thoại nhập liệu ngày tháng trước khi xử lý
Tuỳ thuộc vào ngày tháng nhập vào so sánh với ngày hiện tại để hiển thị
chuỗi “trước đây là”, “hiện tại là” hay “sẽ là”. Nếu hôm nay ngày 22 tháng 02
năm 2010 sẽ có kết quả là:
22/02/2010 hiện tại là Monday.
h) Tìm một ngày trong tuần bằng tiếng Việt
Cách viết công thức sau sẽ biến đổi ngày hiện tại thành số Julian, lấy số
25/41
đó chia cho 7 để lấy số dư, tuỳ theo giá trị của phép tính số dư mà hiện ngày đó
là thứ mấy.
{QUOTE
{SET a{=INT((14-{DATE \@ M})/12)}}
{SET b{={DATE \@ yyyy}+4800-a}}
{SET c{={DATE \@ M}+12*a-3}}
{SET d{DATE \@ d}}
{SET jd{=d+INT((153*c+2)/5)+365*b+INT(b/4)-INT(b/100)+INT(b/400)-32045}}
{jd \#;0}
{IF{=MOD(jd;7)}=0 “thứ hai” {IF{=MOD(jd;7)}=1 “thứ ba”
{IF{=MOD(jd;7)}=2 “thứ tư” {{IF{=MOD(jd;7)}=3 “thứ năm”
{IF{=MOD(jd;7)}=4 “thứ sáu” {IF{=MOD(jd;7)}=5 “thứ bảy” “chủ nhật”}}}}}}}
Theo cách tính trên, hôm nay ngày 22 tháng 02 năm 2010 là thứ hai.
1.4.3. Tự động chèn một ngày quá khứ và tương lai
Để tính toán sử dụng bằng cách đặt một biến dạng KhoangThoiGian. Căn
cứ vào KhoangThoiGian so sánh với mốc để chỉ ra được ngày cần tính.
a) Chỉ ra tên tháng cách KhoangThoiGianTheoThang n tháng
{QUOTE{Set KhoangThoiGianTheoThang 10}{=MOD(ABS({DATE \@
M}+KhoangThoiGianTheoThang+11);12)+1}/0 \@ MM}
Ví dụ nếu đặt KhoangThoiGianTheoThang=10 thì nếu tháng hiện tại là 02
thì tháng cần tính kết quả là 06.

Chỉ số/0 để nhận giá trị trả về là dạng “tháng”, nếu định dạng MMMM sẽ
hiển thị được tên tháng bằng tiếng Anh.
b) Chỉ ra tháng năm cách KhoangThoiGianTheoThang n tháng
{QUOTE
{SET KhoangThoiGianTheoThang 10}
{SET m{=MOD({DATE \@ MM}+KhoangThoiGianTheoThang+11;12)+1}}
{SET y{=INT({DATE \@ yyyy}+(KhoangThoiGianTheoThang+{DATE \@ M}-1)/12)}}
”{m}-{y}” \@ “MM/yyyy”}
Nếu tháng năm hiện tại là 02/2010 và đặt KhoangThoiGianTheoThang là
10 thì sẽ được tháng năm cần tính là 6-5360, nếu định dạng MMMM sẽ hiển thị
được tên tháng bằng tiếng Anh.
c) Chỉ ra tháng năm cách KhoangThoiGianTheoNam n năm
{QUOTE
{SET KhoangThoiGianTheoNam 1}
{DATE \@ MMMM}160{={DATE \@ yyyy}+KhoangThoiGianTheoNam}}
Nếu tháng năm hiện tại là 02/2010 và đặt KhoangThoiGianTheoNam là 1
thì sẽ được tháng năm cần tính là 02/42214, nếu định dạng MMMM sẽ hiển thị
được tên tháng bằng tiếng Anh.
d) Chỉ ra ngày tháng năm cách KhoangThoiGianTheoNam n năm
{QUOTE
{SET KhoangThoiGianTheoNam 1}
{SET yy{={DATE \@ yyyy}+KhoangThoiGianTheoNam}}
{SET mm{DATE \@ MM}}
{SET dd{={DATE \@ d}-({DATE \@ d}>28)*({DATE \@
M}=2)*((MOD(yy;4>0)+(MOD(yy;400)>0)-(MOD(yy;100)>0))}}

×