Professional Documents
Culture Documents
vn
Hàm LEFT:
Công dụng
Trích bên trái một chuỗi văn bản một hoặc nhiều ký tự dựa vào số ký tự mà bạn chỉ
định.
Công thức
=LEFT(text,num_chars)
Hàm RIGHT:
Công dụng
Trích bên phải một chuỗi văn bản một hoặc nhiều ký tự dựa vào số ký tự mà bạn chỉ
định.
Công thức
=RIGHT(text, num_chars)
Hàm MID:
Công dụng
Trích một chuỗi con từ một chuỗi text, bắt đầu từ vị trí start_num với số ký tự được
chỉ định num_chars
Công thức
=MID(text,start_num,num_chars)
Hàm VALUE:
Công dụng
Đổi chuỗi text đại diện cho một số thành dữ liệu kiểu số
Công thức
=VALUE(text)
Hàm LEN:
Công dụng
Tính độ dài (số ký tự) của mỗi chuỗi.
Công thức
=LEN(text)
text là nội dung mà bạn cần xác định độ dài.
Ví dụ
Để dễ hiểu, bạn có thể copy dữ liệu bên trong bảng bên dưới vào một trang bảng tính
mớ và nhập công thức vào.
A B C
1 SBD Họ và tên
2 QSA0001 Nguyễn Hoài An
3 QSA0002 Nguyễn Tấn Anh
Hàm TRIM:
Công dụng
Xóa tất cả các ký tự trắng của chuỗi trừ những khỏang đơn dùng để làm khỏang cách
bên trong chuỗi.
Công thức
=TRIM(text)
I
text chuỗi cần xóa các ký tự trắng.
Ví dụ
Công thức Giải thích
Trả về Microsoft Excel sau khi loại bỏ các khỏang trắng
=TRIM(" Microsoft Excel")
đầu chuỗi này.
Hàm AND:
Công dụng
Trả về kết quả TRUE nếu tất cả điều kiện đều TRUE, Trả về FALSE nếu một trong các
điều kiện FALSE.
Công thức
=AND(logical_1,logical_2,...)
Hàm OR:
Công dụng
Trả về TRUE nếu một trong các điều kiện là TRUE. Trả về FALSE nếu tất cả các điều
kiện là FALSE.
Công thức
=OR(logical_1,logical_2,...)
Hàm NOT:
Công dụng
Trả về phủ định của một biểu thức Logic.
Công thức
=NOT(logical)
Hàm IF:
Công dụng
Trả về một giá trị nếu điều kiện là đúng, Trả về một giá trị khác nếu điều kiện là sai.
Công thức
=IF(logical_test,value_if_true,value_if_false)
logical_test: điều kiện để xét, logical có thể là kết quả của một hàm luận lý như AND,
OR,...
value_if_true: giá trị trả về nếu điều kiện logical_test là TRUE.
value_if_false: giá trị trả về nếu điều kiện logical_test là FALSE.
Lưu ý!
Có thể có 7 hàm IF được lồng vào nhau để tạo nên công thức phức tạp hơn.
Các điều kiện phải có giá trị là TRUE hoặc FALSE.
Nếu điều kiện có giá trị không phải Logic, hàm AND trả về lỗi #VALUE!
Nếu bạn đang sử dụng bộ gõ ở chế độ TELEX, lưu ý khi nhập hàm IF sẽ chuyển thành Ì,
nhần tiếp chữ F lần nữa để thành IF
Ví dụ
Để dễ hiểu hơn, bạn hãy copy dữ liệu bên trong bảng vào bảng tính mới và nhập công
thức vào.
A B C D E F
1 BẢNG ĐIỂM TỔNG KẾT
2 STT Họ Tên Ngày sinh ĐTB Xếp loại
3 1 Nguyễn Văn Ánh 01/01/1990 5.6
4 2 Lê Văn Bình 10/05/1991 4.5
5 3 Nguyễn Hữu Chánh 06/05/1990 7.5
6 4 Phạm Hùng Dũng 02/07/1990 8.0
7 5 Huỳnh Tấn Dương 06/04/1991 6.5
8
6 Võ Thị Thu Hương 03/08/1990 6.7
9
7 Trần Thị Kim Kiều 08/12/1990 8.6
10
8 Võ Thị Thu Loan 06/11/1991 9.0
11
9 Phan Thanh Quang 12/12/1990 6.8
12 10 Đỗ Văn Thanh 11/12/1990 7.2
Hàm DATE:
Công dụng
Trả về một chuỗi hoặc một số thể hiện một ngày tháng đầy đủ. Nếu định dạng ô là
General trước khi nhập hàm thì kết quả trả về là chuỗi ngày tháng.
Công thức
=DATE(year,month,day)
year số chỉ năm, có thể có từ 1 đến 4 ký số. Microsoft Excel tự biên dịch đối số năm tùy
thuộc vào đối số ngày tháng bạn đang dùng.
Nếu số năm year nằm từ 0 đến 1899 thì nó được cộng với 1900 để tính. Ví dụ
year là 105 thì year được hiểu trong công thức là 2005.
Nếu 1900 =< year =< 9999 thì year chính là số năm đó
Nếu year < 0 hoặc year > 10,000 thì hàm trả về lỗi #NUM!
month số chỉ tháng. Nếu số tháng lớn hơn 12 thì hàm tự quy đổi 12 = 1 năm và cộng
vào year số năm tăng lên do số tháng. Ví dụ bạn month là 18, year là 2004 thì hàm tự
hiểu month là 6 và year là 2005
day số chỉ ngày. Nếu số ngày lớn hơn số ngày của tháng thì hàm tự quy đổi là tăng số
tháng. Vì số ngày của mỗi tháng khác nhau 28,29,30 hoặc 31 tùy thuộc vào tháng và
năm nên tùy theo số tháng và năm đi kèm mà hàm sẽ quy đổi phù hợp.
Lưu ý!
Excel lưu trữ ngày tháng thành chuỗi số tuần tự và dùng chuỗi số này để tính toán. Quy
ước ngày 01/01/1900 là mốc số 1. Vì vậy ngày 01/01/2010 đựơc hiểu là số 40179 vì sau
này 01/01/1900 là 40179 ngày.
Để xem kết quả hàm ở dạng số tuần tự. Vào Format - Cell. Chọn thẻ Number, chọn
General trong mục Category.
Date rất cần thiết khi year, moth, day cũng là những công thức không phải là hằng số.
Nó giúp bạn tính toán chính xác hơn.
Lưu ý đến thứ tự year, month, day trong hàm vì bạn có thể nhầm lẫn vì hiểu
theo quy cách ngày của Việt Nam: day, month, year.
Ví dụ
Để dễ hiểu hơn, bạn hãy copy dữ liệu bên trong bảng bên dưới vào một trang bảng tính
mới và nhập công thức bên dưới vào.
A B C
1 Ngày Tháng Năm
2 40 10 2005
Công thức Giải thích
=DATE(C2,B2,A2) Trả về 09/11/2005
Hàm NOW:
Công dụng
Trả về ngày giờ hiện tại trong hệ thống của bạn. Nếu định dạng ô là General trước khi
hàm nhập công thức, kết quả trả về ở định dạng ngày tháng.
Công thức
=NOW()
Lưu ý!
Số bên phải trong chuỗi số thập phân đại diện cho giờ, số bên trái đại diện cho ngày
tháng.
Hàm NOW() chỉ thay đổi khi Worksheet được tính toán lại. Nó không tự động cập nhật
được. Để cập nhật nó bạn có thể viết Marco để sau một khỏang thời gian nào đó gọi
hàm NOW() để nó cập nhật.
Hàm TODAY:
Công dụng
Trả về ngày hiện tại trong hệ thống của bạn. Nếu định dạng ô là General trước khi hàm
nhập công thức, kết quả trả về ở định dạng ngày tháng.
Công thức
=TODAY()
Lưu ý!
Hàm NOW() trả về định dạng ngày tháng và thời gian hiện tại, Hàm TODAY() chỉ trả
về ngày tháng hiện tại.
Hàm DAY:
Công dụng
Trả về thứ tự của ngày từ chuỗi ngày tháng.
Công thức
=DAY(serial_number)
serial_number dạng chuỗi số tuần tự của ngày cần tìm. Ngày tháng này nên nhập
bằng hàm DATE hoặc kết quả trả về từ hàm khác.
Có thể bị lỗi nếu bạn nhập serial_number là một chuỗi dạng văn bản.
Ví dụ
Để dễ hiểu hơn, bạn hãy copy dữ liệu bên trong bảng bên dưới vào một trang bảng tính
mới và nhập công thức bên dưới vào.
A B C
1
Họ và tên Ngày sinh ĐTB
2
Nguyễn Nhật Minh 10/09/1990 7.8
3
Công thức Giải thích
=DAY(B2) Trả về 10
Hàm MONTH:
Công dụng
Trả về thứ tự của tháng từ giá trị kiểu ngày tháng.
Công thức
=MONTH(serial_number)
serial_number dạng chuỗi số tuần tự của tháng cần tìm. Ngày tháng này nên nhập
bằng hàm DATE hoặc kết quả trả về từ hàm khác.
Có thể bị lỗi nếu bạn nhập serial_number là một chuỗi dạng văn bản.
Ví dụ
Để dễ hiểu bạn có thể copy dữ liệu bên trong bảng sau vào một trang bảng tính mới và
nhập công thức bên dưới vào.
A B C
1
HỌ VÀ TÊN NGÀY SINH ĐTB
2
Nguyễn Nhật Minh 10/09/1990 7.8
3
Công thức Giải thích
=MONTH(B2) Trả về 09
Hàm YEAR:
Công dụng
Trả về năm của một giá trị hoặc chuỗi đại diện cho ngày tháng.
Công thức
=YEAR(serial_number)
serial_number dạng chuỗi hoặc số thập phân đại diện ngày tháng mà bạn cần tìm số
năm của nó. Giá trị này nên được nhập bằng hàm DATE hoặc là kết quả các công thức
hoặc hàm khác.
Có thể bị lỗi nếu bạn nhập serial_number là một chuỗi dạng văn bản.
Ví dụ
Để dễ hiểu bạn có thể copy dữ liệu bên trong bảng sau vào một trang bảng tính trắng
và nhập công thức bên dưới vào.
A B C
1 HỌ VÀ TÊN NGÀY SINH ĐTB
2 Nguyễn Nhật Minh 10/09/1990 7.8
3 Võ Tấn Tuấn 08/10/1991 5.6
Công thức Giải thích
=YEAR(B2) Trả về 1990.
=YEAR(B3)>YEAR(B2) Trả về TRUE.
Buổi 02, 03, 04: Các hàm thông dụng, sử dụng thường xuyên
- VLookup, HLookup
- Match, Index
- Các hàm thống kê đơn giản: Sum, CountA, Max, Min, Average
- Các hàm thống kê có điều kiện: CountIf, SumIf
- Hàm Round, Mod, Int
- Tham khảo các hàm thống kê database: DSum, DCount, DCountA, DMax, DMin, DAverage
Hàm VLOOKUP:
Công dụng
Dò tìm một giá trị ở cột đầu tiên bên trái của một bảng dữ liệu. Nếu tìm thấy sẽ trả về
giá trị ở cùng trên dòng với giá trị tìm thấy trên cột mà bạn chỉ định. Hàm VLOOKUP
thường dùng để điền thông tin vào bảng dữ liệu từ bảng dữ liệu phụ.
VLOOKUP xuất phát từ vertical lookup : dò tìm theo phương đứng, hay theo cột.
Công thức
=VLOOKUP(lookup_value,table_array,row_index_num,range_lookup)
Viết cách khác:
=VLOOKUP(trị dò,bảng dò,cột chứa kết quả,cách dò)
lookup_value: là tìm một giá trị dùng để tìm kiếm, nó có thể là một giá trị, một tham
chiếu hay một chuỗi ký tự.
table_array là vùng chứa dữ liệu cần tìm. Đây là bảng dữ liệu phụ có nội dung thường
cố định, bao quát để bạn lấy dữ liệu.
Các giá trị ở cột đầu tiên có thể là giá trị số, chuỗi ký tự, hoặc logic.
Nếu range_lookup là TRUE (range_lookup=1) thì các giá trị ở cột đầu tiên của
bảng dữ liệu phụ này phải được sắp xếp tăng dần từ -2,1,0,1,2,...,A-
Z,FALSE,TRUE. Nếu không hàm VLOOKUP sẽ trả giá trị không chuẩn xác.
Để sắp xếp các giá trị trong bảng dữ liệu từ trên xuống để hàm cho kết quả phù
hợp khi bạn dùng range_lookup là TRUE: Chọn vùng dữ liệu cần sắp xếp, kích vào
menu Data, Sort. Nhấn nút Options bên dưới, đánh dấu Soft top to bottom, rồi
nhấn OK. Kích chọn cột cần sắp xếp trong danh sách. Chọn Ascending, và nhấn
OK
row_index_num số thứ tự cột trên bảng dữ liệu phụ mà dữ liệu bạn cần lấy. Giá trị trả
về nằm trên cột bạn chỉ định này và ở dòng mà hàm tìm thấy giá trị dò tìm
lookup_value.
range_lookup là giá trị logic bạn chỉ định muốn VLOOKUP tìm kiếm chính xác hay là
tương đối. Nếu range_lookup là TRUE (range_lookup=1) hàm sẽ trả về kết quả tìm
kiếm tương đối. Nếu không tìm thấy kết quả chính xác, nó sẽ trả về một giá trị lớn nhất
mà nhỏ hơn giá trị tìm kiếm lookup_value. Nếu range_lookup là FALSE
(range_lookup=0) hàm tìm kiếm chính xác, nếu không có trả về lỗi #N/A!
Lưu ý!
Nếu lookup_value nhỏ hơn giá trị nhỏ nhất trong cột đầu tiên của bảng dữ liệu phụ,
VLOOKUP trả về lỗi #N/A!.
Khi xuất hiện lỗi #N/A! bạn có thể mắc lỗi nhập dư một khoảng trống ở phía sau giá trị
dò tìm hoặc trong bảng dữ liệu, kể cả chính và phụ.
Khi dùng hàm VLOOKUP để điền dữ liệu cho một bảng dữ liệu thì trong công thức cần
phải tạo địa chỉ tuyệt đối cho bảng dữ liệu phụ table_array để công thức đúng cho các
hàng còn lại khi bạn copy công thức xuống các ô bên dưới.
Ví dụ
Để dễ hiểu hơn, bạn hãy copy dữ liệu bên trong bảng dưới và nhập các công thức sau vào
ô trống bất kỳ trong bảng tính.
A B C D E
1 DANH MỤC HÀNG HÓA NHẬP KHẨU THÁNG 12
2 STT Mã hàng Tên hàng Ngày nhập Số lượng
3 1 HDD ? 01/12/2006 20
4 2 CPU ? 03/12/2006 50
5 3 CDW ? 05/12/2006 70
Copy công thức xuống các ô còn lại. Lưu ý địa chỉ vùng ô của bảng dữ liệu phụ phải là địa
chỉ tuyệt đối để khi copy công thức hàm VLookup mới đúng cho các ô tiếp theo.
Hàm HLOOKUP:
Công dụng
Dò tìm một giá trị ở dòng đầu tiên của một bảng dữ liệu. Nếu tìm thấy sẽ trả về giá trị ở
cùng trên cột với giá trị tìm thấy trên hàng mà bạn chỉ định. Hàm HLOOKUP thường
dùng để điền thông tin vào bảng dữ liệu từ bảng dữ liệu phụ.
HLOOKUP xuất phát từ horizontal lookup : dò tìm theo phương ngang, hay theo
dòng.
Công thức
=HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)
Viết cách khác:
=HLOOKUP(trị dò,bảng dò,dòng chứa kết quả,cách dò)
lookup_value: là tìm một giá trị dùng để tìm kiếm, nó có thể là một giá trị, một tham
chiếu hay một chuỗi ký tự.
table_array là vùng chứa dữ liệu cần tìm. Đây là bảng dữ liệu phụ có nội dung thường
cố định, bao quát để bạn lấy dữ liệu.
Các giá trị ở dòng đầu tiên có thể là giá trị số, chuỗi ký tự, hoặc logic.
Nếu range_lookup là TRUE thì các giá trị ở dòng đầu tiên của bảng dữ liệu phụ
này phải được sắp xếp tăng dần từ -2,1,0,1,2,...,A-Z,FALSE,TRUE. Nếu không
hàm HLOOKUP sẽ trả giá trị không chuẩn xác.
Để sắp xếp các giá trị trong bảng dữ liệu từ trái qua phải để hàm cho kết quả
phù hợp khi bạn dùng range_lookup là TRUE: Chọn vùng dữ liệu cần sắp xếp,
kích vào menu Data, Sort. Nhấn nút Options bên dưới, đánh dấu Soft left to
right, rồi nhấn OK. Kích chọn dòng cần sắp xếp trong danh sách. Chọn
Ascending, và nhấn OK
row_index_num số thứ tự dòng trên bảng dữ liệu phụ mà dữ liệu bạn cần lấy. Giá trị
trả về nằm trên dòng bạn chỉ định này và ở cột mà hàm tìm thấy giá trị dò tìm
lookup_value.
range_lookup là giá trị logic bạn chỉ định muốn HLOOKUP tìm kiếm chính xác hay là
tương đối. Nếu range_lookup là TRUE hàm sẽ trả về kết quả tìm kiếm tương đối. Nếu
không tìm thấy kết quả chính xác, nó sẽ trả về một giá trị lớn nhất mà nhỏ hơn giá trị
tìm kiếm lookup_value. Nếu range_lookup là FALSE hàm tìm kiếm chính xác, nếu không
có trả về lỗi #N/A!
Lưu ý!
Nếu lookup_value nhỏ hơn giá trị nhỏ nhất trong dòng đầu tiên của bảng dữ liệu phụ,
HLOOKUP trả về lỗi #N/A!.
Khi xuất hiện lỗi #N/A! bạn có thể mắc lỗi nhập dư một khoảng trống ở phía sau giá trị
dò tìm hoặc trong bảng dữ liệu, kể cả chính và phụ.
Khi dùng hàm HLOOKUP để điền dữ liệu cho một bảng dữ liệu thì trong công thức cần
phải tạo địa chỉ tuyệt đối cho bảng dữ liệu phụ table_array để công thức đúng cho các
hàng còn lại khi bạn copy công thức xuống các ô bên dưới.
Ví dụ
Để dễ hiểu hơn, bạn hãy nhập các công thức sau vào ô trống bất kỳ trong bảng tính.
A B C D E
1 DANH MỤC HÀNG HÓA NHẬP KHẨU THÁNG 12
2 STT Mã hàng Thuế Ngày nhập Số lượng
3 1 HDD ? 01/12/2006 20
4 2 CPU ? 03/12/2006 50
5 3 CDR ? 05/12/2006 70
Copy công thức xuống các ô còn lại. Lưu ý địa chỉ vùng ô của bảng dữ liệu phụ phải là địa chỉ
tuyệt đối để khi copy công thức hàm HLookup mới đúng cho các ô tiếp theo.
Hàm MATCH:
Công dụng
Trả về vị trí (chỉ mục) của một giá trị từ một dãy giá trị.
Công thức
=MATCH(lookup_value, lookup_array,match_type)
Viết cách khác:
=MATCH(trị dò,dãy dò,cách dò)
Lưu ý!
Nếu không tìm thấy giá trị cần tìm trong bảng giá trị, MATCH trả về lỗi #N/A.
Nếu match_type = 0, và giá trị cần tìm là ký tự, thì bạn có thể dùng dấu sao (*) để đại
diện cho nhiều ký tự, dùng dấu hỏi (?) để đại diện cho ký tự tại vị trí mà bạn đặt nó.
Hàm INDEX
Trả về một giá trị hoặc một tham chiếu tới một giá trị của một bảng (hoặc một mảng).
Hàm INDEX() có hai dạng: dạng MẢNG và dạng THAM CHIẾU. Dạng mảng luôn luôn trả về
giá trị hoặc mảng các giá trị; Còn dạng tham chiếu luôn luôn trả về kết quả là một tham chiếu.
Nếu array có nhiều hơn một dòng hoặc nhiều hơn một cột, và chỉ có hoặc là row_num hoặc là
column_num được sử dụng, INDEX() sẽ trả về toàn bộ dòng hay cột của array
row_num : Dòng trong array để lấy giá trị trả về. Nếu bỏ qua row_num thì buộc phải có column_num.
column_num : Cột trong array để lấy giá trị trả về. Nếu bỏ qua column_num thì buộc phải có row_num.
Lưu ý:
Nếu hai đối số column_num và row_num đều sử dụng, INDEX() sẽ trả về giá trị của ô là giao
điểm của column_num và row_num.
Nếu đặt row_num = 0, INDEX() sẽ trả về một mảng các giá trị là toàn bộ cột; và ngược lại, nếu
đặt column_num = 0, INDEX() sẽ trả về một mảng các giá trị là toàn bộ dòng.
Để kết quả trả về là các giá trị dưới dạng mảng, cần nhập INDEX() theo dạng công thức mảng,
mảng ngang cho dòng và mảng đứng cho cột.
column_num và row_num phải chỉ tới một ô trong mảng, nếu không, INDEX() sẽ báo lỗi #REF!
Ví dụ:
Nếu đang nhập một dãy ô gồm nhiều phần rời rạc cho tham chiếu, cần đặt dãy đó trong cặp dấu ngoặc
đơn.
Nếu mỗi vùng trong tham chiếu chỉ có một dòng hoặc một cột, đối số row_num hoặc column_num là tùy
chọn, theo thứ tự này. Ví dụ, đối với tham chiếu chỉ gồm một dòng, dùng cú pháp: INDEX(reference,
,column_num)
Lưu ý:
Sau khi reference và area_num đã chọn một dãy riêng biệt, row_num và column_num đã chọn ô
riêng biệt: row_num 1 là dòng thứ nhất trong dãy, column_num 1 là cột thứ nhất trong dãy, v.v...
tham chiếu được trả về bởi INDEX() là giao của dòng và cột.
Nếu đặt row_num = 0, INDEX() sẽ trả về tham chiếu cho toàn bộ cột; và ngược lại, nếu đặt
column_num = 0, INDEX() sẽ trả về tham chiếu cho toàn bộ dòng.
column_num, row_num và area_num phải chỉ tới một ô bên trong tham chiếu, nếu không,
INDEX() sẽ báo lỗi #REF! Nếu bỏ qua column_num và row_num, INDEX() sẽ trả về một vùng
trong tham chiếu, được chỉ định bởi area_num.
Kết quả của INDEX() là một tham chiếu, nhưng tùy thuộc vào công thức sử dụng mà giá trị của
INDEX() sẽ được sử dụng dưới dạng một tham chiếu hay một giá trị.
Ví dụ:
Hàm SUM:
Công dụng
Tính tổng tất cả các số trong dãy số.
Công thức
=SUM(number1,number2,....)
Hàm COUNTA:
Công dụng
Đếm số ô có dữ liệu (không phải là ô rỗng) trong vùng tham chiếu.
Công thức
=COUNTA(value1,value2,...)
Hàm MAX:
Công dụng
Trả về giá trị lớn nhất của dãy số.
Công thức
=MAX(number1,number2,...)
Hàm MIN:
Công dụng
Trả về giá trị nhỏ nhất của dãy số.
Công thức
=MIN(number1,number2,...)
hàm MINA.
Nếu các đối số không phải là số, hàm trả về 0.
Ví dụ
Để dễ hiểu hơn, bạn hãy copy dữ liệu bên trong bảng bên dưới vào một trang bảng tính
mới và nhập công thức bên dưới vào.
A B C D E F
1 BẢNG ĐIỂM TỔNG KẾT
2 STT Họ Tên Ngày sinh ĐTB Xếp loại
3
4 1 Nguyễn Văn Ánh 01/01/1990 6.7
5 2 Lê Văn Bình 10/05/1991 5.6
6 3 Nguyễn Hữu Chánh 06/05/1990 4.5
7
8 4 Phạm Hùng Dũng 02/07/1990 7.5
9 5 Huỳnh Tấn Dương 06/04/1991 8.0
10 6 Võ Thị Thu Hương 03/08/1990 6.5
11 7 Trần Thị Kim Kiều 08/12/1990 6.5
8 Võ Thị Thu Loan 06/11/1991 6.2
12
Hàm AVERAGE:
Công dụng
Tính trung bình cộng của các đối số.
Công thức
=AVERAGE(number1,number2,...)
Hàm COUNTIF:
Đếm số lượng các ô trong một vùng thỏa một điều kiện cho trước.
Range : Dãy các ô để đếm, có thể là ô chứa số, text, tên, mảng, hay tham chiếu đến các ô chứa số. Ô rỗng
sẽ được bỏ qua.
Criteria : Điều kiện để đếm. Có thể ở dạng số, biểu thức, hoặc text. Ví dụ, criteria có thể là 32, "32", ">
32", hoặc "apple", v.v...
Lưu ý:
Có thể dùng các ký tự đại diện trong điều kiện: dấu ? đại diện cho một ký tự, dấu * đại diện cho
nhiều ký tự (nếu như điều kiện là tìm những dấu ? hoặc *, thì gõ thêm dấu ~ ở trước dấu ? hay *)
Khi điều kiện để đếm là những ký tự, COUNTIF() không phân biệt chữ thường hay chữ hoa.
Hàm SUMIF:
Tính tổng các ô trong một vùng thỏa một điều kiện cho trước.
Range : Dãy các ô để tính tổng, có thể là ô chứa số, tên, mảng, hay tham chiếu đến các ô chứa số. Ô rỗng
và ô chứa giá trị text sẽ được bỏ qua.
Criteria : Điều kiện để tính tổng. Có thể ở dạng số, biểu thức, hoặc text. Ví dụ, criteria có thể là 32, "32",
"> 32", hoặc "apple", v.v...
Sum_range : Là vùng thực sự để tính tổng. Nếu bỏ qua, Excel sẽ coi như sum_range = range.
Lưu ý:
Sum_range không nhất thiết phải cùng kích thước với range. Vùng thực sự để tính tổng được xác
định bằng ô đầu tiên phía trên bên trái của sum_range, và bao gồm thêm những ô tương ứng với
kích thước của range. Ví dụ:
- Nếu Range là A1:A5, Sum_range là B1:B5, thì vùng thực sự để tính tổng là B1:B5
- Nếu Range là A1:A5, Sum_range là B1:B3, thì vùng thực sự để tính tổng là B1:B5
- Nếu Range là A1:B4, Sum_range là C1:D4, thì vùng thực sự để tính tổng là C1:D4
- Nếu Range là A1:B4, Sum_range là C1:D2, thì vùng thực sự để tính tổng là C1:D4
Có thể dùng các ký tự đại diện trong điều kiện: dấu ? đại diện cho một ký tự, dấu * đại diện cho
nhiều ký tự (nếu như điều kiện là tìm những dấu ? hoặc *, thì gõ thêm dấu ~ ở trước dấu ? hay *).
Khi điều kiện để tính tổng là những ký tự, SUMIF() không phân biệt chữ thường hay chữ hoa.
Tính tổng của những huê hồng mà có doanh thu > 160,000 ?
= SUMIF(A2:A5, ">160000", B2:B5) = 63,000
Tính tổng của những doanh thu > 160,000 ?
= SUMIF(A2:A5, ">160000") = 900,000
Tính tổng của những huê hồng mà có doanh thu = 300,000 ?
= SUMIF(A2:A5, "=300000", B2:B3) = 21,000
Hàm DSUM:
Cộng các số trong một cột của một danh sách hay của một cơ sở dữ liệu, theo một điều kiện được
chỉ định.
Hàm DCOUNT:
Đếm các ô chứa số liệu trong một cột của danh sách hay các trị của một cơ sở dữ liệu, theo một
điều kiện được chỉ định.
Trong hàm DCOUNT(), đối số field là tùy chọn. Nếu bỏ qua đối số này thì DCOUNT() sẽ đếm tất
cả các mẩu tin trong cơ sở dữ liệu theo điều kiện được chỉ định.
Hàm DCOUNTA:
Đếm các ô "không rỗng" trong một cột của danh sách hay các trị của một cơ sở dữ liệu, theo một
điều kiện được chỉ định.
Hàm DMAX:
Trả về trị lớn nhất trong một cột của một danh sách hay của một cơ sở dữ liệu, theo một điều kiện
được chỉ định.
Hàm DMIN:
Trả về trị nhỏ nhất trong một cột của một danh sách hay của một cơ sở dữ liệu, theo một điều kiện
được chỉ định.
Hàm DAVERAGE:
Tính trung bình các giá trị trong một cột của danh sách hay các trị của một cơ sở dữ liệu, theo một
điều kiện được chỉ định.
Hàm ROUND:
Làm tròn giá trị số đến số chỉ định.
num_digits > 0 : làm tròn đến số thập phân được chỉ định
num_digits < 0 : làm tròn đến phần nguyên được chỉ định
Hàm MOD:
number: Số bị chia
divisor: Số chia
Ví dụ: MOD(24, 10) = 4 (24 chia 10 được 2, dư 4)
Hai hàm này gần như giống nhau nếu như bạn muốn làm tròn một số thành một số nguyên.
Cú pháp:
= INT(number)
= TRUNC(number [, num_digits])
num_digits > 0 : nếu number là một số thập phân, thì num_digits chỉ ra số con số thập phân mà
bạn muốn giữ lại (sau dấu phẩy)
num_digits = 0 hoặc không nhập: cắt bỏ hết phần thập phân của number (nếu có)
num_digits < 0 : làm tròn number thành một số nguyên và làm tròn number sang trái thành một
bội số của 10 (xem thêm ở ví dụ)
Đối với số dương, hàm INT() và TRUNC() cho kết quả giống nhau (num_digits của TRUNC() = 0
hoặc không có), nhưng đối với số âm thì hai hàm này sẽ cho kết quả hoàn toàn khác nhau.
Ví dụ:
INT( 123.456) = 123 | TRUNC( 123.456) = 123
Buổi 07: Trang trí định dạng bảng tính, dữ liệu và bảo vệ dữ liệu
- Auto Format (Format/Auto Format…)
- Style (Format/Style…)
- Condition Formatting (Format/Condition Formatting…)
- Paste Special (Edit/ Paste Special…)
- Protect Sheet, Protect Workbook (Tools/Protection)
Ta phải chuyển chế độ an toàn xuống mức trung bình hoặc thấp.
Menu Tool Chọn Macros chọn Security chọn mức Medium (trung bình) hoặc low
(thấp)
Macro là gì?
Macro là tập hợp một số các dòng lệnh.
Bạn sử dụng chức năng Macro Recorder là một ý tưởng hay để từng bước thực hiện các công việc, nhất là
lúc đầu tìm hiểu về macro. Excel đã hỗ trợ ghi lại (recorder) các công việc bạn đã thực hiện và chỉ không
ghi lại khi bạn dừng ghi.
Ví dụ, một ô (cell) được chọn (selected) ở hiện tại sẽ không được ghi cho đến khi bạn thực hiện công việc
trong ô đó. Ngoài ra, Excel cũng không ghi lại các công việc khi đang sử dụng bảng điều khiển (dialog
box) cho đến khi bạn ấn nút OK trên bảng điều khiển đó.
Trong suốt thời gian ghi, macro đã được lưu lại với tên xác định trong module, module được tạo ra trong
quá trình ghi và là một phần của Workbook. Marco được ghi lại có thể được lưu trong This Workbook
(Workbook hiện hành), New Workbook (Workbook mới) hoặc trong Personal Macro Workbook (những
macro sở hữu riêng). Những lệnh (code) được lưu trong Personal.xls, những macro sở hữu riêng đều sử
dụng được khi bạn mở Excel ra. Các macro trong các Workbook khác nhau có thể sử dụng bất cứ lúc nào
khi các Workbook đang mở (kể cả sử dụng chúng từ Workbook khác).
Ghi macro trong trường hợp sử dụng tham chiếu địa chỉ ô tuyệt đối:
Bạn hãy ghi lại macro tại địa chỉ ô B3, B4 trình bày tên cty và địa chỉ như sau:
Đặc điểm là ký tự đầu tiên là của tên macro phải là chữ. Còn các ký tự khác có thể là chữ, số hoặc ký tự
gạch dưới (ký tự _). Các ký tự đặc biệt như khoảng trống (Space), @, %, $, #, &, ... không được chấp
nhận, bạn có thể dùng ký tự _ để tách tên trong macro.
Như vậy, macro có tên Ghi_Tieng_Viet đã được ghi lại. Những ô mà bạn đã sử dụng trong quá trình ghi
được thể hiện dưới dạng địa chỉ tuyệt đối. Vì vậy, những ô trong Worksheet đó sẽ thực hiện khi bạn cho
chạy macro, tên và địa chỉ cty sẽ được tạo ra đúng vị trí ô trong Worksheet.
Ví dụ bạn gõ từ "Công Ty CP ĐT & PT Viễn Thông Miền Tây" (font Time New Roman) ngoài bảng
tính và record thì ghi trong module như thế này:
ActiveCell.FormulaR1C1 = "Công Ty CP ĐT & PT Vi?n Thông Mi?n Tây"
(Để xem mã lệnh nhấn phím tắt Alt+F11 để mở VBA sẽ thấy mã trong module1)
2 ký tự ễ và ề bị chuyển thành ? vì 2 ký tự đó có mã >255 nên không nhập được trong cửa sổ soạn thảo.
Đa số các ký tự riêng của tiếng Việt đều nằm trong nhóm này.
Để khắc phục, bạn phải đi đường vòng. Dùng hàm ChrW(mã) để chuyển mã thành ký tự. Biết ễ có mã
7877, ề có mã 7873, câu trên viết lại theo kiểu ghép chuỗi:
ActiveCell.FormulaR1C1 = "Công ty CP ÐT & PT Vi" & ChrW(7877) & "n Thông Mi" &
ChrW(7873) & "n Tây"
Để viết hàm này ta mở VBA ra rồi insert thêm module (Vào Menu Insert/Module…) vào rồi chèn đoạn
code bên dưới vào là ta có thể dùng được.
Mã:
Function CodeUni(text As String) As Integer
CodeUni = AscW(text)
End Function
Chạy macro khi sử dụng bảng điều khiển macro (Macro dialog box)
Ghi chú: Nếu bạn muốn huỷ quá trình chạy macro trước khi kết thúc, ấn vào nút Esc.
Ghi macro trong trường hợp sử dụng tham chiếu địa chỉ ô tuyệt đối:
8. Trong thanh Stop Recording, ấn vào nút Relative Reference cho sáng lên (ghi ở chế độ tương đối).
Phép gán:
Cú pháp: <Tên_Biến> = <Biểu thức hoặc giá trị>
Ý nghĩa: Lệnh gán lấy giá trị bến phải đặt vào bên trái. Biến sẽ nhận được giá trị mới.
Ví dụ: x= 100 : gán giá trị 100 vào biến x
Cú pháp 2:
IF điều kiện Then
Lệnh 1
Lệnh 2
Lệnh …
End IF
Ý nghĩa:
Nếu điều kiện có giá trị True thì thực hiện các lệnh.
Lưu ý:
Các lệnh phải viết xuống dòng bên dưới dòng IF … Then.
Kết thúc cú pháp phải có End IF để báo hiệu kết thúc.
Cú pháp 3:
IF điều kiện Then
Lệnh 1
Lệnh 2
Lệnh …
Else
Lệnh A
Lệnh B
Lệnh …
End IF
Ý nghĩa:
Nếu điều kiện có giá trị True thì thực hiện các lệnh 1, lệnh 2, …
Ngược lại (điều kiện là False) thì thực hiện các lệnh A, lệnh B, …
Lưu ý:
Các lệnh phải viết xuống dòng bên dưới dòng IF … Then và dòng Else
Kết thúc cú pháp phải có End IF để báo hiệu kết thúc.
Cú pháp 4:
IF điều kiện 1 Then
Lệnh 1
Lệnh 2
Lệnh …
ElseIf điều kiện 2 Then
Lệnh A
Lệnh B
Lệnh …
Else
Lệnh X
Lệnh Y
Lệnh …
End IF
Ý nghĩa:
Cú pháp này dùng để giải quyết bài toán có nhiều điều kiện.
Nếu điều kiện 1 có giá trị True thì thực hiện các lệnh 1, lệnh 2, …
Ngược lại (điều kiện 1 là False) nếu điều kiện 2 có giá trị True thì thực hiện các lệnh A, lệnh
B, …
Ngược lại (điều kiện cuối cùng có giá trị False) thì thực hiện các lệnh X, lệnh Y, …
Lưu ý:
Các lệnh phải viết xuống dòng bên dưới dòng IF … Then và dòng Else
Kết thúc cú pháp phải có End IF để báo hiệu kết thúc.
Cú pháp hàm:
Tên_Hàm(các_đối_số)
Ví dụ:
Left(“Hello”, 2): Đầu vào của hàm Left là chuỗi “Hello” và số 2. Đầu ra giá trị trả về là “He”.
Left(S,n): S là một biến chứa chuỗi, n là một biến chứa một giá trị số. Chúng là các giá trị đầu vào.
End Function
End Function
Ví dụ 2: Viết hàm Max2So tiếp nhận 2 đối số. Hàm trả về giá trị lớn nhất.
Ví dụ 2: Viết hàm Max3So nhận đầu vào là 3 giá trị số thực, giá trị trả về của hàm trả về là giá trị lớn
nhất trong 3 đối số.
Public Function Max3So(a As Single, b As Single, c As Single) As Single
Dim max As Single
If a > b Then
If a > c Then
max = a
Else
max = c
End If
Else
If b > c Then
max = b
Else
max = c
End If
End If
Max2So = max
End Function
Cách tạo add-in hàm tính thế thu nhập cá nhân (Hàm này ta có thể tự viết hoặc sưu tầm trên mạng về để
dùng cho mục đích riêng).
Để các hàm VB (user-defined) có thể dùng chung cho nhiều tập tin Excel, bạn chỉ cần gom chúng lại
thành tập tin .XLA (Microsoft Excel Add-In). Cách làm như sau:
1. Khởi động Excel, tạo một workbook mới. Chọn Tools > Macro > Visual Basic Editor (Alt+F11) để mở
cửa sổ soạn thảo VBA. Trong cửa sổ Project Explorer (nếu không thấy thì chọn View > Project Explorer),
chọn VBAProject (Book1). Chọn Insert > Module để thêm một module vào workbook.
2. Gõ nội dung hàm CodeUni của bạn vào module mới tạo.
3. Chọn Tools > Macro > Macros để hiển thị hộp thoại Macro. Gõ tên hàm CodeUni vào ô Macro name,
bấm Options để mở tiếp hộp thoại Macro Options, gõ nội dung mô tả hàm vào ô Description, bấm OK để
đóng hộp thoại Macro Options, bấm Cancel để đóng hộp thoại Macro.
4. Ghi workbook lên đĩa thành tập tin CodeUni.xla. Lưu ý: bạn phải đặt tập tin này đúng chỗ để Excel tự
động nạp nó khi khởi động. Ví dụ, đối với Excel XP trên Windows XP, chọn thư mục C:\Documents
and Settings\UserName\Application Data\Microsoft\AddIns; Đối với Vista thì:
UserName\AppData\Roaming\ Microsoft\AddIns. Đóng Excel mà không cần ghi lại các thay đổi trên
Book1.
Ghi chú: Có thể copy file CodeUni.xla vào một thư mục bất kỳ rồi khi browse thì chỉ đường dẫn đến
vị trí của file CodeUni.xla
5. Khởi động lại Excel, cài đặt add-in vừa tạo cho Excel bằng cách chọn Tools > Add-Ins, chọn tên add-in
cần cài đặt trong danh sách Add-Ins available, rồi bấm OK.
Từ đây trở về sau, mỗi lần mở Excel, bạn đương nhiên sử dụng được hàm CodeUni() trong add-in
CodeUni.xla.
Như đã biết Excel có 1 chức năng khóa 1 sheet bất kỳ bằng passwords( menu Tool/ Option/
Protection/ Protect sheet)
Khi 1 sheet đã bị khóa, bạn ko thể modify( chèn thêm nội dung, chèn cột, địnnh dạng ô...). Thế
nhưng bạn quên passwords thì sao? Đây là giải pháp:
1. Nhấn chuột phải vào tên sheet cần gỡ bỏ passwords, chọn View Code.....sẽ hiện ra 1 của sổ
nhập liệu.
2. Copy đoan mã bên dưới và paste vào ô nhập liệu trên.
Sub PasswordBreaker()
ActiveWorkbook.Sheets(1).Select
Range("a1").FormulaR1C1 = Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & _
Chr(i3) & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub
Khi làm việc với một tập tin Excel có nhiều Sheet, các bạn sẽ gặp nhiều khó khăn khi di chuyển giữa các
bảng tính này.
Giải pháp:
Chúng ta sẽ tạo ra một Sheet mới với tên là MụcLục. Sau đó thêm một đoạn mã vào Sheet này để tạo mục
lục tự động.
Các bước thực hiện:
1. Trở về Sheet đầu tiên. Vào Insert > Worksheet. Đặt tên của Sheet này lại thành MụcLục hay để nguyên
tùy thích.
2. Right-click lên thẻ của Sheet này chọn View Code.
3. Copy tất cả đoạn mã này vào:
Để tính chính xác số tháng và năm làm việc thì ta phải sử dụng hàm sau:
Ví dụ 1: công thức sau đây tính số ngày từ hôm nay đến lễ Giáng Sinh:
Hàm DATEDIF() có thể đơn giản hóa đáng kể công thức tính tuổi của một người. Nếu ngày tháng năm
sinh của một người nằm trong một ô có tên là Birthday, công thức sau đây tính tuổi chính xác của người
đó:
Ví dụ 2: Tính thâm niên của một người bắt đầu làm việc từ 27/07/2006 đến hiện tại
Cách 1: = YEAR(TODAY()) – YEAR(“27/07/2006”) = 3 (Tính bằng cách này thì nó tự làm tròn là 3
năm nhưng thực tế còn thiếu 4 tháng mới đủ 3 năm)