Các trường này lưu trữ những giá trị của văn bản đangsoạ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ử
Trang 1HỌC VIỆN PHÒNG KHÔNG - KHÔNG QUÂN GIÁO TRÌNH ĐÀO TẠO NHÂN LỰC CNTT
Trang 2Chươ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ọngtrong 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 đangsoạ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 khichọn OK trường sẽ được chèn ra vị trí trỏ thanh với kết quả của nó Để tìm hiểuhoặ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ọnnà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ụngkhi 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
Trang 3Tiế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ảinhấ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ácdấ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ởicặ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àycủ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ộpthoạ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ể địnhdạ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útOption ở góc dưới bên trái Khung hội thoại Field Options sẽ hiện ra để chọncá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ệuhó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ênthự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 \* MERGEFORMATkhông đưa vào các ví dụ (để tránh dài, khó theo dõi), nên mỗi khi muốn cậpnhật, phải bôi đen chọn trường và nhấn F9 Để quan sát nội dung code của mộttrườ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ụngnế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ắtAutoCorrect 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ínhcầ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ườngFillIn theo cú pháp sau:
{FillIn “Lời nhắc” \d “Giá_trị_ngầm_định”}
Trang 4Trong đó 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ườngFillIn 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ủaFillIn 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ạiFillIn, điều này gây bựcmì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ùngnhập giá trị giữa lầnFillIn 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ủaBookMark để 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:
Trang 5Sắ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ạngbiểu thức
Ví dụ 3 đặt biếnSoNamToiThieuDuDKNghiHuulà 25:
{SET SoNamToiThieuDuDKNghiHuu 25}
Ví dụ 4 đặt biến SoNamTinhTuNgayThanhLapHocVienDenNay bằng lấy 4chữ 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àobiế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ình1.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ếtthườ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ườngSEQ để 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êmvà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
Trang 6- Có thể xoá BookMark từ hộp thoại này bằng cách chọn BookMark cầnxoá, 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ềuhơ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:
Ngoài ra còn có trườngListNum tương tự AutoNum Khi chènListNum ra sẽ
có luôn dấu ngoặc() bao quanh số Trường ListNum không đúng với quy địnhhiệ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 đíchcủ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ênBookMark 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ị theolầ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 đượccập nhật, theo số hình trong chương, cho dù khi soạn thảo, số lượng hình có
Trang 7thê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
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ảmdần, bằng cách đặt một BookMark lấy một hằng số cố định trừ đi trường SEQ
Trang 8Nế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ềuBookMark kết hợp để tạo những chuỗi số đặc biệt như chuỗi Fibonaxi
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ườngRef không làm việc với các BookMark sử dụng tại trườngSEQ.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:
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êmbớ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ủatrang này sẽ hiện chữ Công nghệ, khi ở đầu trang khác giải nghĩa chữ Khoa họcthì ở 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ằngmột kiểu Style riêng Ví dụ kiểu Style làChuCanTra
Trang 9Hì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.
Trang 10Khi cần chèn chuỗi ký tự đầu tiên của trang được định dạng styleChuCanTra dùng trườngSTYLEREF 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
- 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ếuBookMark 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ìnhnà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ạngngà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(")
Trang 11Khi 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ậpViệt Pháp
DEFINED(x) Giá trị 1 (TRUE) nếu biểu thức
đúng, hoặc giá trị 0 (FALSE) nếubiểu thức không thể tính toán
{=DEFINED(1/0)} 0
MIN() Số nhỏ nhất trong danh sách đối
số
Trang 12MOD(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)} 384ROUND(x,y) Làm tròn giá trị x theo số chữ số
Giá trị –1 nếu x có giá trị âm
{=SIGN(-123)}
{=SIGN(123)} -11
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
AND(x;y) Trả về giá trị 1 (TRUE) nếu cả hay
biểu thức logic ‘x’ và ‘y’ đềuTRUE, hoặc giá trị 0 (zero) nếu có ítnhấ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ếubiể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) 0,6676
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 nhautheo 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,
Trang 13có 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 trongmỗ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ườngIF 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
Trang 14đó 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ácchuỗi text, mà dùng các trườngIF thay thế cũng có kết quả tương tự
Ví dụ 14: Ví dụ sau giống như sử dụngAND:
{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àmAND, có thể thay bằngIF 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ụngOR, có thể dùngIF 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ềuOR:
{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
Trang 150}=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ềuXOR:
{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ầnXOR 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
Đặt lớn nhất
Tên Boockmark để tính toán
Trang 16là Calculate như hình 1.11 Trong Word kể từ phiên bản Word 2000, sử dụngformfield để 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áctrườ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
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 đúngcần chọn và mở khoá trường (Ctrl-Shift-F11) rồi copy chúng vào văn bản khácsau đó 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
Trang 17nhau 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 DropDowntrê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ớihạ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, đặcbiệ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óctrái trên của một vùng ô được chọn:
Danh sách các giá trị DropDown
Đặt tên DropDown làm BookMark
Trang 18b) 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ư địachỉ ô 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ỉ đượcviế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àmviệ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
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
12ab 67 abc 12 {=A7} 91 Các số được cộng với nhau, các
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ảichính ô đó) phải được gán vào BookMark và truy cập sẽ thực hiện qua truy cậpvào BookMark
Trang 19phả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ệtNam 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 ô
gồm tất cả các ô nằm giữa hai ô hai bên
của dấu hai chấm
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 haycột sẽ có lợi, khi người dùng thêm hoặc xoá ô trong hàng cột đó mà khi viếtcô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 trongnhữ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ìnhcộ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
Trang 20Điều gì xảy ra? Các tham số từ khoá ABOVE, BELOW, LEFT hoặcRIGHT đượ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ácliê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ênkhô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ụngSEQ 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, baogồ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ặplỗ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 ô
gõ công thứctrong bảng liênquan đến
{BkMrk1}
{BkMrk1} Ở đây bôi đen toàn bộ
ô A1 và đưa vàoBookMark
{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õ:
Đâ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: