Excel Hacks
Các tuyệt chiêu trong Excel 1 Nguyên bản: EXCEL HACKS Tác giả: David – Raina Hawley Lược dịch và bổ sung: Ptm0412 – Ttphong2007 – BNTT
2
Các tuyệt chiêu trong Excel
PHẦN 1: Chương 1 và Chương 2 Chương 1. GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH ................................ 4 1.
Tùy biến cửa sổ làm việc của bảng tính ...............................................................................................10
2.
Nhập dữ liệu đồng thời vào nhiều Sheet.............................................................................................13
3.
Ngăn chận người sử dụng thực hiện một số hành động nào đó nhất định ........................16
4.
Ngăn chặn các nhắc nhở không cần thiết...........................................................................................20
5.
Ẩn Sheet sao cho người khác không thể dùng lệnh Unhide để hiện ra ................................23
6.
Tự thiết kế một bảng tính mẫu (template) .........................................................................................24
7.
Tạo chỉ mục cho các Sheet trong Workbook .....................................................................................28
8.
Giới hạn vùng cuộn của bảng tính .........................................................................................................32
9.
Khóa và bảo vệ những ô có chứa công thức ......................................................................................35
10.
Sử dụng định dạng theo điều kiện để tìm dữ liệu trùng ..............................................................39
11.
Tìm dữ liệu xuất hiện hai hoặc nhiều lần bằng công cụ Conditional Formating...............41
12.
Tạo riêng một thanh công cụ cho riêng một bảng tính cụ thể .................................................42
13.
Sao chép công thức giữ nguyên tham chiếu tương đối (giống như sao chép tham chiếu tuyệt đối) ...................................................................................................................................44
14.
Gỡ bỏ những liên kết ma ............................................................................................................................45
15.
Giảm kích thước file Excel bị phình to bất thường ..........................................................................47
16.
Cứu dữ liệu từ một bảng tính bị lỗi ........................................................................................................50
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
3
Chương 2. NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL ......................54 17.
Sử dụng Data Validation khi danh sách nguồn nằm trong một Sheet khác........................55
18.
Điều khiển Conditional Formating bằng checkbox ........................................................................57
19.
Đánh dấu những ô chứa công thức bằng Conditional Formatting .........................................60
20.
Đếm hoặc cộng những ô đã được định dạng có điều kiện .........................................................61
21.
Tô màu dòng xen kẽ .....................................................................................................................................64
22.
Tạo hiệu ứng 3D trong các bảng tính hay các ô ...............................................................................66
23.
Bật, tắt chức năng Conditional Formatting bằng một checkbox .............................................71
24.
Dùng nhiều List cho một Combobox ....................................................................................................72
25.
Tạo một list xác thực thay đổi theo sự lựa chọn từ một list khác ..............................................74
26.
Sử dụng chức năng thay thế (Replace) để gỡ bỏ các ký tự không mong muốn ................77
27.
Chuyển đổi con số dạng văn bản sang số thực ................................................................................78
28.
Trích xuất dữ liệu số trong một chuỗi bằng VBA .............................................................................79
29.
Tùy biến chú thích của ô bảng tính........................................................................................................82
30.
Sắp xếp theo thứ tự dựa theo nhiều hơn ba cột ..............................................................................85
31.
Sắp xếp ngẫu nhiên ......................................................................................................................................86
32.
Thao tác trên dữ liệu với Advanced Filter ............................................................................................87
33.
Tạo các định dạng số cho riêng bạn ......................................................................................................93
34.
Tăng thêm số lần Undo cho Excel...........................................................................................................99
35.
Tự tạo danh sách để fill ............................................................................................................................. 100
36.
Làm nổi các Subtotal của Excel ............................................................................................................. 102
37.
Chuyển đổi các hàm và công thức trong Excel thành giá trị ................................................... 105
38.
Thêm dữ liệu vào danh sách Validation một cách tự động ...................................................... 107
39.
Ngày tháng trong Excel ............................................................................................................................ 109
40.
Cho phép sử dụng tính năng Group and Outline trên bảng tính bị khoá ......................... 112
41.
Bẫy lỗi để trống dữ liệu ............................................................................................................................. 114
42.
Giảm danh sách xổ xuống của Validation sau khi chọn một ................................................... 116
43.
Thêm các danh sách có sẵn và cả danh sách tự tạo vào menu chuột phải ....................... 117
MỤC LỤC
4
Chương 1 GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
Trong quá trình thực hiện một bảng tính, chúng ta có thể mắc phải vô số lỗi, hoặc có thể mắc phải những sai lầm ngớ ngẩn, và thường không để ý tới những cái có thể giúp chúng ta xử lý bảng tính nhanh hơn, gọn gàng hơn... Trước khi nói đến các Tuyệt chiêu của Excel, xin nói sơ qua một chút về một số thủ thuật và quy tắc cơ bản, những điều sẽ giúp các bạn thực hiện những Tuyệt chiêu được nói đến trong các phần sau cách dễ dàng hơn. Excel là một phần mềm bảng tính rất mạnh, và bạn có thể làm được những điều không thể tin nổi với nó. Nhưng không may, có nhiều người thiết kế bảng tính của mình với quá nhiều sự "lo xa", cẩn thận quá mức cần thiết, và làm cho nó trở nên phức tạp hơn là nó đáng bị như vậy. Phần mở đầu này sẽ mách cho bạn một số thủ thuật và quy tắc mà nếu bạn làm theo, bạn sẽ thấy chúng rất hiệu quả.
Quy tắc 80/20 Có lẽ việc quan trọng nhất khi thực hiện một bảng tính là dành một thời gian để nghiên cứu, xem xét cách bố trí dữ liệu, tính trước những việc mình cần làm. Và đừng bao giờ nghĩ rằng sau khi hoàn thành, tôi sẽ không cần phải thêm vào đó các dữ liệu hoặc các công thức khác, vì bạn sẽ luôn làm ngược lại. Điều này có nghĩa rằng, bạn nên dành khoảng 80% thời gian để lên kế hoạch cho một bảng tính và khoảng 20% thời gian để thực hiện bảng tính đó.
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
5 Cho dù rằng, việc này có vẻ không cần thiết với những bảng tính nhỏ, nhưng bảo đảm rằng, nếu bạn quan tâm đến điều tôi vừa nói ở trên, thì về lâu về dài, bạn sẽ tránh được những cực nhọc khi phải cứ phải sửa đi sửa lại bảng tính của mình, và dễ dàng thực hiện được những bảng tính lớn sau khi đã dành cho nó một thời gian để lên kế hoạch thực hiện. Nên nhớ rằng, các bảng tính phải luôn mang lại cho người dùng những thông tin chính xác, chứ không phải là thông tin chỉ chính xác trong một trường hợp nào đó.
Những mẹo nhỏ về cấu trúc một bảng tính Một trong những lỗi mà chúng ta hay mắc phải khi tạo một bảng tính, là chúng ta không thiết lập và trình bày dữ liệu theo cái cách mà Excel và các tính năng của nó mong đợi. Sau đây là một số lỗi phổ biến chúng ta hay mắc phải khi thiết lập một bảng tính: – – – – –
Bố trí dữ liệu trong nhiều bảng tính (Workbook) khác nhau Bố trí dữ liệu trong nhiều trang tính (Worksheet) khác nhau Bố trí dữ liệu trong nhiều bảng (Table) khác nhau Có những hàng trống và cột trống trong khối dữ liệu (database) Bỏ trống những ô có dữ liệu giống nhau (cùng chung một ngày, cùng chung một đơn vị tính, v.v...)
Ba điểm đầu tiên trên đây chỉ muốn nói đến một điều: Bạn nên luôn luôn cố gắng để giữ các mối liên quan giữa các dữ liệu được liên tục trong cùng một bảng dữ liệu. Tôi đã thấy rất nhiều các bảng tính không được trình bày theo cái quy tắc rất đơn giản này, và chính vì vậy, các bảng tính đó không thể tận dụng được tối đa các tính năng mạnh mẽ của Excel như PivotTable, SubTotal... Bạn chỉ có thể sử dụng các tính năng này khi bạn gom hết dữ liệu của bạn vào trong một bảng thật đơn giản. Không phải ngẫu nhiên mà Excel có 1.048.567 hàng (65.536 hàng trong Excel 2003 trở về trước) mà lại chỉ có 16.384 cột (256 cột trong Excel 2003 trở về trước). Điều này có ý nói rằng, bạn nên thiết lập dữ liệu của mình với các tiêu đề cột nằm ở hàng trên cùng, và các dữ liệu có liên quan thì nằm liên tục ở bên dưới tiêu đề của nó. Nếu như bạn có những dữ liệu được lặp lại hai lần hoặc nhiều lần trong các hàng của cùng một cột (các ngày tháng, các loại đơn vị tính chẳng hạn), bạn hãy chống lại sự cám dỗ bỏ trống các ô đó. Hãy cố gắng sắp xếp (sort) dữ liệu của bạn bất cứ khi nào có thể. Excel có rất nhiều những công cụ để tìm kiếm và tham chiếu công thức, và một số không nhỏ trong đó, đòi hỏi dữ liệu phải được sắp xếp theo một thứ tự hợp lý. Việc phân loại cũng sẽ giúp ích đáng kể cho tốc độ xử lý của một số các hàm.
Những mẹo nhỏ khi định dạng Ngoài việc thiết kế cấu trúc của bảng tính cho hợp lý, việc định dạng cho nó cũng là một vấn đề cần bàn đến. Mặc dù một bảng tính nên được định dạng sao cho dễ đọc và dễ theo dõi, nhưng chúng ta ít khi nghĩ đến việc sử dụng thời gian cho có hiệu quả. Hãy luôn luôn định dạng thật đơn giản. Rất nhiều người lãng phí thời gian vào việc định dạng một bảng tính mặc dù không nhất thiết phải làm như vậy, và chính điều này làm ảnh hưởng đến hiệu quả công việc. Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
6 Việc thường xuyên áp dụng V d những định dạng phức tạp chho bảng tínhh còn làm cho c nó tăngg kíích thước, và v cho dù bảng tính củủa bạn có th hể trông giốống như mộtt tác phẩm nghệ thuật,, nhhưng nó lại có thể là một m nỗi sợ hãi h cho ngư ười khác. Một trong nhhững kiểu ph hối màu tốtt nhhất mà bạn nên n áp dụngg cho một bảng b tính, làà màu đen, màu m trắng vvà màu xám m. Một gợi ý nữ M ữa, là nên bỏ b trống vàài hàng đầu tiên ở trênn cùng (ít nhhất là 3 hàn ng). Nhữngg hààng này sẽẽ được dùnng cho nhữ ững tính năăng nâng cao c hơn vềề sau, chẳn ng hạn như ư A Advanced Fiilter, hoặc dùng d làm vùùng điều kiện cho các công thức xử lý dữ liệu (DSUM, DMAX, v.v...) Cũũng đừng quan q tâm đếến việc cannh lề cho dữ ữ liệu. Theoo mặc địnhh, Excel can nh phải choo nhhững dữ liệu kiểu số, và v canh trái cho những g dữ liệu kiểểu text. Và đó là điều tốt t nhất rồi,, đừ ừng thay đổổi nó. Nếu bạn b thay đổổi kiểu canh h lề, bạn sẽ có thể khônng xác định h được ngayy tứ ức khắc rằngg đó là dữ liiệu kiểu số hay h dữ liệu kiểu text; và v nó còn cóó thể gây nh hầm lẫn choo nggười khác khi k tham chhiếu đến mộột ô, vì nhiềều khi họ sẽẽ tưởng rằngg dữ liệu tro ong ô đó làà sốố, nhưng thậật ra nó là teext. Nếu bạnn thay đổi kiểu k canh lề mặc định, bbạn sẽ bị nh hức đầu vớii nóó sau này. Chỉ C có tiêu đề đ của bảngg tính là đượ ợc hưởng nggoại lệ mà thhôi. Chhỉ định dạnng các ô theeo kiểu textt khi thật sự ự cần thiết. Bởi vì tất ccả những dữ ữ liệu nhậpp vàào trong cácc ô đã được định dạng trước t theo kiểu k text sẽ bị chuyển tthành dữ liệệu kiểu text,, nggay cả khi bạn b nghĩ rằnng cái bạn nhập n vào là dữ liệu kiểểu số hay dữ ữ liệu kiểu ngày n tháng.. V tồi tệ hơnn nữa, bất kỳ Và k ô nào chhứa công thứ ức tham chiiếu đến một ô đã đượcc định dạngg thheo kiểu texxt, cũng sẽ bị b định dạngg thành kiểu u text. Nói chung, c bạn đâu có muố ốn những ô chhứa công thứ ức lại bị địnnh dạng theo kiểu text, phải khôngg. Trộn cáác ô (merge cells) cũngg là một vấn đề. Có C một sốố công thứ ức hoặc ma acro khôngg thể chạyy được với những ô đãã được trộn. Cho nêên, thay vìì trộn ô, bạn hãy dùng chứcc năng Ceenter acrosss selection, nằm trong Home H → Alignme ent, nhấn vào v cái mũii tên ở dư ưới cùng bên phải, sẽẽ mở ra hhộp thoại Format vớii tab Alignment đượcc chọn sẵn.. Bạn sử dụng thanh h trượt dọcc của khuung Horizontal để chọnn Center A Across Sele ection. Hoặc bạạn cũng có ó thể right-click rồii chọn Form mat Cells từ ừ shortcutt menu (Excel2003:: Format → Cells) hay nhấn n Ctrl+1. Hình 1 - Chọn Center Across Selection S thay vì v Merge Cells
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
7 Những mẹoo nhỏ khi dùng d công thức Một sai lầm rất lớn khi sử dụng công thức là cho M c nó tham m chiếu đếnn toàn bộ cáác cột trongg m mảng dữ liệuu. Điều nàyy làm cho Excel E phải kiểm k tra hànng ngàn ô, nnếu không nói n là hàngg triiệu, để chắcc chắn khônng bỏ sót mộột dữ liệu nàào. Ví dụ, giả sử V ử bạn có một mảng dữ liệu l từ A1 đến đ H1000, và bạn quyyết định sẽ dùng d nhữngg hààm tìm kiếm m của Exceel để trích raa những dữ ữ liệu cần thhiết. Bởi vì bạn còn ph hải bổ sungg thhêm dữ liệu vào mảng này, nên đểể chắc ăn, bạn b tạo tham m chiếu tronng công thứ ức đến toànn bộộ các hàng của c các cột trong mảngg này. Khi đó, đ tham chiiếu của bạn có thể sẽ làà A:H, hoặcc cụụ thể hơn, làà A1:H10488567, và bạạn nghĩ rằng g làm như vậy v thì bạn ssẽ không lo lắng gì khii thhêm dữ liệu vào trong mảng. m Đó là một thóói quen vô cùng tai hại mà bạn ph hải luôn tránnh xa nó. B Bởi nó sẽ làm m cho bảngg tínnh trở nên ì ạch, thậm chí là khônng chạy nổii. Bạn vẫn có thể loại bỏ những phần p khôngg cầần tham chiếu ra khỏi công c thức, mà m lại bảo đảm đ được những n dữ liệu mới thêm m vào sẽ tự ự độộng được cậập nhật tronng tham chiiếu của công g thức, bằnng cách dùngg Table (Lisst trong Excell 20003 trở về trư ước) hoặc sử ử dụng các Name N động.. Một vấn đề nữa M n thường xảy ra với những bảng g tính lớn, mà m cấu hìnhh máy lại nh hỏ, là Excell tínnh toán rất chậm khi dữ d liệu đượcc cập nhật. Để giải quuyết vấn đề này, bạn th hường đượcc khhuyên là hããy chuyển đổi đ chế độ tính toán củ ủa Excel thhành dạng M Manual: Nh hấn vào nútt Offfice ở góc trái phía trrên của bản ng tính, rồi chọn Excel Options → Formulas (Excel2003:: Toools → Optionns → Calculaations), rồi ch họn Manual:
H 2 - Chọn Manual Hình M Caculatioon với Excel 20007
Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
8
H 3 - Chọn Manual Hình M Caculatioon với Excel 20003 Tuuy nhiên, lờ ời khuyên đó đ thì khôngg hay cho lắm, l mà chỉỉ là mang tíính đối phó ó. Một bảngg tínnh thì bao giờ g cũng có những côngg thức tính toán, nếu bạn đang chạạy một bảng g tính trongg chhế độ tính tooán Manuall, có thể bạnn sẽ chỉ có được đ nhữngg thông tin ccũ mèm, ch hưa hề đượcc cậập nhật. Nếuu muốn có được thôngg tin chính xác, bạn phhải nhấn F9 9. Nhưng, ch hắc chắn làà khhông phải lúúc nào bạn cũng c nhớ điiều này! Vậy bạn thử cân nhắc xeem: Nếu nhhư cần thắng V g chân bị kẹẹt và làm chho chiếc xe hơi h của bạnn chhạy chậm lạại, bạn sẽ sửa s lại cần thắng chân n, hay là gỡ ỡ bỏ cái thắắng chân rồ ồi tin tưởngg hooàn toàn vàào cái thắngg tay? Nghĩĩa là, khi bảng tính củủa bạn chạyy chậm, bạn n sẽ sửa lạii côông thức chho nó chạy nhanh n hơn,, hay là đặt nó vào chếế độ tính tooán bằng tay y rồi cứ thếế m làm tiếp?? Hầu như chúng tôi không mà k bao giờ g làm điềều này, như ưng rất nhiềều người đãã khhông ngần ngại n đặt bảảng tính củaa họ trong chế c độ tínhh toán Manuual. Nếu nh hư bạn thấyy rằằng cần phảii đặt bảng tính của mìnnh trong chếế độ tính toáán Manual tthì mới làm m việc được,, bạạn nên suy nghĩ n đến việệc thiết kế lại l bảng tính h. Công thức mảng m là một trong nhữnng nguyên nhân n của vấấn đề trên. C Chúng là một lựa chọnn tốốt khi tham chiếu đến những ô riêêng lẻ. Như ưng nếu bạnn dùng chúúng để tham m chiếu đếnn nhhững dãy dữ ữ liệu lớn, thì t hãy sử dụụng chúng càng c ít càngg tốt. Khi cóó một số lượ ợng lớn cácc m mảng tham chiếu đến một m dãy dữ liiệu lớn, hiệu u suất của bảng b tính sẽẽ bị ảnh hưở ởng, đôi khii nóó dừng hẳn luôn, và bạạn bắt buộc phải p dùng chế c độ tính toán t bằng taay. Exxcel có nhiềều hàm chuuyên xử lý những n dữ liệệu lớn thay cho công thhức mảng, mà m sẽ đượcc đềề cập đến trong chiêu thhứ 79: Tránnh lỗi #VALUE! khi tínhh tổng (SUM M) hoặc đếm m (COUNT)) cáác ô. Ngoài ra, trong Excel E Help có c một số ví v dụ rất haay sẽ giúp bbạn cách để dùng côngg thhức trên nhữ ững bảng dữ ữ liệu lớn đểể trích ra kếết quả dựa thheo những ttiêu chuẩn.
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
9 Hoặc bạn có thể sử dụng PivotTable, sẽ được đề cập đến trong phần thứ 4 của loạt bài này. Mặc dù PivotTable thì có vẻ phức tạp khi bạn sử dụng nó lần đầu tiên, nhưng chúng tôi thành thật khuyên bạn hãy học cách sử dụng nó. Một khi bạn đã làm chủ được PivotTable, ngày nào đó bạn sẽ tự hỏi rằng làm sao tôi có thể sống mà không có PivotTable! Trước khi kết thúc phần mở đầu, xin nói điều này: Nếu bạn chẳng nhớ được gì (vì tôi nói nhiều quá), bạn chỉ cần nhớ một chuyện thôi: Excel sẽ chạy tốt hơn nếu tất cả các dữ liệu của bạn được xếp liên tục với nhau trong cùng một bảng. Nó sẽ giúp cho bạn thực hành các chiêu sau đây một cách dễ dàng hơn. -----------------------------------------------------------Trong các bài, sẽ có một số biểu tượng sau: Áp dụng cho tất cả các phiên bản của Excel Chỉ áp dụng cho Excel 2007 Chỉ áp dụng cho những phiên bản trước Excel 2007 Chỉ áp dụng cho Excel 2003 và Excel XP Chỉ áp dụng cho Excel 2000 Những chiêu dễ, dành cho mọi người
Những chiêu tương đối khó, dành cho những ai có trình độ khá trở lên
Những chiêu khó, dành cho những ai đã sử dụng thành thạo Excel
Các mẹo giúp cho bạn làm việc với Excel nhanh hơn Các chú ý, cảnh báo
Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
10 T biến cửa ssổ làm việc củ Tùy ủa bảng tính h
CHIÊU 1
Tùy biến cửa sổ làm việc của bảng tính Excel cho phép hiiển thị đồng thời nhiều bảng b tính và à cho phép tù ùy biến cách h hiển thị t và sắp xếếp chúng. Sa au khi thiết lậ ập các tùy b biến, chúng ta t có thể lưu u thành h một tập tin Workspace (không ( gian làm việc) .xlw w để sử dụng g lại sau này.
Đôi khi làm việc trong Excel, bạn có thể cần n phải có nhhiều hơn m một Workbook mở trênn m hình củaa bạn để làm màn m cho nó dễễ dàng sử dụ ụng hơn haay xem dữ liiệu từ nhiều u bảng tính.. Trrong bài nàyy sẽ mô tả cách c thực hiện h tổ chứcc cửa sổ làm m việc một ccách gọn gààng và có tổổ chhức. Đầu tiên, bạnn hãy mở tấtt cả các bảnng tính mà bạn b cần làm m việc.
Để mở nhiều bảng tính cùnng một lúc, bạạn vào Office → Open…, ggiữ phím Ctrl trong t khi n nút Openn để mở các tậập tin (Excel20003: File chọn các tập tin bảng tính cần mở → nhấn → Open...) Từ ừ cửa sổ làm m việc của một bảng tính t đang mở m nào đó, chọn c Windo ows → View → Arrange e Alll (Excel2003 3: Window → Arrange). Nếu N tùy chọ ọn Window ws of active Workbook đang được c chhọn thì hãy bỏ chọn, saau đó chọn kiểu k sắp xếp p và nhấp núút OK. N chọn kiểểu sắp xếp Tiled Nếu T (lát gạch) thì các cửa c sổ làm việc của bảảng tính như ư hình 4:
Hình 4 - Sắp xếp cácc cửa sổ kiểu Tilled www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
11 Tùy biến cửa a sổ làm việcc của bảng tín nh
N chọn kiểểu sắp xếp Horizontal Nếu H (nnằm ngang)) thì các bảnng tính sẽ xếp chồng lêên nhau:
Hình 5 - Sắp xếp các cửửa sổ kiểu Horizzontal N chọn kiểểu Vertical (thẳng Nếu ( đứngg) thì các bảảng tính đượ ợc sắp xếp nnằm cạnh nh hau:
Hình 6 - Sắp xếp các cửa c sổ kiểu Verttical Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
12 T biến cửa ssổ làm việc củ Tùy ủa bảng tính h
N chọn kiểểu Cascade Nếu e (thác nướcc) thì các bảảng tính sẽ xếp x đè lên nnhau:
Hình 7 - Sắp xếp các cửa c sổ kiểu Casccade Khi các cửa sổ bảng tínnh đã đượcc sắp xếp gọn K g gàng, bạn b sẽ rất ddễ dàng thaao tác và dii chhuyển dữ liệệu giữa các cửa sổ. Để sử dụng lại l các thiết lập này sauu này, bạn có c thể lưu thành t một tậập tin Work kspace. Cácc bư ước thực hiện h như saau: Chọn nggăn View → tại nhóm m Window cchọn Save Workspacee (E Excel2003: File → Save Workspace…) W → nhập tên n cho Workkspace tại hộộp File Nam me, chọn nơii lư ưu và nhấn nút n OK. Tậpp tin Worksppace sẽ có phần p mở rộnng là .xlw Muốn chuyểnn đổi một bảng tính nào đó về chếế độ toàn mààn hình thì bạn chỉ cần M n kích chuộtt haai lần lên thanh t Title (tiêu đề) của cửa sổ ổ bảng tínhh đó. Bạn ccũng có thể nhấn nútt M Maximize trêên cửa sổ bảảng tính hiệện hành để phóng p to cử ửa sổ hoặc nnhấn nút Clo ose để đóngg bảảng tính sauu khi đã hoààn tất công việc v với cửaa sổ đó. Để sử dụng lại l không giian làm việc đã thiết lậập trước đó, bạn chỉ cầần mở tập tiin .xlw vừaa d làm việệc được bạnn thiết lập trước t kia sẽẽ được khôii phục. Tất cả các hiệuu tạạo thì giao diện chhỉnh hay cậập nhật thônng tin trongg các bảng tính t của Woorkspace sẽẽ được Exceel nhắc nhở ở bạạn lưu lại khhi bạn ra lệnnh đóng Woorkspace. Nếu mỗi ngàày, bạn đều phải N p thực hiện h các côn ng việc lặp đi đ lặp lại trêên nhiều bản ng tính. Tôii khhuyên bạn nên n dành một m ít thời gian g để thiếết lập các kiểu k không gian làm viiệc cho cácc bảảng tính đó tùy thuộc vào v yêu cầuu tao tác và xử x lý số liệuu của chúngg. Sau đó, bạn b chỉ việcc m tập tin .xxlw cho kiểểu không giian làm việcc phù hợp với mở v nhu cầuu sử dụng của c bạn màà khhông cần phhải tốn thời gian sắp xếếp, tổ chức các c bảng tínnh ở các lầnn sử dụng saau.
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
13 Nhập dữ liệu u đồng thời vào v nhiều Sh heet
CHIÊU 2
Nhập dữ liệu đồng thời vào nhiều Sheet Thông th hường ngườ ời dùng Excell có những dữ d liệu muốn n nhập vào nhiều Sheett khác nha au. Bạn có th hể dùng côn ng cụ Group các Sheet lạ ại để có thể nhập n dữ liệu u đồng thờ ời. Nhưng cũng có một cá ách khác nha anh chóng vvà linh hoạt hơn h nếu bạn n dùng vàii dòng lệnh VBA. V
Nhưng phải nói N n đến cônng cụ Groupp cái đã nhỉỉ? Công cụ Group dùnng để nhập dữ d liệu vàoo nhhiều Sheet một m lúc chắắc có nhiều người chưaa dùng đến. Nó dùng đểể kết nối cáác Sheet vớii nhhau trong phhạm vi Worrkbook.
Grroup các Sheet lại bằằng tay Để nhóm cácc Sheet lại, các bạn chỉỉ việc click chọn Sheett thứ nhất, nnơi bạn sẽ nhập n liệu từ ừ bààn phím vàoo, rồi vừa nhấn n Ctrl, vừa v nhấn vàào tên nhữnng Sheet kháác mà bạn muốn nhậpp liệệu đồng thờ ời. Khi bạn gõ bất kỳ cái c gì vào Sheet S hiện hành, h dữ liệệu đó cũng sẽ tự độngg nhhập vào cácc Sheet cònn lại trong nhóm. n Điệp p vụ hoàn tất t nhanh chhóng (nghee giống 0077 nhhỉ). Để thoát khỏỏi tình trạngg group, bạnn chỉ việc hoặc h click chọn c một Shheet khác ngoài n nhóm,, hooặc click chhuột phải lêên tên một Sheet trong g nhóm bấtt kỳ, chọn U Ungroup Sh heets. Hoặc c nếếu bạn chỉ muốn m gỡ mộột trong số các Sheet raa khỏi nhóm m, hãy giữ C Ctrl trong kh hi click vàoo têên Sheet đó.
Khi có 2 hay nhiều Sheett group với nhau, trên thanh tiêu đề của Windows sẽẽ có chữ [Group] (troong ngoặc vuôông). Nhìn vàoo đó bạn có thhể biết bạn vẫn còn đang troong tình trạng groupp các Sheets. Trừ khi bạn có cặp c mắt sắc như chim ưng hhoặc bén như dao cạo, thường thì bạn b không đểể ý đến dấu hiệu này, bạn sẽ quên và khôông ungroup khi công việc đã xongg. Chính vì thhế tôi khuyên bạn ngay khi thực hiện xong thao tác nhập n liệu hàng loạt vàào các Sheet, phải p ungroup chúng ngay.
Hình 8 - Khi có nhiềuu Sheet đang được group, thanh tiêu đề của Excel sẽ có chữ [Group] ngay ssau tên của bảnng tính
Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
14 Nhập dữ liệu đồng thời vào nhiều Sheet
Dù phương pháp này là dễ nhất, nhưng có nghĩa là bạn phải nhớ và nhớ group và ungoup khi cần, nếu không bạn sẽ vô tình ghi đè lên dữ liệu ở những Sheet mà bạn không nhìn thấy trên màn hình hiện thời. Thí dụ như bạn chỉ muốn ghi cùng lúc dữ liệu vào một vùng nào đó của các bảng tính, còn ngoài vùng đó thì dữ liệu các Sheet phải khác nhau. Thế nhưng khi các Sheet đã group rồi thì nó có thèm quan tâm bạn đang nhập liệu ở vùng nào đâu?
Group các Sheet lại một cách tự động Bạn có thể giải quyết vấn đề trên bằng cách dùng một đoạn code VBA hết sức đơn giản. Để đoạn code làm việc được, nó phải được đặt trong các sự kiện của riêng Sheet nào bạn muốn. Để vào trang soạn thảo code của Sheet nào, thì click phải chuột vào tên Sheet đó và chọn View Code. Bạn có thể chọn một trong các sự kiện của Sheet, những sự kiện chỉ liên quan đến Sheet đó như đổi ô chọn, thay đổi nội dung một ô, kích hoạt Sheet, thoát khỏi Sheet, … để thực thi đoạn code VBA của mình.
Thường thì bạn được đưa thẳng đến trang soạn thảo code riêng của Sheet nếu bạn chọn View Code như trên hướng dẫn. Bạn có thể kiểm tra lại quả thực nó thuộc về Sheet bạn chọn hay không bằng cách nhìn vào cửa sổ VBA Project bên trái, nếu bạn thấy dạng thư mục This Workbook – Sheetname và một Sheet đang chọn thì đúng; nếu không bạn phải tìm đúng Sheet bạn cần và double-click nó. Trước tiên bạn phải đặt Name cho vùng ô bạn muốn nhập dữ liệu trùng trong các Sheet, giả sử là MyRange. Sau đó gõ đoạn code này vào khung soạn thảo bên phải: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range("MyRange"), Target) Is Nothing Then Sheets(Array("Sheet5", "Sheet3", "Sheet1")).Select Else Me.Select End If End Sub
Trong đoạn code trên, Sheet5 được ghi đầu tiên trong mảng Array, vì bạn muốn nó là Sheet mà bạn sẽ gõ dữ liệu nhập vào. Bạn có thể chọn những Sheet khác để group chúng lại bên dưới Sheet5. Sau khi gõ code xong, hoặc nhấn nút View Object, hoặc nhấn nút View Microsoft Excel, hoặc nhấn Alt+Q, Alt+F11 hoặc đóng hẳn cửa sổ VBA trở về màn hình Excel. Lưu bảng tính lại. Cần nhắc lại rằng đoạn code trên phải nằm trong Sheet được khai báo đầu tiên của Array, là Sheet mà bạn sẽ nhập dữ liệu từ bàn phím. Khi bạn đã hoàn tất, mỗi khi bạn click chọn một ô nào đó trong Sheet5, đoạn code sẽ kiểm tra xem ô bạn chọn có nằm trong vùng đã đặt tên MyRange không. Nếu đúng, code sẽ group các Sheet lại với nhau để bạn nhập dữ liệu hàng loạt Sheet. Nếu không phải, nó ungroup chúng ra bằng cách đơn giản là kích hoạt Sheet hiện hành. Dùng đoạn code trên sẽ
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
15 Nhập dữ liệu đồng thời vào nhiều Sheet
tiện lợi ở chỗ nó giải phóng bạn khỏi cái việc phải nhớ group khi bắt đầu và ungroup khi kết thúc nhập liệu trong vùng chọn. Bây giờ nếu bạn muốn những dữ liệu như nhau được nhập vào các Sheet chọn, nhưng ở những vị trí khác nhau, hãy dùng đoạn code khác: Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Range("MyRange"), Target) Is Nothing Then With Range("MyRange") .Copy Destination:=Sheets("Sheet3").Range("A1") .Copy Destination:=Sheets("Sheet1").Range("D10") End With End If End Sub
Đoạn code này cũng phải được đặt trong khung soạn thảo của riêng Sheet5. Đoạn code thứ hai hoạt động khác với đoạn code thứ nhất. Khi bạn thay đổi nội dung của một ô nào đó, code sẽ xác định xem ô hiện hành có nằm trong vùng MyRange hay không, nếu phải thì copy nguyên vùng MyRange (của Sheet5) và paste vào đồng thời ô A1 của Sheet1 và D10 của Sheet2. Ngược lại thì không làm gì cả.
Hình 9 - Đoạn code này phải được đặt trong khung soạn thảo của riêng Sheet5
Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
16
Ngăn chận người sử dụng thực hiện một số hành động nào đó nhất định
CHIÊU 3
Ngăn chận người sử dụng thực hiện một số hành động nào đó nhất định Mặc dù Excel có hỗ trợ việc bảo vệ cho bảng tính (Protect Sheet, Protect Workbook), nhưng công cụ thô sơ này không bao gồm việc chỉ cho phép người sử dụng một số đặc quyền hạn chế - trừ phi bạn làm theo những chiêu sau đây.
Bạn có thể quản lý việc tương tác với các bảng tính của bạn bằng cách giám sát và đáp ứng các sự kiện. Các sự kiện (event), là những hành động xảy ra khi bạn làm việc với các bảng tính hoặc các Sheet. Những sự kiện này thường bao gồm việc mở (open) một bảng tính, lưu (save) nó, và đóng (close) nó. Bạn có thể bảo Excel chạy những mã Visual Basic (macro) một cách tự động khi xảy ra bất kỳ một trong những sự kiện như thế.
Người sử dụng có thể vượt qua tất cả những mã bảo vệ bởi Visual Basic bẳng cách vô hiệu hóa việc thực thi các macro: Nhấn nút Office → Excel Opions → Trust Center → Trust Center Setting → Macro Settings (Excel2003: Tools → Macro → Security). Nếu đặt mức độ an toàn là Disable all macros with notification (Excel2003: mức Medium), mỗi khi mở một bảng tính có chứa macro, Excel sẽ xuất hiện một hộp thông báo và cho phép người sử dụng có cơ hội để tắt các macro. Nếu đặt mức độ an toàn là Disable all macros without notification (Excel2003: mức High), Excel sẽ ngăn không cho chạy tất cả các macro có trong bảng tính. Nói cách khác, khi cần phải dùng các macro có trong bảng tính, người sử dụng sẽ chọn một mức an toàn thích hợp để cho phép sử dụng các macro.
Ngăn chận việc lưu lại bảng tính với một tên khác Bạn có thể thiết lập thuộc tính Read only cho bất kỳ một bảng tính nào, bằng cách nhấn Office → Save, nhấn nút Tools, chọn General Options (Excel2003: File → Save As → Tools → General Options) và kích hoạt hộp kiểm Read only recommended. Việc này ngăn chận người sử dụng lưu lại những thay đổi trên bảng tính, trừ phi họ lưu lại bảng tính với một tên khác hoặc lưu vào một nơi khác. Tuy nhiên, có thể điều bạn muốn là không cho lưu lại bảng tính của bạn với tên khác, cũng không cho lưu vào một nơi khác. Nói cách khác, bạn muốn người khác chỉ có thể lưu lại bảng tính này với chính tên gốc của nó, chứ không được sao chép nó. Điều này đặc biệt hữu dụng khi có nhiều người cùng sử dụng chung một bảng tính, và bạn không muốn trong ổ cứng của mình đầy dẫy những bản sao của bảng tính này, cho dù là với một tên khác, hay ở một thư mục khác. Sự kiện Before Save mà tôi sắp nói đến đã có từ thời Excel 97. Đúng như tên gọi của nó, sự kiện này chỉ xuất hiện ngay trước khi bảng tính được lưu, cho phép bạn can thiệp kịp thời việc lưu lại bảng tính, đưa ra một cảnh báo, và không cho Excel lưu bảng tính.
Trước khi tự thực hiện điều này vào bảng tính, hãy chắn chắn rằng bạn đã lưu lại bảng tính của bạn. Bởi vì việc đưa đoạn code sau đây vào môt bảng tính chưa được lưu, có thể sẽ gây cho bạn nhiều rắc rối. www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
Ngăn chận người n sử dụn ng thực hiện một m số hành động đ nào đó nhất định
Để đưa đoạnn code sau vào v bảng tíính, bạn hãy y chọn Devvelope → Visual Basic (hoặc nhấnn Allt+F11), vàà nhấp đúp p chuột vàào mục Th hisWorkbook k trong kh hung Projecct Explorerr (E Excel2003: nhhấn phải chuộột vào biểu tư ượng Excel ở ngay bên tráái menu File ttrên thanh menu, và chọnn mục View Codee, như minh họa h dưới đâyy).
Hìnhh 10 - Chọn Vieew Vode để mở của sổ VBA choo This Workboook
Nếu bạn sử dụng Excel 20007, mà trên Ribbon R của bạnn không có mụục Develope, bạn b hãy vào trong Excel E Options,, nhấn chọn tab t Popular, rồi r đánh dấu vào tùy chọnn Show Develope taab in the Ribboon. Bạn hãy nhậpp đoạn codde sau đây vào v cửa sổ VBE. V Sau khi k nhập xoong, nhấn Alt+Q A để trở ở vềề Excel, rồi lưu lại bảngg tính: Privat te Sub Work kbook_Befo oreSave(By yVal SaveAs sUI As Boo olean, Cancel As Boolea an) Dim lReply As s Long If SaveAsUI S = True Then n lReply = Ms sgBox("Sor rry, you are not all lowed to s save this _ W Workbook as s another _ name." & "Do you wish to s save this _ W Workbook?" , vbQuesti ion + vbOK KCancel) C Cancel = (l lReply = vbCancel) v If Cancel = False Th hen Me.Sav ve C Cancel = Tr rue End If End Su ub
Thhử một tí. Bạn B nhấn Cttrl+S (hoặc gọi lệnh Saave) xem. Bảng tính củaa bạn lưu bìình thường.. Bây giờ bạn nhấn F12 (hoặc gọi lệnh l Save as a ), bạn sẽ gặp một cả ảnh báo, nó ói rằng bạnn khhông thể lưuu lại bảng tính t này dướ ới bất kỳ một m tên nào khác, k trừ phhi bạn vô hiệu hóa cácc m macro. Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
17
18
Ngăn chận người sử dụng thực hiện một số hành động nào đó nhất định
Nói thêm, khi bạn lưu một bảng tính có chứa macro hoặc code trong Excel 2007, bạn sẽ được nhắc nhở rằng bạn phải lưu file ở dạng cho phép macro hoạt động (macroenable Workbook), có phần mở rộng là *.xlsm, chứ không thể lưu ở dạng bình thường (*.xlsx).
Ngăn chận việc in một bảng tính Đôi khi bạn phải rời bàn làm việc đi đâu đó mà quên tắt máy (chuyện này là chuyện thường), cho dù bạn đã làm công việc ngăn chận việc có ai đó chép bảng tính của bạn ra ngoài, như đã nói ở trên, có thể bạn còn lo xa hơn, muốn rằng bảng tính này cũng sẽ không bị in ra khi bạn vắng mặt. Nếu thật sự bạn muốn như vậy, bạn hãy dùng sự kiện Before Print. Hãy nhập đoạn code sau trong cửa sổ VBE: Private Sub Workbook_BeforePrint(Cancel As Boolean) Cancel = True MsgBox "Sorry, you cannot Print from this Workbook", vbInformation End Sub
Nhấn Ctrl+Q để quay về Excel và lưu lại. Từ bây giờ, nếu có ai có muốn ra lệnh in bảng tính này, sẽ không in được và sẽ thấy một thông báo ngăn cản. Dòng lệnh MsgBox ở đoạn code trên chỉ là một tùy chọn, nhưng bạn nên sử dụng nó, vì ít nhất thì nó cũng để lại một thông tin gì đó, để người khác sẽ không tưởng lầm rằng máy in của họ bị hư, hoặc là chương trình Excel có lỗi! Nếu bạn chỉ muốn ngăn chận in một phần nào đó trong bảng tính, ví dụ không cho in Sheet1 và Sheet2, bạn sử dụng đoạn code sau: Private Sub Workbook_BeforePrint(Cancel As Boolean) Select Case ActiveSheet.Name Case "Sheet1", "Sheet2" Cancel = True MsgBox "Sorry, you cannot print this Sheet from this Workbook", _ vbInformation End Select End Sub
Dĩ nhiên bạn có thể thêm vào bất kỳ Sheet nào có trong bảng tính của bạn. Chỉ việc nhập tên của nó vào trong hàng có lệnh Case, và tách biệt Sheet này với Sheet khác bằng dấu phẩy, và nhớ nhập tên Sheet trong một cặp dấu nháy kép. Trong trường hợp bạn chỉ muốn ngăn chận không cho in một Sheet mà thôi, bạn chỉ cần nhập tên của Sheet đó (trong cặp nháy kép) sau chữ Case, và không cần gõ dấu phẩy.
Ngăn chận việc chèn thêm Sheet vào một bảng tính Excel có chức năng Protect Workbook, không cho phép thay đổi cấu trúc của bảng tính như thêm, xóa, di chuyển, hay đổi tên các Sheet. Tuy nhiên, có thể bạn chỉ muốn ngăn
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
Ngăn chận người sử dụng thực hiện một số hành động nào đó nhất định
chận việc thêm Sheet thôi, còn những việc khác thì vẫn cho phép. Đoạn code sau đây giúp bạn làm việc đó: Private Sub Workbook_NewSheet(ByVal Sh As Object) Application.DisplayAlerts = False MsgBox "Sorry, you cannot add any more sheets to this Workbook", _ vbInformation Sh.Delete Application.DisplayAlerts = True End Sub
Khi có ai đó chèn thêm một Sheet mới vào trong bảng tính, trước tiên Excel sẽ xuất hiện hộp cảnh cáo: “Xin lỗi, bạn không thể thêm bất kỳ Sheet nào vào trong bảng tính này”, rồi ngay lập tức, Excel sẽ xóa cái Sheet mới thêm vào khi nút OK trong hộp cảnh báo được nhấn. Công dụng của dòng lệnh Application.DisplayAlerts = False là không hiển thị hộp cảnh báo xác nhận việc xóa một Sheet nào đó trong Excel. Một cách khác để ngăn chận việc chèn thêm Sheet vào bảng tính là bạn chọn Review trên thanh Ribbon, chọn lệnh Protect Workbook trong nhóm Changes, rồi chọn lệnh Protect Structure and Windows (Excel2003: Tools → Protection → Protect Workbook... đánh dấu kiểm vào tùy chọn Structure) và nhấn OK (có thể đặt nếu thích). Tuy nhiên, như đã nói ở đầu
bài, việc này sẽ ngăn chận hết mọi thao tác với các Sheet trong bảng tính.
Hình 11 - Protect Structure and Windows để ngăn chận việc chèn thêm Sheet Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
19
20 Ngă ăn chặn các n nhắc nhở khô ông cần thiếtt
CHIÊU 4
Ngăn chặn các nhắc nhở khôônng cần thiết Excel luô ôn luôn cảnh báo hoặc nh hắc nhở bạn xác nhận cá ác hành động g và thao tácc của bạn. Bài này sẽ hướng dẫn bạ ạn cách loại bỏ b các thông g báo hoặc nh hắc nhở.
Các kiểu cảnnh báo mà tôôi đề cập troong chiêu này n chính làà các câu hỏỏi mà Excell hỏi bạn cóó chho macro hooạt động haay không, hoặc h là các thông báo về các hànnh động xóaa một trangg bảảng tính. Saau đây là mộột số loại cảảnh báo của Excel:
Thhông báo kích k hoạt Macro M tronng khi tronng Workboook khôngg có macro Lỗỗi này phát sinh do bạnn đã từng thhực hiện gh hi macro troong Workboook, và mặcc dù bạn đãã xóóa tất cả cáác mã lệnh macro bằngg cách vào ngăn Deveeloper → chhọn Macro → chọn cácc m macro và nhấấn Delete để xóa (Exceel2003: Tools → Macro → Macros), nhhưng trong các lần mở ở W Workbook saau đó Excel vẫn cảnh báo b bạn là trrong Workbbook có chứ ứa macro.
Bạn chỉ nhận được thông báo b kích hoạt macro khi thiết lập mức an toàn là Disaable all macro with nootification (Exxcel2003: mức Medium). Nếu mức an tooàn được thiết ết lập là Enablee all macors (EExcel2003: mứức Low) thì cácc macro sẽ tự động kícch hoạt mà không có tiếng kêu k cảnh báo. Nếu mức an toàn t là Disablle all macros without notiffication (Excel2003: mức High) thì các macro tự động đ bị khóa lại l không đượcc phép thực thhi. Khi bạn ghi một K m macro, Excel chènn một modu ule vào để chứa các lệnnh của bạn và v các hàm.. V lúc mở một bảng tính, Vào t Excel kiểm tra xeem bảng tínnh có chứa module nào o không vàà chhúng rỗng hay h đang chứ ứa các mã lệnh. l Việc xóa cácc macro củaa bảng tínhh sẽ xóa tất cả các mã lệnh chứa bên trong module màà V khhông xóa cáác module – giống như ư việc uống g cạn lon sữ ữa và bỏ lạii vỏ hộp sữa vào lại tủủ lạạnh. Do vậy, bạn cần phhải xóa đi các module này n theo hư ướng dẫn sauu: Chhọn ngăn Developer D → chọn nútt Visual Bas sic tại nhóm m Code hooặc nhấn tổ ổ hợp phím m Allt+F11 (Exceel2003: Toolss → Macro → Visual Basic Editor (VB BE) và chọn V View → Proje ect Explorer). N không thhấy cửa sổ Project Nếu P thì bạn b vào View và chọn Project P Explorer hoặc nhấn n tổ hợpp phhím Ctrl+R.
Hình 122 - Gọi Visual Baasic từ tab Deveeloper trong Excel 2007
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
21 Ngăn chặn các nhắc nhở không cần thiết
Nhấp chuột lên các ký hiệu (+) để xem các thành phần bị ẩn của các nhánh con trong cửa sổ Project và hãy tìm đến các module. Bạn nhấp phải chuột lên từng module và chọn lệnh Remove Module từ thực đơn ngữ cảnh. Nếu được hỏi có xuất module ra thành tập tin thì hãy chọn No. Nhấn tổ hợp Alt+Q để đóng cửa sổ VBE.
Thông báo nhắc nhở lưu trữ trong khi không có sự thay đổi nào Bạn có thể nhận thấy rằng đôi khi bạn chỉ mở một bảng tính và xem một số thông tin trong đó mà Excel cũng nhắc nhở bạn lưu lại các thay đổi trong Personal Macro Workbook mặc dù bạn không hề thay đổi gì trong đó. Có thể bạn đã biết hoặc chưa, bạn đã có sử dụng một hàm volatile (là hàm trong đó có sử dụng phương thức volatile) trong Personal Macro Workbook của mình. Một Personal Macro Workbook là một bảng tính ẩn được tạo ở lần đầu tiên bạn ghi macro (Excel2003: Tools → Macro → Record NewMacro) với tùy chọn Personal Macro Workbook tại Store Macro in. Macro này sẽ được mở mỗi khi bạn sử dụng Excel. Một hàm volatile sẽ làm bảng tính tự động tính toán lại mỗi khi bạn thực hiện một thao tác nào đó trong Excel, bao gồm cả việc mở và đóng bảng tính hoặc ứng dụng Excel. Hai trong số các hàm volatile phổ biến là hàm TODAY() và NOW(). Vì thế, mặc dù bạn chắc chắn là mình không có thay đổi gì trong bảng tính nhưng các hàm volatile này vẫn đang Hình 13 - Hộp thoại Record Macro hoạt động âm thầm. Điều này được tính như là một sự thay đổi và Excel sẽ cảnh báo việc lưu trữ mặc dù không tồn tại bất kỳ sự thay đổi nào trong bảng tính. Nếu bạn muốn Excel dừng việc thông báo lưu trữ các thay đổi mà bạn không hề thực hiện, bạn có một vài cách thực hiện. Cách dễ thấy nhất là ta không lưu các hàm volatile trong Personal Macro Workbook và nên xóa bỏ tất cả các hàm volatile đang có trong đó. Hoặc, nếu bạn cần các hàm volatile nhưng không muốn Excel lưu lại các thay đổi không nhìn thấy này bạn có thể thêm đoạn code sau vào Workbook module của Personal Macro Workbook để đánh lừa nó là bảng tính đã được lưu rồi. Private Sub Workbook_BeforeClose(Cancel As Boolean) Me.Saved = True End Sub
Để mở Personal Macro Workbook bạn vào View → Unhide trong nhóm Window (Excel2003: Window → Unhide), chọn Personal.xls từ hộp thoại Unhide View → Unhide và nhấp nút OK. Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
22 Ngăn chặn các nhắc nhở không cần thiết
Nhấn tổ hợp phím Alt+F11 để vào cửa sổ VBE, sau đó nhấp phải chuột lên ThisWorkbook từ Personal.xls trong cửa sổ Project rồi chọn View Code và nhập đoạn mã trên vào. Sau khi nhập xong, bạn nhấn tổ hợp phím Alt+Q để đóng của sổ VBE lại. Tất nhiên, nếu bạn có sử dụng hàm volatile để tính toán lại bảng tính và bạn muốn lưu các thay đổi này thì bạn dùng đoạn mã sau thay cho đoạn mã nêu trên. Private Sub Workbook_BeforeClose(Cancel As Boolean) Me.Save End Sub
Đoạn mã trên sẽ lưu lại Personal Macro Workbook một cách tự động mỗi khi nó được mở.
Dừng các cảnh báo của Excel về các macro đã ghi Một trong số nhiều hạn chế của việc ghi macro là không tự thêm vào các lệnh loại bỏ các thông báo khi thực thi. Ví dụ như bạn ghi một macro xóa một Worksheet và khi thực thi macro này bạn sẽ nhận được thông báo xác nhận việc xóa Worksheet. Muốn tắt cảnh báo này, bạn làm như hướng dẫn sau: Chọn ngăn Developer → Macros tại nhóm Code hoặc nhấn Alt+F8 (Excel2003: Tools → Macro → Macros) để gọi hộp thoại Macro. Tại Macro in chọn All Open Workbooks, chọn tên macro mà bạn vừa ghi và nhấn nút Edit. Đặt con trỏ lên trước dòng lệnh đầu tiên của thủ tục và nhập vào dòng lệnh sau: Application.DisplayAlerts = False
Tại sau dòng lệnh cuối cùng, bạn thêm vào: Application.DisplayAlerts = True
Macro của bạn sau khi thêm 2 dòng lệnh trên sẽ giống như sau: Sub MyMacro() ' ' MyMacro Macro ' Deletes the Active Worksheet ' Application.DisplayAlerts = False ActiveSheet.Delete Application.DisplayAlerts = True End Sub
Lưu ý rằng, bạn đã bật chức năng cảnh báo của Excel lại tại dòng lệnh cuối cùng của macro. Nếu bỏ dòng lệnh này, bạn sẽ không bao giờ nhận được các cảnh báo nữa và điều này có thể gây nguy hại vì có thể bạn vô tình thực hiện một thao tác nhầm lẫn nghiêm trọng nào đó mà không hề nhận được cảnh báo để xác nhận hành động.
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
23 Ẩn Sheet sao o cho người khác k không thể t dùng lệnh Unhide để hiện ra
CHIÊU 5
Ẩn Sheet sao cho người khác không thể dùng lệnh Unhide để hiện ra Đôi khi bạn b có những g thông tin trên một Sheeet nào đó và à bạn không muốn ngườii dùng đọcc được. Bạn muốn m có một khu vực (có ó thể là một SSheet) ghi chéép những dữ ữ liệu, công g thức, những chi tiết vụn n vặt và khôn ng muốn cho o ai nhìn thấyy.
N Những thứ bạn b không muốn m ngườii khác thấy được có thhể là những vùng làm dữ d liệu choo Data Validation, Combo obox, những g tên biến và giá trị biến b dùng llàm const trong VBA,, nhhững thông tin nhạy cảảm và nhữnng thứ khác. Mặc dù bạạn có thể dấấu Sheet đó ó bằng cáchh chhọn View → Hide trongg mục chọn Window (Exxcel2003: Forrmat → Sheeet → Hide), nhưng n sẽ tốtt hơ ơn nếu bạn làm cách khác k để ngườ ời dùng khô ông thể chọọn View → U Unhide trong g mục chọnn W Window (Exceel2003: Form mat → Sheet → Unhide).
Hình 14 - Sử dụng lệnh Hide troong Excel 2007
Hình 15 - Sử dụng lệnh HHide trong Exceel 2003
Bạn cũng có thể dùng chức c năng khoá k bảng tính, nhưng nó vẫn đượ ợc nhìn thấy y. Hơn nữaa ững ô chứa dữ liệu kết nối với nhữ ững control tạo bởi thaanh công cụụ bạạn không thhể khoá nhữ Foorm. Thay vì v vậy, bạn hãy h thiết lậpp trạng tháii cho Sheet dạng d xlVeryyHidden. V Develop Vào per → Visual Basic hoặc nhấn Alt+ +F11 để vào o trang soạnn thảo VBE E (Excel2003:: Toools → Macrro → Visual Basic Editorr), và nhìn bên trái tro ong khung Project Exxplorer, nếuu khhông thấy thhì chọn View w → Projectt Explorer. Tììm tên file và v bấm vàoo dấu cộng để đ hiện ra các c tên Sheet. Chọn tênn Sheet nào o bạn muốnn dấấu, mở khuung Propertyy bằng cáchh vào menu u View → Property P Window (hoặc c nhấn F4).. Chhọn tab Alp phabetic, tìm m dòng Visib ble và chọn 2- xlsShee etVeryHidde en. Nhấn Alt+Q để N đ trở về traang tính Exccel, lưu sự thay t đổi nàyy. Sheet củaa bạn sẽ chẳẳng bao giờ ờ cóó thể thấy được đ bằng cách c thông thường trên menu Vieew → Unhid de (Excel2003: Format → Shheet → Unhidde). Để thấy trở lạại, bạn phảii vào chỗ cũũ, chọn lại 1- xlSheetViisible.
Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
24 Tự th hiết kế một b bảng tính mẫ ẫu (template))
CHIÊU 6
Tự thiết kế một bảng tính m mẫẫu (template) Nếu như ư bạn thường g xuyên phải thực hiện cù ùng một kiểu u trình bày ch ho bảng tính h của mình h, bạn có thểể tự thiết kế ra r một bảng tính mẫu cho o riêng bạn, là một bảng g tính đã có c sẵn tiêu đề, đ một số cộ ột, một số hà àng nào đó, thậm chí là cả Name và à công thứ ức; đồng thờii còn có thể tạo t ra một hộ ộp thoại riêng vào trong Thư viện cácc Templatees của Excel.
Không biết làà, có khi nàào bạn sử dụng K d các Template khôông? Nghĩa là thay vì nhấn n Ctrl+N N đểể tạo một bảng b tính mới, m thì bạnn nhấn vào nút Office, chọn lệnh New (Excel22003: File → Neew), và chọn n ra một kiểểu bảng tínhh đã được thiết t kế sẵn trong thư vviện các Tem mplate, sauu đóó sửa lại bảnng tính này thành cái của mình?
Hình 16 - Chọnn một bảng tínhh đã được thiết kế sẵn trong thhư viện Templattes của Excel Nếu bạn đã từ N ừng thấy, đã đ từng sử dụng d những bảng tính đã đ đươc thiếết kế sẵn nàày, ắt bạn sẽẽ thhấy sự hữu dụng của nó, n nhờ nó mà m chúng ta t tiết kiệm m được bao nhiêu là thờ ời gian choo viiệc thiết kế và v trình bàyy. Và, trong cônng việc, nếếu như bạn cứ phải thư V ường xuyênn thiết kế nhhững bảng tính có cấuu trúúc giống nhhau, tôi nghhĩ rằng việc bạn thường g làm là mở ở một bảng ttính đã có, xóa x đi phầnn nộội dung và lưu l lại với tên t khác, phhải không? Nhưng N cáchh làm này, đđôi khi do sơ s ý, bạn sẽẽ xóóa luôn cả những n công thức mà bạạn đã mất hààng giờ để nghĩ n ra, rồi phải mất th hời gian choo nhhững thao táác xóa...
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
25 Tự thiết kế một m bảng tính mẫu (temp plate)
Vậy, có bao giờ V g bạn nghhĩ đến chuyệện sẽ làm một m cái giốnng như nhữnng Templatee có sẵn củaa Exxcel không?? Để mỗi khhi cần một loại bảng tíính nào đó (một bảng llương, một bảng chấm m côông, một bảảng báo giá,, v.v...) thì bạn b chỉ việcc vào trongg Thư viện T Templates, thậm chí làà vàào trong Thhư viện riênng của bạn, lấy một cáái mẫu ra rồồi chỉ việc nnhập số liệu u vào? Tiếtt kiiệm được baao nhiêu là thời gian. Chiêu C thứ 6 này sẽ giúpp bạn thực hhiện điều tôii vừa nói.
Tạạo một bảng tính mẫẫu Những Tempplate cho phhép bạn có sẵn N s một "dự ự án" (project), có nghĩĩa là bạn sẽ có sẵn môtt bảảng tính, baao gồm phầnn tiêu đề củủa bảng tính h, một số hààng và cột vvới các tiêu u đề của nó,, cáác công thứcc, và cả cácc Name (nếuu có)... V dụ, đây là Template BillingStatem Ví B ment1 có sẵẵn trong Excel 2007:
Hìnnh 17 - Templatte BillingStatem ment1 có sẵn trrong Excel 20077 Bạn cũng cóó thể tạo ra một cái giống vậy, saau đó lưu lạại thành mộột Templatee. Việc nàyy khhông có gì khó. k Bạn mở m một bảngg tính mới, tạo ra một cái sườn: ttô màu, địn nh dạng, đặtt N Name, thiết kế k công thứ ức, v.v... nhhư bình thườ ờng bạn vẫnn làm, nhưnng khoan nh hập dữ liệuu vàào. Bạn hãyy xóa hết cáác Sheet khhông cần thiiết, chỉ giữ lại những S Sheet đã đư ược thiết kếế thhôi. Hoặc bạạn có thể mở m một bảngg tính đã có ó sẵn, xóa hết h những ddữ liệu thô,, chỉ giữ lạii phhần trình bàày. Sau đó, bạn b nhấn F1 12 (Save as s...) rồi chọn n Excel Tem mplate.
Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
26 Tự th hiết kế một b bảng tính mẫ ẫu (template))
Hình 18 - Chọn loại file khi lưu là Exccel Template troong hộp thoại SSave Bạn hãy đặt cho c nó một cái tên dễ nhớ, n rồi nhấấn Save. Theeo mặc địnhh thì Excel sẽ lưu bảngg tínnh mẫu nàyy vào Thư mục m chứa các Template đã được tạoo ra khi bạnn cài đặt Exccel 2007. Mỗi khi cần sử dụng một M m bảng tíính có cấu trúc y hệt bảng tính bbạn vừa lư ưu với dạngg Teemplate như ư ở trên, bạạn nhấn nútt Office → New N (Excel20003: File → N New), rồi ch họn tiếp Myy Te emplates... ở cửa sổ Ne ew Workboo ok. Các bản ng tính mẫuu mà bạn đãã tạo ra và lưu lại như ư tôôi đã trình bày ở trên, sẽẽ hiện ra. Bạn chỉ việc chọn mẫu bạn b cần, rồii nhấn OK.
Hình 19 - Chọn My M Template đểể mở các bảng tíính mẫu đã lưuu www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
27 Tự thiết kế một m bảng tính mẫu (temp plate)
Tạạo một tabb riêng troong cửa sổ My Templlates Như bạn đã thấy ở hìnhh trước, khii bạn nhấn My Templaates trong ccửa sổ New Workbook, N m cửa sổ New một N sẽ mở ra. Để ý một m tí, bạn sẽ thấy cử ửa sổ này cóó dạng nhữ ững cái tab.. N Nhưng hiện giờ g nó chỉ nó n mỗi mộtt tab My Teemplates thôôi. Giả sử bbạn đã tạo ra r rất nhiềuu bảảng tính mẫẫu, thay vì "nhét" tất cả c vào một chỗ, bạn cóó muốn tạo thêm nhữn ng tab riêngg chho mỗi loại mẫu khôngg? Ví dụ, taab "Báo cáo o thuế", tab "Báo giá", v.v... hay đại đ loại như ư thhế ? Khi bạn n nhấn F12 để đ lưu lại vvới dạng Template như ư tôi đã trrình bày ở phần trên,, thì thay vì v để Excell chọn thư ư mục lưu tự t động, bạạn hãy nhấn n nút Createe New Folder.
Hình 20 - Nhấấn Create New Folder để tạo thư t mục mới
Một hộp p thoại sẽ mở m ra, và bạnn nhập một cái tên choo nhóm biiểu mẫu màà bạn muốnn. Ở đây, tô ôi tạo thêm m một nhó óm là "Báo cáo thuế" đđể lưu nhữn ng bảng tínhh sẽ dùng để in ra cáác báo cáo nnộp cho cơ ơ quan thuế,, nhấn OK K, đặt tên cho c Templatte, và nhấn n Save. Vậyy là xong rồi đó. Tôi mở thử ra choo bạn xem m nhé (xem m hình 21)). Bạn thấyy không, trong cửaa sổ New này, đã cóó thêm một m tab mớii là Báo cáo thuế. Hay chứ ứ nhỉ!
Hình 21 - Taab "Báo cáo thuuế" được thêm vào trong hộp thoại t New
Một điiều lưu ý,, chắc là khôngg thừa. Tấất cả nhữngg Templatte và nhữngg thư mụcc mà bạn đãã tự tạo ra r trong bàii này, đềều nằm ở đây:
C:\Documentts and Settinngs\Owner\\Application n Data\Micrrosoft\Tempplate Với Owner làà tên của Acount V A mà bạn b đã tạo ra khi sử dụụng Window ws. Tôi đã th hử thay đổii nơ ơi lưu các Template T n này, nhưng không được. Khi chọnn My Template trong cửa c sổ New w W Workbook , Excel E chỉ liệtt kê những Template nào n nằm ở trrong cái đường dẫn ở trên t đây màà thhôi. Do đó, khi cài đặt lại Window ws, có thể bạn b sẽ mất hết h tất cả nhhững gì nằm m trong thư ư m C:\Docuuments and Settings... Vậy, mục V điều lưu l ý ở đây là, bạn nênn tạo ra nhữ ững bản saoo dự ự phòng chho các Tem mplate này,, cất giữ cẩn c thận. Sau này, khhi có phải cài đặt lạii W Windows, bạạn chỉ việc chép c các bảản sao vào đúng đ chỗ củủa nó (chínhh là cái đườ ờng dẫn trênn đâây), là có thhể sử dụng tiếp.
Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
28 Tạo ch hỉ mục cho cá ác Sheet tron ng Workbookk
CHIÊU 7
Tạo chỉ mục cho các Sheet trong Workbook Nếu bạn đã tốn quá nhiều n thời giian trong mộ ột Workbook (bảng tính) với v rất nhiều u Worksheeet (trang tín nh), bạn sẽ cả ảm thông đư ược sự khó kkhăn trong việc v tìm kiếm m một tran ng tính nào đó. đ Khi đó, có lẽ ta nên lập p một chỉ mụ ục các trang tính t đang có ó để thuận n tiện cho việcc điều hướng g trong bảng g tính.
Sử ử dụng mộtt chỉ mục cáác trang tínnh sẽ cho ph hép bạn nhaanh chóng vvà dễ dàng điều đ hướngg troong bảng tíính, vì chỉ với một cúú nhấp chuộ ột, Excel sẽẽ đưa bạn đđến chính xác x nơi bạnn m muốn đến màà không lo bị nhầm lẫnn. Bạn có th hể tạo một chỉ c mục troong một vài cách: bằngg taay, tự động tạo ra bởi mã m VBA, hoặc là sử dụ ụng trình đơn tùy chọnn theo ngữ cảnh (thậm m chhí có thể dùnng các hàm m Macro4 – không k trình h bày ở đây)).
Tạạo chỉ mụcc thủ công Cách này rất dễ làm, bạnn chỉ cần chhèn mới mộ ột Worksheeet và đặt choo nó một cáái tên, ví dụụ nhhư tên là Ind dex. Sau đó ó, bạn nhập vào tên củaa các Workssheet có tronng Workboo ok và tạoo cáác siêu liên kết (hyperliink) đến cácc Worksheeet tương ứngg với tên màà bạn nhập. Chhọn Place in i This Document và chọn c tên Sh heet muốn kết k nối tới. Nhấn nút OK O để hoàn n tấất. Phương pháp này phù hợp khi k bảng tín nh không có c quá nhiiều Worksh heet và tênn W Worksheet k không có sự ự thay đổi thhường xuyêên, nếu khôông sẽ gây rra nhiều kh hó khăn choo côông tác bảo trì trang chhỉ mục.
Hìnhh 22 - Hộp thoạại Insert Hypelinnk
Tạạo chỉ mụcc tự động bằng b cách sử dụng VBA V Một cách thaay thế khác là sử dụng VBA để tự M ự động tạo ra r các chỉ m mục. Đoạn mã m sau đâyy sẽẽ tự động tạạo ra một bảng b chỉ mục m liên kết đến tất cả các Workssheet mà bạạn có trongg www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
29 Tạo chỉ mục cho các Sheet trong Workbook
Workbook. Bảng chỉ mục này sẽ được tạo lại mỗi khi Worksheet lưu chỉ mục được chọn. Đoạn mã này phải được đặt trong Private Module của Sheet chứa chỉ mục. Chèn một Worksheet mới vào Workbook và đặt tên cho nó là Index chẳng hạn. Nhấp chuột phải vào tên Worksheet vừa tạo và chọn ViewCode từ trình đơn ngữ cảnh hoặc nhấn tổ hợp phím Alt+F11. Nhập đoạn mã VBA sau vào cửa sổ Code: Private Sub Worksheet_Activate() Dim wSheet As Worksheet Dim lCount As Long lCount = 1 With Me .Columns(1).ClearContents .Cells(1, 1) = "INDEX" End With For Each wSheet In Worksheets If wSheet.Name <> Me.Name Then lCount = lCount + 1 With wSheet .Range("A1").Name = "Start" & wSheet.Index .Hyperlinks.Add Anchor:=.Range("A1"), Address:="", _ SubAddress:= "Index", TextToDisplay:="Back to Index" End With Me.Hyperlinks.Add Anchor:=Me.Cells(lCount, 1), Address:="", _ SubAddress:= "Start" & wSheet.Index, TextToDisplay:=wSheet.Name End If Next wSheet End Sub
Nhấn tổ hợp phím Alt+Q để thoát VBE và trở về cửa sổ bảng tính, sau đó lưu bảng tính lại. Để chạy đoạn mã vừa tạo, bạn dùng chuột chọn sang Worksheet khác trong Workbook và sau đó chọn lại Worksheet Index để kích hoạt sự kiện Worksheet_Activate. Lưu ý rằng, đoạn mã sẽ các đặt tên (Name) cho các ô A1 ở mỗi Worksheet kèm theo số chỉ mục của Worksheet trong bảng tính (Worksheet đầu tiên có chỉ mục là 1, kế đó là 2, 3…. n). Điều này bảo đảm rằng ô A1 trên mỗi trang tính có một tên khác nhau. Nếu ô A1 trên Worksheet của bạn đã được đặt tên, bạn nên cân nhắc đến việc thay đổi ô A1 trong đoạn mã sang một địa chỉ khác phù hợp hơn. Lưu ý thêm, nếu bạn có thiết lập Hyperlink base (siêu liên kết cơ sở) trong Workbook thì các hyperlink được tạo ra từ đoạn mã trên sẽ không thể hoạt động được, do chúng đã liên kết đến các Name trong Workbook hiện hành. Khi thuộc tính Hyperlink base được thiết lập thì các siêu liên kết sẽ trỏ đến Hyperlink base kết hợp với các Name. Cách thêm thuộc tính Hyperlink base: Vào Office → Prepare → Properties → Document Properties → chọn Advanced Properties (Excel2003: File → Properties → Summary) và nhập vào khung Hyperlink Base. Ví dụ, nhập vào: http://www.giaiphapExcel.com/
Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
30 Tạo ch hỉ mục cho cá ác Sheet tron ng Workbookk
Hình 23 2 - Thêm thuộộc tính Hyperlinnk base vào bảnng tính
Hình 244 - Siêu liên kếtt trước và sau khhi thêm Hyperlink base
Thhêm lệnh gọi g chỉ mụục vào trình đơn ngữữ cảnh Cách thứ ba này n sẽ hướnng dẫn bạn thêm một lệệnh vào trìnnh đơn ngữ cảnh để gọ ọi danh sáchh cáác Worksheeet trong Woorkbook và bạn có thể chọn lệnh này n bằng cách kích phảải chuột vàoo vùùng bảng tínnh bất kỳ. N Nhấn Alt+F1 11 để mở cửa c sổ VB BE, sau đó nhập đoạnn mã sau vvào cửa sổ ổ Code củaa Th hisWorkboo ok: Privat te Sub Work kbook_Shee etBeforeRightClick(B ByVal Sh A As Object, _ ByVal Target As Range, Ca ancel As Boolean) B Dim cCont As CommandBarButton On Error E Resu ume Next
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
31 Tạo chỉ mụcc cho các Sheeet trong Worrkbook
Appl lication.C CommandBars("Cell"). .Controls("Sheet Ind dex").Dele ete On Error E GoTo o 0 Set cCont = Application A n.CommandB Bars("Cell l").Control ls.Add _ Type e:=msoCont trolButton, Temporar ry:=True) With h cCont .Caption = "Sheet In ndex" .OnAction = "IndexCo ode" End With End Sub b
Đoạn mã nàyy sẽ gọi thannh lệnh Tabbs của Work kbook như hình h sau:
Hình 25 Tiiếp theo, bạạn vào Inserrt → Modulee và nhập vàào đoạn mã sau: Sub In ndexCode() Appl lication.C CommandBars("Workboo ok Tabs").ShowPopup End Su ub
Đoạn mã trênn sẽ thực thhi mỗi khi bạn chọn lệệnh “Sheet Index” từ ttrình đơn ngữ n cảnh vàà n trong Module thì Exxcel mới có ó thể thấy đư ược thủ tục này. bạạn phải đặt nó Nhấn Alt+Q để đóng cử N ửa sổ VBE trở về bản ng tính Exceel. Kể từ lúúc này, bạn n nhấp phảii chhuột tại bất kỳ ô nào trrong bất kỳ Worksheet nào thì tronng trình đơnn ngữ cảnh sẽ có thêm m lệệnh Sheet Index giúp bạạn điều hướ ớng đến bất cứ Worksheeet nào tronng Workboo ok một cáchh dễễ dàng.
Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
32 Giới hạn vùng cuộn củ ủa bảng tính h
CHIÊU 8
Giới hạn vùng cuộn ccủủa bảng tính Nếu bạn không muố ốn thanh cuộ ộn kéo bảng tính lên xuốn ống hoặc qua a phải nhiều,, hoặc bạn n có dữ liệu ở một vùng nào n đó mà kh hông muốn ccho nguời dù ùng xem, bạn n có thể giớ ới hạn vùng nhìn n được củ ủa bảng tính trong phạm vi bạn cho phép. p
Các bảng tínhh tạo bởi Excel E 2007 có c số cột tố ối đa 16.3844 (Excel trướcc đó là 256, từ t A đến IV), vàà có số dònng tối đa là 1.048.576 (trước đó là 65.536). Nhhưng thườnng thì bạn hiếm h khi sử ử dụụng hết. Bạạn có thể giớ ới hạn chỉ cho c người dùng d xem trrong một phhạm vi nào đó, còn dữ ữ liệệu nhạy cảm m, bạn để ngoài n vùng đó. đ Ngoài raa nó còn hạạn chế khi aai đó vô tình h kéo thanhh cuuộn xuống dòng d 500.000 và đến lượt l người khác la lànng rằng kéo mãi chẳng thấy cái gìì m xem. mà Bạn có thể dùùng cách đơ ơn giản là dấu d (Hide) những n dòngg và cột muốốn dấu hoặcc bằng cáchh m vùng choo phép xem m hoặc chỉ kíích hoạt vùnng có dữ liệệu. địịnh nghĩa một
Dấấu dòng và cột Cách dễ nhấtt là dấu nhữ ững dòng và v cột không g dùng đếnn: Trên Sheeet hiện hành h, xác địnhh dòòng cuối cóó dữ liệu, nhhấn chọn dòòng dưới nó ó, nhấn thêm m cùng lúcc Ctrl + Shifft + mũi tên n xu uống để chọ ọn đến cuốii dòng cuối cùng (1.048.576). Sauu đó trong taab Home, ch họn Formatt → Hide & Un nhide → Hid de Rows (Exxcel2003: Forrmat → Row → Hide), ho oặc click ph hải chuột vàà chhọn Hide. Làm tươ ơng tự như ư vậy để dấu nhữngg cột không dùngg đến: tìm m cột cuối,, click ch họn cột kếế bên, nh hấn Ctrl + Shift + mũi tên n sang phải p , chọn n Hide colu umns.
Kết quảả như hìnhh 26: vùng g làm việcc bị trùm một màuu tăm tố ối chungg quanh và v chẳng aii có thể kéo k đi đâuu được nữa.
Hình 26 - Giới hạn vùng cuộnn bảng tính bằnng cách ẩn các hàng h và các cột www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
33 Giới hạn vùn ng cuộn của bảng tính
Xáác định mộột vùng sửử dụng bằnng Propertty Bằng cách sử B ử dụng Prooperty của S Sheet trong g VBA, bạnn cóó thể ấn địn nh vùng làm m việc trongg phạm vi mong m muốn.. Thực hiện nh hư sau: Nhấn chuột phải vào têên Sheet troong tab Sheet Names,, N chhọn View co ode, hoặc nh hấn Alt+F11 1, chọn đún ng tên Sheett trrong cửa sổ Project Exp plorer, rồi x xuống khun ng Property, tìm m dòng ScrrollArea gõ vào địa chỉỉ vùng mong g muốn, thíí dụụ: $A$1:$H H$50 (hình 27). 2 Quay trở lại bảng tính và Q v thử kéo tthanh cuộn, ta thấy chỉỉ cóó thể cuộn xuống x đến dòng d 50 và cuộn ngang g đến cột H làà tối đa, khô ông cuộn đư ược nữa. Tuy vậy, Ex xcel không lưu tính cchất này kh hi lưu bảngg y lại. Do đóó tínnh, nên lần sau mở file lên phải sset Property taa phải viết một đoạn code c thực hhiện điều này n mỗi khii kíích hoạt Sh heet. Vào vùng soạn thảo codee của đúngg Shheet mình muốn, m chọn sự kiện Woorksheet_acctivate: Pr rivate Sub b Worksheet_Activate e () Me.ScrollArea = "A A1:H50" En nd Sub
Hình 277
Bây giờ mỗii khi kích hoạt B h bảng ttính, VBA sẽ ấn địnhh vùùng giới hạn n như mongg muốn.
Mặc dù khônng có vùng bao M b quanh tăm t tối như ư cách trên, nhưng bạn không thể nào n cuộn raa khhỏi vùng, bạạn cố chọn một ô nằm ngoài vùng g cho phép cũng c không được, kể cảả cột I, J, K dùù bạn có ngó thấy cũngg chỉ để thèm m thôi. Thhậm chí vớii những đoạạn code VBA bạn tạo sau s này, tronng đó có câuu lệnh selecct một vùngg nằằm ngoài vùùng cho phéép, hoặc chọọn nguyên cột c nguyên dòng, d cũng không chọn n được. Để có thể thự ực thi các đooạn code trêên bạn phải cho vào code 2 dòng llệnh: Đầu code thêêm dòng: Active eSheet.Scro ollArea = ""
Cuuối code thêêm dòng: Active eSheet.Scro ollArea = "$A$1:$G$50"
Thhí dụ: Sub My yMacro( ) Acti iveSheet.S ScrollArea = "" Rang ge("Z100").Select Sele ection.Fon nt.Bold = True T
Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
34 Giới hạn vùng cuộn của bảng tính
ActiveSheet.ScrollArea = "$A$1:$G$50" Sheets("Daily Budget").Select ActiveSheet.ScrollArea = "" Range ("T500").Select Selection.Font.Bold = False ActiveSheet.ScrollArea = "$A$1:$H$25" End Sub
Đoạn code trên chọn ô Z100 trong Sheet hiện hành và định dạng in đậm. Sau đó chọn ô T500 trong Sheet khác, định dạng in thường (không đậm). Trước khi thực hiện chọn và định dạng ở Sheet nào, phải set vùng cuộn Sheet đó là “”. Sau khi định dạng, set trả vùng giới hạn cuộn theo mong muốn.
Chỉ kích hoạt vùng dữ liệu hiện hành Phương pháp này linh hoạt hơn, tự động giới hạn vùng cuộn bảng tính vừa bằng vùng dữ liệu của bảng tính mà bạn đặt code sau: Private Sub Worksheet_Activate() Me.ScrollArea =Me.UsedRange. Address End Sub
Đoạn code trên sẽ chạy mỗi khi bạn kích hoạt bảng tính mà bạn đặt code. Dù vậy cũng có hạn chế là bạn không thể thêm dữ liệu vào dòng mới hoặc cột mới. Bạn có thể mở rộng vùng giới hạn ra thêm 5 dòng và 2 cột bằng đoạn code sau: Private Sub Worksheet_Activate() With Me.UsedRange Me.ScrollArea = .Resize(.Rows.Count + 5, .Columns.Count _ + 2).Address End With End Sub
Còn nếu bạn muốn hơn nữa, nhập liệu thêm một cách thoải mái, thì dùng một đoạn code nhằm reset vùng cuộn bằng nguyên Sheet: Sub ResetScrollArea() ActiveSheet.ScrollArea = "" End Sub
Bạn có thể gán short key (phím tắt) cho đoạn code này bằng cách nhấn Alt+F8, chọn macro ResetScrollArea, nhấn nút Option, và gán một phím tắt thí dụ Ctrl+W. Sau này mỗi khi bạn muốn nhập liệu, nhấn Ctrl+W trước khi nhập liệu. Khi nhập liệu xong, chỉ cần bạn kích hoạt một Sheet khác xong quay lại Sheet này, vùng cuộn lại bị giới hạn bởi đoạn code trên (Worksheet_Activate()).
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
35 Khóa và bảo o vệ những ô có chứa côn ng thức
CHIÊU 9
Khóa và bảo vệ những ô có chứa cônngg thức Chiêu nà ày giúp bạn cho phép ng gười khác thay đổi các ô có chứa dữ ữ liệu, nhưng g cấm họ thay t đổi các ô chứa công thức. Bạn cũ ũng có thể bả ảo vệ các ô có c chứa công g thức mà không cần phải p bảo vệ to oàn bộ trang g tính của bạn n.
Khi tạo một bảng K b tính, thường t chúnng ta sẽ phảải dùng đếnn một số cônng thức, và khi chia sẻẻ bảảng tính chho mọi ngườ ời, có thể bạn b muốn rằng, r khôngg ai có thể can thiệp (xóa, ( sửa...)) nhhững vào nhhững ô có chứa c công thhức. Cách dễ d nhất là cũng c phổ biếến nhất là Protect P (bảoo vệệ) bảng tínhh. Tuy nhiênn, Protect bảng b tính kh hông chỉ ngăăn không chho can thiệp p vào các ô chhứa công thứ ức, mà nó không k cho can c thiệp vàào tất cả, nghhĩa là khôngg ai có thể làm l gì bảngg tínnh của bạn. Đôi khi, bạạn lại không muốn như ư vậy, bạn chỉ c muốn bảo vệ các ô chứa côngg thhức thôi, cònn những ô chứa c dữ liệuu thì không. Có ba giải phháp để thựcc hiện điều này: n Khóa những n ô chhứa công thứ ức, sử dụng g chức năngg Data Validation cho các ô chứa công thức, và tự động bật tắt chức năn ng bảo vệ.
Khhóa các ô chứa c công thức Thheo mặc địnnh, tất cả các c ô trong bảng tính đều đ được khhóa (lockedd), tuy nhiên n, nó chẳngg cóó tác dụng gì g trừ phi bạạn áp dụng lệnh Protecct bảng tínhh. Đây là cáách dễ nhất để áp dụngg lệệnh Protect cho bảng tíính, nhưng chỉ những ô chứa cônng thức thì mới bị khó óa, và đượcc bảảo vệ: Chhọn toàn bộộ bảng tínhh, bằng cáchh nhấn Ctrl+A, hoặc nhấn n vào cáái ô vuông nằm n ở giaoo điiểm của cộtt A và hàngg 1. Rồi nhhấn nút phảải chuột và chọn Form mat Cells, rồ ồi trong tabb Prrotection, bỏ ỏ đánh dấu ở tùy chọn Locked, rồii nhấn OK.
Hình 28 - Gáán thuộc tính Loock cho một hoặc nhiều ô Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
36 Khóa và bảo vệ nh hững ô có chứ ứa công thứcc
Saau đó, bạnn chọn đại một ô nàoo đó, chọn Home → Find & Select → Go To Speciall (E Excel2003: Eddit → Go To… … → Special); hoặc nhấ ấn Ctrl+G haay F5 rồi nnhấn vào nú út Special..... H thoại Go Hộp o To Speciall sẽ mở ra. Trrong hộp thhoại đó, bạnn nhấn vào tùy t chọn Formulas, và nếu n cần thiếết thì chọn hoặc h khôngg chhọn thêm 4 ô nhỏ ở dư ưới (liệt kê các loại cô ông thức, mặc m định thìì cả 4 ô này y đều đượcc chhọn), và nhấấn OK. Sau đó, bạn mở ở lại hộp tho oại Format Cells C đã nóii ở trên, như ưng lần nàyy thhì bạn đánhh dấu vào tùùy chọn Lo ocked, và nế ếu bạn thícch ẩn luôn ccông thức (không ( choo thhấy) thì đánhh dấu vào tùùy chọn Hid dden, nhấn OK O .
Hìnnh 29 - Hộp thooại Go To Speciaal V cuối cùnng là Protecct bảng tínhh: Chọn Hom Việc me trên Ribb bon, nhấn vvào Format trong t nhóm m Ce ells, rồi nhấ ấn vào Prottect Sheet...; hoặc chọ ọn Review trrên Ribbonn, rồi nhấn vào v Protectt Sh heet (Excel2003: Tools → Protection → Protect Wo orksheet):
Hình 30 3 - Chọn Proteect Sheet từ tabb Review trên Ribbon R www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
37 Khóa và bảo o vệ những ô có chứa côn ng thức
Hìnhh 31 - Chọn Prottect Sheet từ tab Home trên Riibbon Trongg hộp thoạại Protect Sheet S , bỏ đđánh dấu ở tùy chọnn Selec ct locked cells, chỉ cho phép Selec ct unlocked cells (chọn n nhữngg ô không khóa), và nhập n vào m một worrd, nếu cầnn thiết. l xong. Từ bây giờ, nhhững ô chứaa công thứcc của bạn sẽẽ Vậy là được bảo vệ, có thể không xem thấy đđược nếu bạn b đã chọnn Hidde en, bạn khôn ng lo nhữngg công thức này bị can thiệp nữa.
Sử dụụng Data Validation V n Sử dụụng Data Validation V , chỉ c là đơn ggiản không cho ghi đèè vào những n ô có chứa c công thức, t nghĩa là không ch ho sửa côngg thức. Tuy nhiên, phương phháp này chỉ phòng ngừaa cho chínhh Hình 32 - Hộp thoại Prootect Sheet bạn, nghĩa n là trán nh việc táy máy sửa lạii cái gì đó trrong nhữngg ô chứ ứa công thứcc, chứ thật ra, r mặc dù đđã được “V Validation”,, bạạn vẫn có thhể xóa côngg thức, hoặcc dán vào nh hững ô đó bất b kỳ dữ liệệu nào bạn thích... Nóii chhung nó khôông bảo vệ được đ gì nhiiều. Nhưng cũng xin nóói sơ qua vềề phương ph háp này: Để thực hiệnn, bạn hãy chọn những ô chứa ô cô ông thức bằằng chức năăng Go To Specials S màà tôôi đã nói ở trrên. Rồi, vớ ới những ô chứa c công thức t đang được đ chọn, bbạn gọi Dataa Validation n từ ừ menu Datta trên Ribbbon (Excel2003: Data → Validation). Trong hộpp thoại này y, chọn tabb Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
38 Khóa và bảo vệ nh hững ô có chứ ứa công thứcc Settiings, chọn Custom C choo khung Allo ow, và nhập p công g thức này: =" " vào khhung Formula, rồi nhấnn
OK.
Kể từ t đây, mỗii khi bạn nnhập bất kỳ thứ gì vàoo trong g những ô chứa công thức, hoặcc bạn muốnn sửa lại công thứ ức, sẽ có m một cảnh báo o xuất hiện,, ngăn n không chho bạn nhậập vào. Xin n nhắc lại,, phươ ơng pháp này n không ccấm việc xó óa hẳn côngg thứcc, cũng như ư dán đè thhứ gì đó vàào những ô chứaa công thức.
H 33 - Hộp thhoại Data Validdation Hình
Tự động đ bật tắt chức năăng bảo vệệ
Phươ ơng pháp này, n sẽ tự độộng bật chứ ức năng bảoo vệệ bảng tính (Protect) mỗi m khi bạn chọn c một ô đã được khhóa (lockedd), nhưng nó ó cũng sẽ tự ự độộng tắt chứcc năng bảo vệ v khi bạn chọn c một ô không bị khhóa. Để bắt đầu, bạn b hãy chắắc chắn rằngg những ô bạn b muốn bảảo vệ (ô chứ ứa công thứ ức) đã đượcc khhóa, còn nhhững ô không cần bảoo vệ thì khô ông bị khóaa, như tôi đđã trình bày y ở phươngg phháp thứ nhấất. Sau đó, bạn nhấn Alt+F11 A , nhấấn vào Sheet mà bạn m muốn bảo vệ v các ô đãã khhóa ở trong đó, rồi nhậpp vào trongg khung soạn n thảo đoạnn code sau đđây: Privat te Sub Work ksheet_Sel lectionCha ange(ByVal Target As s Range) If Target.Loc T cked = True Then M Me.Protect : :="Secret" Else e M Me.Unprotec ct wor rd:="Secret" End If End Su ub
Nếu không cần N c đến sword, bạnn không cần n dùng đoạạn d:="Secret"", hoặc nếuu m muốn woord là thứ gì khác, bạn sửa lại chữ ữ Secret bằng cái bạn m muốn. Nếu bạn lo rằằng người ta N t có thể vàoo trong khu ung soạn thảảo VBA để xem w word, bạn cóó thhể bảo vệ cáác code nàyy (không choo xem) bằn ng cách chọnn Tools → V VBAProject Properties, chhọn tab Prop perties, chọ ọn Lock Projject for View wing, và nhậ ập vào một .
Tuy nhiên, phương p pháp này cũng khôông hoạt độngg hoàn hảo, m mặc dù nó cũnng giúp bạn được phhần nào việc bảo b vệ các côngg thức. Từ khóóa Target đượcc sử dụng tronng đoạn code sẽ chỉ để tham chiếếu đến ô đangg "active" ngay tại thời điểm m nó được chọn (xin nói thêm, cho c dù bạn chhọn một dãy, nhưng trong dãy đó, chỉ cóó một ô "activve" mà thôi, là ô đang có màu khác với những ô còn lại). Vì lý do này, nếu một ngưười nào đó chọọn một dãy các ô (với ô "acttive" không bị khóa), thì người đóó có thể xóa toàn t bộ dãy ô này, bởi vì khi k đó thì chứcc năng Unprotect đã được tự độnng bật!
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
39
Sử dụng địn nh dạng theo o điều kiện để tìm dữ liệệu trùng
CHIÊU 10
Sử dụng định dạng theo điều kiện để tìm dữ liệu trùng Định dạn ng theo điều kiện của Exccel thường được đư sử dụng để xác định giá trị trong g phạm vi cụ thể trên bảng b tính, nh hưng chúng ta t có thể cải tiến nó để nh hận dạng sự ự trùng lắp p dữ liệu tron ng một danh sách hoặc một m bảng. Ch hức năng địn nh dạng theo o điều kiện n trong Excell 2007 đã đư ược cải tiến, do d vậy bài hướng dẫn nà ày thích hợp p cho các phiên p bản từ ừ Excel 2003 về v trước.
Mọi người thhường xuyênn phải nhậnn diện sự trù M ùng lắp dữ liiệu trong m một danh sácch hoặc mộtt bảảng, và làm m thủ công công c việc nàày có thể mất m nhiều thờ ời gian và ddễ mắc lỗi. Để Đ làm choo côông việc nàày dễ dàng hơn, bạn có c thể chế biến b công cụ c Định dạnng theo điềều kiện củaa Exxcel một ít. Ví dụ như, bạn V b có một bảng b dữ liệệu là vùng $A$1:$H$1 $ 00. Với Excel 2003, bạn b chọn nóó bằằng cách chhọn ô trên cùùng bên tráái của bảng (A1) và kéoo chuột đếnn ô dưới cùn ng bên phảii (H H100). Điềuu này rất quuan trọng, vì v ta muốn ô A1 phải làà ô hiện hànnh (active) trong vùngg lự ựa chọn. Sauu đó vào Format → chọọn Condition nal Formatting….
H 34 - Lệnh định dạng theoo điều kiện tronng Excel 2003 Hình Trrong hộp thhoại Conditio onal Formattting, bạn ch họn Formulas Is tại Condition 1 vàà nhập côngg thhức sau vào hộp trống bên b cạnh: =C COUNTIF($ $A$1:$H$10 00,A1)>1
Hình 35 - Hộp thoại Conditional Formatting
Chương 1 – GIẢM BỚ ỚT NHỮNG CỰC C NHỌC KHI LÀM VIỆC VỚI BẢN NG TÍNH
40
Sử dụng định dạng th heo điều kiện n để tìm dữ liệu trùng g
N Nhấn chọn nút n Format → chọn mààu và kiểu chữ c tại ngănn Font và cchọn màu nền n tại ngănn Pa atterns. Nhấn OK khi hoàn tất việ ệc định dạn ng. Nhấn tiếếp OK để ááp dụng địn nh dạng choo vùùng dữ liệu đang chọn. Thheo bảng sốố liệu minh họa thì hầuu hết các ô đều đ có dữ liệệu trùng trừ ừ hai ô H7 và v H49. Trrong công thức t định dạạng theo điềều kiện này,, ta sử dụngg tham chiếuu tương đối cho địa chỉỉ ô cần kiểm tra trong vùùng địa chỉ xác định. Bằng B cách sử s dụng địnnh dạng theo điều kiệnn nhhư thế này, Excel sẽ tự ự động nhậnn biết địa chỉ ô làm điều kiện tronng hàm CO OUNTIF. Cụ ụ thhể thì các côông thức địnnh dạng theoo điều kiện tại các ô nhhư sau: Ô A1 sẽ có công thhức là: Ô A2 sẽ có công thhức là: … Ô B1 sẽ có công thhức là: Ô B2 sẽ có công thhức là: …
=C COUNTIF($A A$1:$H$100 0,A1)>1 =C COUNTIF($A A$1:$H$100 0,A2)>1 =C COUNTIF($A A$1:$H$100 0,B1)>1 =C COUNTIF($A A$1:$H$100 0,B2)>1
Định dạng thheo điều kiệện trong Exxcel 2007 đã đ có sẵn tínnh năng làm m nổi các giá g trị trùngg troong một vùng dữ liệu. Các bước thhực hiện nh hư sau: Chhọn vùng dữ d liệu → vàào ngăn Hom me → Cond ditional Form matting → H Highlight Cells Rules → Du uplicate Vallues…
Trrong hộp thhoại Dupliccate Values, bạn chọn kiểu Duplicate (hoặc Unique: du uy nhất) vàà chhọn định dạng tại hộp kế k bên sau đó đ nhấn OK K.
H 36 - Lệnh Duplicate Hình D Valuees của Conditionnal Formatting trong Excel 20007 www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
41
Tìm dữ liệu xuất hiện hai hoặc nhiều lần bằng công cụ Conditional Formating
CHIÊU 11
Tìm dữ liệu xuất hiện hai hoặc nhiều lần bằng công cụ Conditional Formating Dù cho công cụ Conditional Formating đã cải tiến rất nhiều trong Excel 2007, giúp chúng ta tìm những dữ liệu trùng (Duplicate), nhưng nó vẫn chưa cung cấp những tính năng tìm ra những dữ liệu xuất hiện 2 lần hoặc nhiều hơn.
Nếu bạn muốn xác định những dữ liệu 2 lần hoặc nhiều hơn, bạn có thể dùng Conditional Formating với số lượng nhiều các điều kiện, trong giới hạn cho phép của bộ nhớ hệ thống (nhớ rằng trong Excel 2003 trở về trước, chỉ chấp nhận có 3 điều kiện). Sau đó bạn gán những định dạng màu sắc cho mỗi điều kiện. Để thực hiện, chọn ô A1 là ô trên cùng bên trái của vùng dữ liệu, bấm Shift và click vào ô H100. Cần nhắc các bạn một lần nữa, là phải làm đúng trình tự để cho ô chọn (activecell) là ô A1. Bây giờ vào tab Home → Conditional Formating → NewRule, trong mục Style chọn Use a Formula to determine which cells to format và click chọn Format values where this formula is true (Excel 2003: Format → Conditional Formating → Formula Is). Trong ô
trống gõ công thức:
=COUNTIF($A$1:$H$100,A1)>3
Nhấn nút Format, chọn màu nền và màu chữ cho những ô chứa dữ liệu xuất hiện hơn 3 lần, và OK. Nhấn New Rule (trong Excel 2003 chọn vào điều kiện thứ 2), làm tiếp một điều kiện, lần này công thức là: =COUNTIF($A$1:$H$100,A1)=3
Hình 37 - Hộp thoại New Formatting Rule
Nhấn New Rule (trong Excel 2003 chọn vào điều kiện thứ 3), làm tiếp một điều kiện, lần này công thức là:
=COUNTIF($A$1:$H$100,A1)=2
Nhớ mỗi lần chọn một màu khác nhau. Kết quả: bạn có những ô có màu khác nhau cho những dữ liệu xuất hiện 2 lần, 3 lần, và nhiều hơn. Cần nhắc lại chuyện chọn đúng vùng chọn sao cho ô A1 là ô hiện hành, để Excel hiểu đúng điều kiện trong công thức COUNTIF.
Conditional Formatting trong Excel 2003 bị giới hạn bởi 3 điều kiện, trong khi đó Excel 2007 chỉ bị giới hạn bởi bộ nhớ hệ thống.
Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
42
Tạo riêng một thanh công cụ cho riêng một bảng tính cụ thể
CHIÊU 12
Tạo riêng một thanh công cụ cho riêng một bảng tính cụ thể Bạn đã từng tạo ra thanh công cụ riêng cho mình? Bạn có thấy rằng, thanh công cụ này luôn luôn được nạp vào Excel, và luôn hiển thị, với bất kỳ bảng tính nào, với bất kỳ người sử dụng nào? Có bao giờ, bạn muốn rằng, thanh công cụ tự tạo này chỉ được hiển thị với một bảng tính cụ thể nào đó mà thôi không?
Ví dụ, bạn tự tạo ra một thanh công cụ có chứa những nút dùng để hỗ trợ việc nhập công thức và xử lý bảng (những dấu =, +, -, *, /, những nút dùng để xóa hàng, xóa cột, v.v...), tạm gọi là thanh công cụ A, phục vụ riêng cho bảng tính B. Và bạn muốn, làm thế nào để chỉ khi bạn mở bảng tính B, thì mới thấy thanh công cụ A của bạn, còn mở bảng tính khác, thì chỉ thấy những thanh công cụ mặc định của Excel? Thậm chí trong cùng một cửa sổ Excel, nhưng khi bạn kích hoạt bảng tính B, thì mới thấy thanh công cụ A, còn khi nhấn Ctrl+Tab để chuyển sang bảng tính khác, thì thanh công cụ A này sẽ biến mất? Thiết nghĩ, chắc hẳn đã có lúc bạn muốn điều tôi vừa nói. Vì nó giúp cho thanh công cụ của Excel luôn gọn gàng, ngăn nắp (luôn là thanh công cụ mặc định của Excel), nếu không phải là bạn, mà là người khác, thì không có gì bỡ ngỡ với thanh công cụ lạ hoắc; hoặc là, chỉ khi nào mở bảng tính B ra, thì mới cần đến thanh công cụ A, còn bình thường thì chẳng cần... Việc này, không có gì khó. Bạn chỉ cần chèn một đoạn code đơn giản vào trong Private module của bảng tính. Trước hết, bạn hãy tạo cho riêng mình một thanh công cụ. Đặt tên cho nó là MyCustomToolbar chẳng hạn. Tiếp theo, bạn nhấn Alt+F11 để mở cửa sổ Microsoft Visual Basic, nhấn đúp vào Hình 38 - Nhấn phải chuột vào biểu tượng Excel nhỏ This Workbook trong khung Project. ở bên trái menu File rồi chọn View Code Bạn cũng có thể làm nhanh việc này bằng cách nhấn nút phải chuột vào cái biểu tượng Excel bé tí nằm ngay bên trái menu File, rồi chọn View Code, cửa sổ VBA cũng sẽ mở ra với This Workbook được chọn sẵn. Nhập vào hai đoạn code sau đây: Option Explicit -------------------------------------------------------------------Private Sub Workbook_Activate() On Error Resume Next With Application.CommandBars("MyCustomToolbar") .Enabled = True
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
Tạo riêng một thanh công cụ cho riêng một bảng tính cụ thể
.Visible = True End With On Error GoTo 0 End Sub -------------------------------------------------------------------Private Sub Workbook_Deactivate() On Error Resume Next Application.CommandBars("MyCustomToolbar").Enabled = False On Error GoTo 0 End Sub
Bạn có thể thay thế MyCustomToolbar bằng cái tên mà bạn đã đặt cho thanh công cụ tự tạo của bạn. Sau đó bạn nhấn Alt+Q để trở về Excel. Để thử, bạn hãy mở thêm một bảng tính nữa, Book2.xls chẳng hạn. Bạn sẽ thấy, khi nào bạn chọn bảng tính mà có đoạn code ở trên, thì bạn mới thấy MyCustomToolbar, còn nếu chọn Book2 (chuyển đổi qua lại giữa các bảng tính bằng Ctrl+Tab), MyCustomToolbar biến mất! Chọn lại bảng tính ban đầu, MyCustomToolbar xuất hiện lại. Vậy là thành công rồi! Được voi đòi tiên. Bây giờ, giả sử bạn muốn rằng, trong cùng một bảng tính, nhưng chỉ có Sheet1 thì mới thấy MyCustomToolbar, còn Sheet khác thì không? Được thôi. Bạn có thể viết thêm một Level nữa cho đoạn code trên. Hãy bảo đảm là bạn đang chọn bảng tính có chứa code (tốt nhất là bạn đóng cái Book2). Quay trở lại cửa sổ VBA, bạn hãy nhấn phải chuột vào Sheet nào mà bạn muốn thấy MyCustomToolbar, rồi chọn View Code (hoặc nhấn đúp vào tên Sheet đó cũng được). Ở đây tôi giả sử bạn chọn Sheet1. Nhập vào hai đoạn code sau đây: Option Explicit -------------------------------------------------------------------Private Sub Worksheet_Deactivate() On Error Resume Next Application.CommandBars("MyCustomToolbar").Enabled = False On Error GoTo 0 End Sub -------------------------------------------------------------------Private Sub Worksheet_Activate() On Error Resume Next With Application.CommandBars("MyCustomToolbar") .Enabled = True .Visible = True End With On Error GoTo 0 End Sub
Rồi nhấn Alt+Q để quay lại Excel. Bây giờ, bạn hãy dùng chuột hoặc nhấn Ctrl+PgUp / Ctrl+PgDn để chọn qua lại các Sheet và xem thử cái gì xuất hiện trên màn hình. Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
43
44 Sao chép công thức giữ nguyên tham chiếu tương đối (giống như sao chép tham chiếu tuyệt đối)
CHIÊU 13
Sao chép công thức giữ nguyên tham chiếu tương đối (giống như sao chép tham chiếu tuyệt đối) Trong Excel, một công thức có thể chứa những tham chiếu tương đối hoặc tuyệt đối. Khi một công thức có tham chiếu tương đối được sao chép, thì do tính chất, tham chiếu sẽ chạy theo đến chỗ mới. Chỉ có công thức có tham chiếu tuyệt đối mới giữ nguyên khi sao chép.
Xin nhắc lại một tí: Khi bạn muốn công thức, dù cho copy đi đâu, cũng tham chiếu đến một ô hay một vùng cố định nào đó, bạn phải dùng tham chiếu tuyệt đối bằng cách thêm dấu $ vào tham chiếu, thí dụ: $A$1. Bạn cũng có thể chỉ thêm dấu $ vào tiêu chí dòng hoặc chỉ tiêu chí cột để chỉ cố định một chiều khi copy công thức. Nhưng đôi khi bạn muốn sao chép một công thức tham chiếu tương đối, giữ nguyên tham chiếu, nhưng lại không muốn chuyển thành tuyệt đối? Có hai cách để làm:
Cách 1 Tô đen công thức trong thanh công thức (formula bar) rồi copy, không copy ô, và tại ô đích cũng paste vào thanh công thức. Cách này dùng khi bạn chỉ sao chép một ô.
Cách 2 Khi bạn muốn sao chép cả một khối ô, thì dùng Find and replace: – Trước tiên, tô chọn khối muốn copy. – Nhấn Ctrl+H, là phím tắt của Home → Find & Select → Replace (Excel2003: Edit → Replace). – Trong ô Find what: gõ dấu =; trong ô Replace with: gõ dấu & (hoặc dấu nháy đơn (‘), hoặc bất cứ ký tự nào không dùng trong công thức). – Nhấn Replace All – Để nguyên như vậy, nhấn Ctrl+C, qua vị trí cần chuyển đến, nhấn Ctrl+V. – Để nguyên như vậy, chuyển ngược lại dấu & hoặc dấu nháy thành dấu = với công cụ Find and replace. – Trở về vùng nguồn hồi nãy, cũng chuyển ngược dấu & thành dấu =. Nghe thì nhiêu khê, nhưng vẫn nhanh hơn sửa từng tham chiếu tương đối thành tuyệt đối của cả một khối ô, rồi chuyển ngược lại.
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
45 Gỡ bỏ những liên kết ma
CHIÊU 14
Gỡ bỏ những liên kết ma Bạn mở một bảng tính, nhận ngay một thông báo: "Update links", nhưng chẳng có link nào! Làm thế nào để Update một link khi nó không tồn tại?
Những liên kết ngoài (external links) là những liên kết tham chiếu đến một bảng tính khác, chúng có thể nằm trong các công thức, trong các Name, hoặc trong các đối tượng được chèn vào (các đồ thị, các hình...). Khi những liên kết này bị "gãy", phần lớn lý do là do việc di chuyển hoặc sao chép một Sheet đến một bảng tính khác. Và khi đó, chúng trở thành những "liên kết ma", nghĩa là thấy đường link, nhưng không biết chúng được dẫn đến từ đâu. Sau đây là một vài cách giúp bạn xử lý những liên kết ma này. Đầu tiên, bạn cần xem lại liệu trong các công thức trong bảng tính của bạn có chứa bất kỳ một liên kết ngoài nào (mà không phải là liên kết ma) không. Nếu bạn không chắc rằng trong các công thức trong bảng tính của bạn có một liên kết ngoài, bạn hãy sử dụng công cụ tìm kiếm. Khi tìm ra rồi, bạn chỉ việc đơn giản là sửa lại cho nó chính xác, hoặc xóa hẳn chúng đi nếu không cần thiết. Bạn cũng có thể vào trang web này: http://www.microsoft.com/s/s...displaylang=vi để tải về công cụ Delete Links Wizard, là một công cụ được thiết kế để tìm và xóa tất cả những liên kết như liên kết đến các Name, liên kết đến các Name ẩn, đến các đồ thị, các query, các đối tượng... Tuy nhiên, công cụ này không tìm ra được những liên kết ma. Cho dù bạn đã tin chắc rằng, không có một công thức nào có chứa liên kết, bạn vẫn cần phải chắc chắn là không có bất kỳ một liên kết ma nào đang núp ở đâu đó. Để làm việc này, tôi thường mở hộp thoại Name Manager, dò từng Name một, để chắc chắn rằng không có một Name nào chứa một tham chiếu đến một bảng tính khác.
Với Excel 2003, thay vì nhấn vào từng cái tên để xem tham chiếu của nó trong khung Refers to, bạn có thể sử dụng cách này, nhanh hơn: Chọn menu Insert → Name → Paste, rồi trong hộp thoại Paste Name, nhấn vào nút Paste Link. Excel sẽ tạo ra một danh sách các Name có trong bảng tính, cùng những tham chiếu của nó, ngay trong bảng tính, để bạn kiểm tra. Excel 2007 thì dễ hơn, bạn có thể xem một lần tất cả các Name trong hộp thoại Define Name. Nhưng nếu bạn cũng muốn dán chúng ra ngoài bảng tính, bạn hãy chọn Formulas → Use in formula → Paste Name, rồi nhấn vào Paste List trong hộp thoại vừa xuất hiện. Với tất cả phiên bản Excel, cách nhanh nhất để gọi hộp thoại Paste Name, là nhấn F3. Nếu có bất kỳ một Name nào tham chiếu đến một vùng ngoài bảng tính, có thể bạn sẽ thấy chúng có chứa ít nhất một đường link giống cái đã hiển thị trong hộp thoại cảnh báo Update Link khi bạn mở bảng tính. Và bạn hãy tự quyết định là sửa lại đường link cho đúng, hoặc xóa Name đó đi. Có một loại kiên kết khác nữa, nằm trong các biểu đồ. Khi bạn đã kiểm tra các công thức, các Name như tôi vừa trình bày, mà bảng tính của bạn vẫn đòi Update Link, bạn nên kiểm tra các biểu đồ (nếu có), nghĩa là kiểm tra vùng dữ liệu và nhãn X-asis của biểu đồ xem Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
46 Gỡ bỏ những liên kết ma
chúng có chứa một liên kết ngoài nào không. Nếu tìm thấy, hãy sửa lại đường link cho đúng. Các liên kết ngoài còn có thể núp trong các đối tượng (object) như là các Text box, các hình vẽ, v.v... Các đối tượng này có thể được liên kết đến một bảng tính khác. Cách dễ nhất để chọn nhanh các đối tượng, là bạn đứng tại bất kỳ một ô nào trong bảng tính, chọn Home → Find & Select → Go to Special (Excel2003: Edit → Go to... → Special), hoặc nhấn F5, rồi kích hoạt tùy chọn Object và nhấn OK. Các thao tác này sẽ chọn tất cả các đối tượng (object) có trong bảng tính. Bạn nên làm những việc sau đây trong một bản sao của file: Với tất cả các đối tượng đang được chọn, bạn có thể xóa, lưu bảng tính, đóng bảng tính, và mở ra lại xem thử có còn vấn đề gì nữa không. Cuối cùng, nơi mà bạn phải tìm là trong những Sheet ẩn mà bạn đã tạo ra, dấu đi rồi quên phứt. Bạn hãy làm cho chúng hiện lên: View → Unhide (Excel2003: Format → Sheet → Unhide). Nếu mục Unhide này bị mờ đi, nghĩa là không có Sheet ẩn. Nếu bạn vẫn còn nghi ngờ rằng có những Sheet siêu ẩn, hãy đọc lại chiêu số 5 để tìm và buộc chúng hiện ra. Thế là bạn đã xử xong những link có thực mà bị gãy. Bây giờ đến những link ma. Mở file bị lỗi lên, chọn Data → Edit links (Excel2003: Edit → Links). Đôi khi bạn chỉ cần nhấn chọn vào cái link ma, nhấn Change Source, và gán trở lại chính cái link đó. Nhưng thường thì bạn bị một thông báo lỗi rằng công thức nào đó bị lỗi, và không thực hiện được. Nếu bạn làm cách dễ như vậy không xong thì áp dụng cách này: Mở cả 2 file lên, file lỗi và file được link đến. Từ một ô bất kỳ của file lỗi, đánh dấu bằng (=), rồi qua file kia chọn cũng một ô bất kỳ, rồi Enter. Bạn đã tạo được một link thiệt, link ngon. Lưu cả 2 bảng tính lại, nhưng đừng đóng. Vào bảng tính lỗi, lại chọn Data → Edit links (Excel2003: Edit → Links) → Change source, sửa mọi tham chiếu của link ma vào bảng tính kia. Lưu lại lần nữa rồi xoá ô chứa link bạn mới tạo. Cách này thường là có hiệu quả trừ ma, bây giờ Excel nhận ra rằng bạn đã xoá link đến bảng tính còn lại. Nhưng nếu vẫn chưa trừ tận gốc và vẫn bị lỗi, bạn làm bước tiếp theo, nhưng nhớ là làm trên một bản sao của file lỗi. Tuy nhiên, cách này sẽ xoá vĩnh viễn dữ liệu của bạn, nên tốt nhất là tạo một bản dự phòng trước. Mở file lỗi lên, delete một Sheet, lưu, đóng, rồi mở lên lại. Nếu không còn thông báo update link ma, thì 100% link ma nằm trong Sheet đó. Nếu không, delete tiếp một Sheet nữa để kiểm tra. Trước khi xoá Sheet cuối cùng, phải insert một Sheet trắng. Nhớ ghi lại những Sheet chứa link ma. Tiếp theo, mở file backup hồi nãy lên, back up lần nữa, trở vào Sheet lỗi hồi nãy bạn đã ghi nhớ. Bây giờ chọn từng vùng 10 x 10 ô dữ liệu, xoá bằng lệnh Clear → Clear All. Mà khoan, bạn backup lần 2 chưa? Nếu chưa thì back up đi nhé. Bây giờ lại lưu, đóng, mở lên lại xem còn lỗi không. Nếu còn, chọn vùng 10 x 10 ô tiếp theo, lại xoá, lưu, đóng, mở lên xem thông báo update link. Đến khi nào mà không còn thông báo link ma thì nghĩa là link ma nằm trong vùng 10 x 10 ô mới xoá. Bạn tập trung tìm kiếm trong khu vực này, từng ô một, sẽ thấy lòi ra con ma.
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
47 Giảm kích thước file Excel bị phình to bất thường
CHIÊU 15
Giảm kích thước file Excel bị phình to bất thường Bạn có bao giờ có một file Excel bị tăng kích thước đến mức báo động chả biết nguyên nhân? Có nhiều lý do làm cho bảng tính bị phình lên về kích thước file và có những cách để loại trừ. Những bí quyết sau đây có thể giúp bạn nếu bạn có một file Excel có kích thước lớn bất thường.
Có khi nào bạn bị bội thực do cố ăn mà chưa tiêu hoá kịp chưa? File Excel cũng thế. Nó bị phình ra là do bạn cố nhồi nhét đủ thứ vào bắt nó phải thực hiện, nó phải nuốt trọng chứ không kịp nhai, hậu quả là nó sẽ không làm việc như ý muốn. Tôi đã thử với một file Excel chuẩn với khá nhiều dữ liệu. Với dữ liệu thô, nó có kích thước 1,37 Mb. Rồi tôi cho vào một Pivot Table, sử dụng dữ liệu nguồn là bốn cột của vùng dữ liệu. Kích thước file tăng lên 2,4 Mb. Tôi thử thiết lập vài định dạng, và kích thước file lập tức bị nhân đôi. Một trong những nguyên nhân chủ yếu làm tăng kích thước file ở những file Excel trước 2007, khi chưa có khái niệm table, là các bạn cứ thế định dạng màu, cỡ font, màu chữ, đóng khung,... cho cả cột hoặc cho cả dòng, nếu không nói là cả bảng tính; chứ không chỉ định dạng cho khu vực chứa dữ liệu. Tôi từng thấy người hễ mở bảng tính mới lên, là lập tức Ctrl+A, tô trắng toàn bộ, đóng khung toàn bộ. Không những thế họ còn xác định vùng dữ liệu nguồn cho biểu đồ, cho Pivot table, . . . là cả nguyên cột. Có khi thấy cái thanh cuộn dọc và ngang của Excel trở nên nhỏ tí tị, kéo hoài không thấy hết mà dữ liệu thì trống trơn. Để giải quyết bạn phải sửa, bỏ hết những định dạng thừa trong những dòng cột trống, bỏ cái thói quen xoá màu fill color bằng cách chọn fill trắng. Hãy chọn No Fill! Sau đó điều chỉnh dữ liệu nguồn của biểu đồ, của Pivot Table chỉ vừa với vùng có dữ liệu. Hãy làm như sau. Nhưng trước hết, hãy back up bảng tính lại.
Gỡ bỏ những định dạng trên những dòng cột thừa Bước đầu tiên là xác định bằng tay và mắt ô cuối cùng bên phải ở dưới, có chứa dữ liệu. Đừng có mà dùng phím Ctrl+ mũi tên xuống hoặc Ctrl + mũi tên qua phải, hoặc dùng Find → Select → Go To Special → Last Cells, cách này sẽ chỉ tới ô cuối cùng có định dạng, không phải ô cuối có dữ liệu. Khi đã xác định bằng mắt ô cuối chứa dữ liệu thì click chọn nguyên dòng kề dưới ô đó. Lúc này mới nhấn Ctrl + Shift + mũi tên xuống để chọn toàn bộ những dòng bên dưới vùng có dữ liệu. Sau đó dùng lệnh Clear → All để xoá vùng này. Tương tự, khi xác định ô cuối có chứa dữ liệu xong, nhấn chọn nguyên cột liền kề bên phải, nhấn tiếp Ctrl + Shift + mũi tên qua phải để chọn toàn bộ cột bên phải. Sau đó lại dùng lệnh Clear → All để xoá vùng này. Không nên dùng lệnh xoá dòng hoặc cột, vì có thể có những công thức tham chiếu đến chúng. Lưu bảng tính lại và thử xem kích thước file trong Property, bằng cách chọn Office button → Prepare → Properties → Document Properties → Advanced Properties (Excel2003: File → Properties… → General).
Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
48 Giảm kích thước file Excel bị phình to bất thường
Xoá Macro Không phải là xoá hẳn Macro, mà chỉ gỡ chúng ra ngoài file Excel. Có một cách nhanh, không gây hại đó là Export tất cả các Module và Form vào đĩa cứng. Nhấn Alt+F11 vào cửa sổ VBA. nhấn chuột phải vào từng module, chọn Remove Module (tên module). Trong thông báo hiện ra nhấn Yes, và chọn một thư mục để lưu lại. Làm tiếp cho từng cái Form, đừng quên cả những Macro lưu trữ trong Sheet hoặc Workbook. Sau khi đã xoá xong, lưu bảng tính lại. Sau đó, cũng trong cửa sổ VBA, vào menu File → Import File và Import hết những Module và Form hồi nãy. Làm như vậy, ta vẫn có thể sử dụng Form và Macro, nhưng mỗi cái như vậy sẽ tạo một file text, và ngăn chặn những thứ linh tinh mà Macro mang theo.
Điều chỉnh vùng dữ liệu nguồn Nếu sau khi làm những bước trên mà kích thước file của bạn không giảm được bao nhiêu, hãy kiểm tra dữ liệu nguồn của Pivot Table và Pivot Chart. Một vài người thường sử dụng nguyên cả cột dữ liệu để làm nguồn cho Pivot table, chỉ để phòng xa sau này có thêm dữ liệu cập nhật vào dù chỉ vài dòng. Nếu nhất thiết phải phòng xa như vậy, tốt hơn bạn dùng name động.
Làm sạch các Sheet Trong các Sheet của bạn có thể tồn tại những định dạng thừa, những style, những autoshape thấy được và không thấy được (có khi lên đến hàng trăm hoặc hàng ngàn). Để tìm ra những autoshape hoặc object ẩn bạn phải vào Option của Excel sửa lại.Với mỗi phiên bản của Excel, cách sửa có khác nhau chút ít:
Hình 39 - Chỉnh Option để Show All Object trong Excel 2007
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
49 Giảm kích thước file Excel bị phình to bất thường
Hình 40 - Chỉnh Option để Show All Object trong Excel 2003 Hoặc bạn có thể nhấn Ctrl+G → Special → Object để chọn một lúc nhiều object (hình 41). Sau khi đã xác định được những autoshape hoặc object ẩn không cần thiết, bạn có thể xóa chúng. Trong một số trường hợp, bảng tính của bạn sẽ giảm kích thước đáng kể. Ngoài các autoshape hoặc object ẩn không cẩn thiết, còn có những cái không nhìn thấy trong Sheet, mà bạn có thể cần phải làm sạch đi. Trước tiên, bạn hãy backup bảng tính. Unhide toàn bộ Sheet ẩn và cả Sheet siêu ẩn (xem lại chiêu số 5). Bây giờ bạn thử xoá lần lượt từng Sheet một (xoá hẳn), lưu lại, rồi vào Property xem lại kích thước. Hình 41 - Sử dụng Go To Special để chọn một lúc nhiều Object
Nếu sau khi xoá Sheet nào, mà kích thước file giảm đáng kể, thì Sheet đó chứa nhiều rác (không kể dữ liệu). Vậy, khi đã xác định Sheet chứa rác thì bạn phải làm gì?
Bạn hãy mở file backup hồi nãy lên, tạo một Sheet mới toanh, chọn vùng dữ liệu của Sheet chứa rác, dùng lệnh Cut (Ctrl+X) chứ đừng copy, rồi Paste vào Sheet mới.
Bằng cách cắt (Cut) thay vì Copy, Excel sẽ giữ nguyên tham chiếu cho bạn. Cuối cùng, xóa hẳn Sheet chứa rác. Hy vọng là sau bài này, các bạn sẽ biết cách xử lý những file có kích thước lớn lạ thường.
Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
50 Cứu dữ liệu từ một bảng tính bị lỗi
CHIÊU 16
Cứu dữ liệu từ một bảng tính bị lỗi Khi bảng tính bị lỗi (corrupt), bị hư, nghĩa là bạn bị mất hết dữ liệu, mà nhiều khi sự mất mát này còn đau hơn là mất tiền. Chiêu này sẽ giúp bạn một vài cách để phục hồi lại phần nào dữ liệu trong những bảng tính bị lỗi.
Một bảng tính đôi khi gặp phải những lỗi mà bạn chẳng hiểu vì lý do gì. Điều này có thể đem lại cho bạn những vấn đề trầm trọng, nhất là khi bạn bị hư một bảng tính quan trọng mà bạn chưa hề sao lưu dự phòng. Do đó, bài học đầu tiên là: Luôn luôn sao lưu bảng tính của bạn vào một nơi khác. Nhưng trong thực tế thì không phải ai cũng nhớ điều này, và, có thể là bảng tính của bạn sẽ bị hư trước khi bạn nghĩ đến việc sao lưu! Tuy nhiên, bạn đừng thất vọng quá, vì cho dù bảng tính của bạn bị lỗi, đôi khi bạn vẫn có thể mở được nó ra và có thể làm được cái gì đó...
Khi bạn vẫn còn mở được bảng tính Khi bạn vẫn còn có thể mở được một bảng tính bị lỗi, thì trước khi làm bất cứ điều gì, bạn hãy sao lưu ngay ra một bản khác, nếu không, có thể bạn sẽ mất luôn nó. Vì nếu còn giữ được bản sao lưu, bạn có thể cầu cứu được một sự giúp đỡ chuyên nghiệp hơn, khi bạn không thể làm gì nữa. Và bạn hãy thử từng cách sau đây: Đầu tiên, bạn hãy mở cái bảng tính bị lỗi đó ra, với phiên bản Excel cao nhất có thể, và lại nhấn lưu thêm một lần nữa, tuy nhiên điều này thì không cần thiết nếu như bạn đang dùng Excel 2007. Nếu như bảng tính đã làm bằng cách trên đây không hoạt động, bạn hãy cố gắng mở lại lần nữa và lưu nó dưới dạng HTML (Single File Web Page) hoặc HTM (Web Page). Rồi đóng nó lại, và lại mở ra, nhưng lần này thì lưu lại với dạng bình thường (*.xls chẳng hạn).
Hình 42 - Lưu bảng tính ở dạng Single File Web Pages www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
51 Cứu dữ liệu từ một bảng tính bị lỗi
Khi lưu ở dạng HTML hoặc HTM, bảng tính của bạn sẽ bị mất những thứ sau đây •
Với những bảng tính tạo ra từ Excel 2007: − Những tính năng mới của Excel 2007 − Các PivotTable và các biểu đồ (chúng vẫn được lưu lại, nhưng sẽ mất hết khi bạn mở ra và lưu lại với dạng bình thường của Excel) − Các VBA Project
•
Với những bảng tính tạo ra từ những phiên bản trước Excel 2007 (Excel 2003, Excel XP,...): − Những định dạng số chưa dùng đến − Những style chưa dùng đến − Các thiết lập Data Consolidation − Các Seriano − Các công thức sử dụng ngôn ngữ tự nhiên, chúng sẽ được chuyển đổi thành các tham chiếu dãy bình thường − Các hàm tự tạo − Các định dạng gạch ngang chữ (strikethrough), chỉ số trên (superscript), chỉ số dưới (subscript) − Các thay đổi có thể hồi phục (bằng lệnh Undo) − Các thiết lập định dạng trang cho các biểu đồ đã được nhúng trong bảng tính − Các danh sách cài đặt cho các ListBox và ComboBox − Các loại định dạng có điều kiện (Conditional Formatting)
Ngoài ra, các bảng tính được chia sẻ (shared Workbook) trong những phiên bản trước Excel 2007 sẽ không còn chia sẻ được nữa. Với các biểu đồ, những thiết lập cho Value (Y) axis crosses at category number trên tab Scale trong hộp thoại Format Axis sẽ không được lưu, nếu như tùy chọn Value (Y) axis crosses a maximum category được chọn; những thiết lập Vary colors by point trong hộp thoại Format Data Series cũng không được lưu nếu như biểu đồ chứa nhiều hơn một Data Serie.
Cuối cùng, nếu như bảng tính đó vẫn không hoạt động, hãy cố gắng mở lại bảng tính đó một lần nữa, và lần này thì lưu nó với dạng SYLK (loại tập tin có đuôi là *.slk – Symbolic Link). Nhưng hãy nhớ rằng, khi bạn lưu ở dạng này, thì chỉ có Sheet hiện hành (active Sheet) được lưu, do đó, nếu trong bảng tính có nhiều Sheet, bạn hãy làm thêm vài lần, với mỗi lần một Sheet, nhớ đặt tên cho nó sao cho dễ nhận biết. Rồi lại mở cái bảng tính *.slk đó ra, và lưu lại với dạng bình thường (*.xls chẳng hạn).
Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
52 Cứu dữ liệệu từ một bả ảng tính bị lỗii
Hình 43 - Lưuu bảng tính ở dạng SYLK (Sym mbolic Link)
Khhi bạn khôông còn mởở được bảnng tính Nếu như bảnng tính bị hư N ư của bạn không k thể mở m ra được nữa, bạn hããy thử dùng g Microsoftt W Word để mở nó. Nghe thì t có vẻ buuồn cười, nh hưng đôi khhi, bạn có tthể copy đư ược một vàii dữ ữ liệu trong bảng tính này n (dĩ nhiêên tất cả nhữ ững định dạnng, công thứ ức, v.v... th hì mất hết). Bạn hãy mở một bảng tíính mới, vàà tạo cho nó ó một Extennal Link (liêên kết ngoài) đến bảngg tínnh bị hư. Víí dụ: ='C:\Documeents and Settings\BNTT T\My Docum ments\[ChoookSheet.xls] s]Sheet1'!A1 1 Copy liên kết này vào những n ô kháác (số lượng g bao nhiêu thì tùy thuộc vào trí nhớ n của bạnn t đã bị hư, h nó có bao nhiêu hààng, bao nhhiêu cột...), và cũng làm m tương tự ự vềề cái bảng tính chho những Shheet khác (nnếu cần thiếết). Nếu bạn n không nhớ ớ được bất kkỳ tên Sheeet nào trongg bảảng tính đã bị hư, bạn cứ c tạo đại một m Sheet vớ ới đường dẫẫn chính xácc, Excel sẽ hiển thị tênn củủa Sheet khii bạn nhấn Enter. E Có thhể bạn sẽ th hấy được gì đó... Nếu hai cáchh trên khôngg đem lại cho N c bạn điều u gì, bạn hããy vào trangg web Open noffice.org,, doownload phhiên bản miiễn phí của bộ phần mềm m này về. Ngoại trừ ừ các tên trêên menu vàà tooolbar, Opennoffice.org khá giống Excel, E vì nó ó được tạo ra r cùng mộtt cấu trúc bảảng tính vớii Exxcel (có đếến 96% cáác công thứ ức trong Excel E có thhể sử dụng trong bản ng tính củaa Openoffice.oorg). Saau khi đã doownload phhiên bản miễn phí của Openoffice.org, bạn càài đặt nó vàào máy. Rồii dùùng nó để mở m bảng tínnh bị hư của bạn. Tron ng khá nhiềều trường hợ ợp, dữ liệu của bạn sẽẽ đư ược phục hồi. h Tuy nhiiên, những VBA code thì không còn gì cả, vì các VBA A code củaa Exxcel không tương thíchh với Openooffice.org.
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
53 Cứu dữ liệu từ một bảng tính bị lỗi
Nếu số bạn quá đen, không thể dùng Openoffice.org để cứu dữ liệu, vẫn còn một cách nữa, nhưng bạn phải mất tiền. Một trong những chương trình có thể phục hồi khá tốt những bảng tính bị hư là Corrupt File Recovery. Bạn hãy tải và cài đặt phần mềm này, chạy chương trình ExcelFix, nhấn Select File, chọn bảng tính bị lỗi, và nhấn Diagnose để phục hồi. Bạn sẽ thấy thành quả của mình, và có thể lưu lại bảng tính, nếu như bạn đã trả tiền bản quyền, còn nếu chưa trả tiền bản quyền, thì bạn chỉ có thể xem chứ không thể lưu lại.
∗∗∗
Chương 1 – GIẢM BỚT NHỮNG CỰC NHỌC KHI LÀM VIỆC VỚI BẢNG TÍNH
54 Cứu dữ liệu từ một bảng tính bị lỗi
Chương 2 NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
Mặc dù Excel cung cấp cho chúng ta nhiều tính năng để quản lý và phân tích dữ liệu, nhưng giới hạn của các tính năng này thường làm cho chúng ta nhiều lúc phải bực mình. Các chiêu trong chương này sẽ cung cấp rất nhiều cách, mà nhờ đó, chẳng những bạn có thể thoát khỏi những giới hạn của các tính năng có sẵn của Excel, mà còn làm cho các tính năng này mạnh mẽ hơn nữa.
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
Sử dụng Data Validation n khi danh sách nguồn nằ ằm trong mộtt Sheet khác
CHIÊU 17
Sử dụng Data Validation khi danh sách nguồn nằm trong một Sheet khác Sử dụng Data Valida ation là một cách dễ nhấ ất để áp dụng một quy tắ ắc nhập liệu u cho một dãy dữ liệu. Theo mặc định, đ Excel ch hỉ cho phép D Data Validattion sử dụng g những danh d sách ng guồn nằm trrong cùng một m Sheet vớii dãy dữ liệu u sẽ được áp p dụng quyy tắc này. Tuyy nhiên, vẫn có cách để lá ách khỏi chuyyện đó.
Chhiêu này sẽẽ giúp bạn làm cho Data Validatiion có thể sử dụng nhhững danh sách s nguồnn nằằm trong một m Sheet khhác. Cách thhứ nhất là lợi l dụng chhính việc đặặt tên cho một m dãy củaa Exxcel, cách thhứ hai là sử ử dụng một hàm h để gọi ra danh sácch đó.
Cáách 1: Sử dụng d Namee cho dãy nguồn n Có lẽ cách nhhanh nhất và v dễ nhất để đ vượt qua rào cản Daata Validatioon của Exceel là đặt tênn chho dãy mà bạn b sẽ dùng làm quy tắc nhập liệu.. Giả sử bạn đã G đ đặt tên cho c dãy sẽ dùng làm quy q tắc nhậập liệu là M MyRange. Bạn B chọn ô (hhoặc dãy) trrong bất kỳ Sheet nào mà bạn mu uốn có một danh sách xxổ ra để nh hập liệu, rồii troong menu Data D trên Ribbon, R bạnn chọn Dataa Tools → Data D Validattion (Excel20 003: Data → Vaalidation). Ch họn List troong danh sách s các Allow, và trong khung S Source, bạn n nhập vàoo =M MyRange. Nhấn N OK. Bởi vì bạn đãã sử dụng một m Name để đ làm List, nên bạn cóó thể áp dụnng Data Vallidation nàyy chho bất kỳ Shheet nào.
Hìình 44 - Sử dụnng Name làm dããy nguồn cho Data D Validation
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
55
56
Sử dụng Datta Validation n khi danh sá ách nguồn nằ ằm trong mộ ột Sheet khácc
Cácch 2: Sử dụụng hàm IN NDIRECT Hàm m INDIRECT() cho phép bạnn tham m chiếu đếến ô chứa dữ d liệu textt đại diện cho m một địa chỉ ô. Và rồii bạnn có thể sử ử dụng ô đó đ như môtt tham m chiếu cụục bộ, cho dù d nó tham m chiếếu đến dữ liệu trong một Sheett kháác. Bạn có tthể sử dụng g tính năngg nàyy để tham chhiếu đến nơ ơi chứa dãyy mà bạn sẽ ddùng làm danh sáchh V nguuồn cho quyy tắc Data Validation.
Hình 45 - Sửử dụng hàm INDDIRECT để chỉ raa dãy nguồn cho Data Validation
Giảả sử, dãy chứa danh sách s nguồnn nàyy nằm ở Sheet1, trong dãyy $A$$1:$A$8. Để tạo một m Dala-Vallidation, bạạn cũng làm l nhữngg bướ ớc như tôi đđã nói ở cácch 1, nhưngg thayy vì gõ tên dãy vào tro ong Source, thì bạn b nhập vàào đó công thức:
=IINDIRECT("Sheet1!$A A$1:$A$8").
H chắc chắắn rằng tùy chọn In-celll drop-down Hãy n đang được c kích hoạt, và nhấn OK K. Nếu tên Sheet của bạn có chứa khhoảng trắng N g, hoặc có dấu tiếng V Việt, bạn phải p đặt tênn Shheet trong một m cặp nhááy đơn ('). Ví V dụ, giả sử ử tên Sheet chứa danh sách nguồn n là Sheet 1 (cchứ không phải p Sheet1)), thì bạn sử ửa công thứcc trên lại nhhư sau: =IINDIRECT("'Sheet 1'!$ $A$1:$A$8").
Chhỗ khác nhaau so với côông thức hồồi nãy là có thêm một dấu d nhấy đơ ơn (') sau dấấu nháy képp ("), và một dấấu nháy đơnn (') nữa trư ước dấu chấm m than (!). Xin mở một ngoặc đơnn: Nếu như có thể được, khi gặp những X n tham m chiếu đến n tên Sheet,, bạạn nên tập thói t quen luuôn luôn bỏ nó vào tron ng cặp dấu nháy n đơn. Đ Điều này, tu uy chẳng cóó táác dụng gì với v những tên t Sheet như n Sheet1, DMHH... nhưng n nó ssẽ giúp bạn không baoo giiờ gặp lỗi, khi k bạn hay đặt tên Sheeet có khoản ng trắng, hayy là có bỏ ddấu tiếng Viiệt...
Ư điểm và Khuyết điiểm của cảả hai cách đã Ưu đ nêu trêên Đặt tên cho dãy, d và dùngg hàm INDIRECT, đều có cái tiện lợi và cả cáái bất tiện. Tiiện lợi của việc v đặt tênn cho dãy, làà việc bạn th hay đổi tên Sheet chẳnng có ảnh hư ưởng gì đếnn Data Validattion. Và đóó chính là cái c bất tiện của việc dùng d INDIR RECT, khi bạn b đổi tênn ới sẽ khôngg tự động cập c nhật tro ong công thứ ức dùng INDIRECT, cho nên nếuu Shheet, tên mớ vẫẫn muốn dùùng công thhức này, bạnn phải mở Data D Validaation ra và ssửa lại tên Sheet S trongg côông thức. Tiiện lợi của việc dùng INDIRECT, là dãy dùng làm dannh sách nguuồn của bạn n luôn luônn nằằm yên chỗỗ đã chọn (A A1:A8 tronng ví dụ trên n chẳng hạnn). Còn nếuu bạn dùng g Name, màà bạạn lỡ tay xóóa mất vài hàng (hoặcc cột) ngay chỗ chứa Name, N thì bbạn phải điềều chỉnh lạii chho đúng... www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
57 Điều khiển Conditional C F Formating bằ ằng checkbo ox
CHIÊU 18
Điều khiển Conditional Formating bằng checkbox Mặc dù Conditional C F Formating là à một trong những n chiêu u mạnh của Excel, E nhưng g muốn bậ ật hay tắt nó ó bằng ribbon hay menu thì khá bực bội. Bây giờ ờ ta biến hoá á bằng cácch điều khiển n bằng một checkbox c giố ống như một công tắc (h hoặc một cáii Toggle Button càng giống g hơn).
Conditional Formating F có từ đời Excel E 97, gáán định dạnng cho nhữ ững ô nào th hoả một sốố điiều kiện nàoo đó. Điều kiện có thểể là một điều kiện về giá trị, như ưng ta có th hể tuỳ biếnn nhhiều hơn khhi dùng điềuu kiện là côông thức, dựa d vào đó ta có thể thhay đổi định dạng choo nhhững ô này,, khi có sự thay t đổi giá trị của ô kh hác.
Dùng một Checkbox C h một Toggle hoặc T Buttton để xeem và ẩn dữ liệu Bạn muốn một m vùng dữ liệu nào đóó chỉ hiện raa lúc cần xem m, xem xonng thì biến đi đ cho rảnh.. Trrước tiên bạạn phải gán lên Sheet một m Checkbox hoặc mộột Toggle Buutton. Trrong Excel 2007, vào tab Develop per, nhấn In nsert trong Controls → chọn Chec ckbox hoặc c To oggle Butto on trong Co ontrol Toolb box (Excel20 003: View → Toolbar → C Control Toolb box), vẽ lên n Shheet một cái. Ở đây, tôi làm luôn cả c 2 cái.
Hình 466 - Chọn công cụ c Checkbox hoặc Toggle Buttoon trong Excel 22007
Hình 477 - Chọn công cụ c Checkbox hoặc Toggle Buttoon trong Excel 22003
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
58 Điều Đ khiển Conditional C Fo ormating bằng checkboxx
Nhấn vào nút Design Mode, clickk chọn cái control bạnn vừa vẽ, nhấn thêm m nút Prop perty. Tron ng cửa sổổ Property, sửa s dòng Caaption thànhh View/ Hidee, sửa dòngg Linked Celll thành $C$ $2 (cả 20077 và 2003 nh hư nhau, cảả Checkbox và Toggle Button cũngg như nhau)). Bây giờ khi k bạn click chọn Cheeckbox hoặặc nhấn nútt Toggle, ô C2 sẽ lầnn lượt có các giá trịị TRUE vàà FALSE.
Bây giờ giả g sử vùngg dữ liệu củủa bạn gồm m 4 Fields,, trong đó bạn b chỉ muuốn 3 Fieldds hiện thườ ờng xuyên,, còn Field thứ 4 thì khi k nào cầnn mới hiện ra để xem,, không cần n thì dấu đii. Bạn đánhh dấu chọn vùng chứaa Field 4, trrong 2007 bạn b vào tabb Home → Conditionall Formating → New Rule R , chọn ttiếp Use a formula to o determine which cellls to forma at (Excel2003 3: Fornat → Conditional Formating → Formula is)). Trong ô kế k bên, bạnn
Hình 48 Sửa dòngg Linked Cell troong cửa sổ Propperties
gõ:
= $C$2 = FALSE
Nhấn vào nút Formatt, định dạngg font chữ màu trắng.. Nhấn OK và OK. Nhấn N nút Deesign một lần nữa đểể thhoát ta khỏi chế độ Dessign Mode. Và V nhấn nú út Toggle hooặc click chhọn cái Cheeckbox xem m kếết quả. Nếuu bạn khôngg thích thì định đ dạng ô C2 chữ trắắng luôn, đểể khỏi thấy chữ TRUE, FA ALSE hiện lên. l
Hình 49 - Dùngg một Checkboxx hoặc một Toggle Button để xem x và ẩn dữ liệu
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
59 Điều khiển Conditional C F Formating bằ ằng checkbo ox
Tắắt mở địnhh dạng mààu cho ô Dùng Condittional Formating nhằm tô màu ô th heo điều kiệện giúp ta dễ tìm được những ô cóó giiá trị đặc biiệt cho trướ ớc. Excel 2007 2 có nhiiều định dạnng khác nhhau cho giá trị số nằm m troong khoảngg cho trước. Nhưng biệnn pháp để mở m tắt bằng checkbox llà không có sẵn. Tư ương tự nhhư phần trên, ta tạo raa một Checckbox hoặc Toggle Buutton link tới t ô $C$2.. N Nhưng lần này ta đặt Name N cho nóó là IsFill ch hẳng hạn. Ta T cũng đặtt Name cho o ô $A$2 làà Be eginNum vàà $B$2 là EndNum E , vớ ới A2 là giớii hạn dưới, thí dụ 100, và B2 là giới hạn trên,, thhí dụ 1.000. Trrong vùng dữ d liệu B5:B B16, ta muốốn giá trị nàào nằm tronng khoảng B BeginNum và v EndNum m sẽẽ được tô màu. m Vậy dùùng Condittional Form mating như trên, t chọn vvùng C8:C18, lần nàyy côông thức là: =A AND($C8>= =BeginNum m, $C8<=En ndNum, IsFill)
Chhọn cho nó một định dạng d màu thheo ý muốn. Kết quả: khi nhấn Buttoon hoặc clicck Checkbo K ox thay đổi trạng thái thhành True, các ô chứaa sốố trong khoảng (100, 1000) 1 sẽ đư ược tô màu,, các ô còn lại không ttô. Khi thay y đổi thànhh Faalse, các ô trở t lại bình thường. Đồồng thời, vìì bạn đặt côông thức liên quan đến BeginNum m vàà EndNum, nên khi thaay đổi 2 số này, n kết quảả tô màu cũnng thay đổi..
đ dạng màu cho ô Hìnnh 50 - Dùng một Checkbox hooặc Toggle Buttton để tắt mở định Bạn thấy đấyy, nếu bạn chưa c xem bàài này mà th hấy một filee tương tự ccủa người khác, k bạn cóó s dụng codde của VBA A. Sự thực thhì quá đơn ggiản phải kh hông? thhể lầm tưởngg người ta sử
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
60
Đánh dấu những ô chứa công thức bằng Conditional Formatting
CHIÊU 19
Đánh dấu những ô chứa công thức bằng Conditional Formatting Khi một ô có chứa dữ liệu, bạn có thể muốn biết dữ liệu trong ô đơn thuần là dữ liệu nhập vào, hay dữ liệu là kết quả của một công thức. Bạn có thể chỉ cần click chọn ô đó và xem trên thanh công thức. Bạn cũng có thể dùng phím tắt Ctrl + ~ để chuyển qua lại giữa chế độ xem giá trị và xem công thức. Chiêu số 19 này sẽ giới thiệu với bạn một hàm tự tạo, kết hợp với Conditional Formatting để đánh dấu ô chứa công thức. Bằng cách này có thể giúp bạn tìm ra tất cả những ô chứa công thức trong số 10.000 ô mà không phải ngó từng ô một.
Mặc dù bạn có thể dùng một hàm có sẵn của Macro4 trong Conditional Formatting, như sau: trong hộp thoại Conditional Formatting, chọn sử dụng điều kiện định dạng bằng công thức, và gõ công thức: = CELL(“type”, A1); nhưng hạn chế của việc dùng hàm CELL() là công thức sẽ tự tính lại mỗi khi có sự thay đổi nhỏ xíu trong bảng tính, vì CELL() là một hàm thuộc loại volatile. Khi Excel tính lại CELL() cho 10.000 ô như trên sẽ khiến cho bạn bực mình vì chờ đợi. Do đó bạn hãy dùng tuyệt chiêu sau đây, đơn giản, dễ làm và không phải hàm loại volatile. Bạn hãy nhấn Alt+F11 để vào cửa sổ VBA, nhấn chuột phải vào This Workbook để insert vào một Module. Nhập đoạn code sau vào khung soạn thảo: Function IsFormula (CheckCells As Range) IsFormula = CheckCells.HasFormula End Function
Do tính chất của Property HasFormula, hàm bạn mới tạo sẽ trả về các giá trị luận lý TRUE, FALSE. Nghĩa là khi bạn gõ vào ô bất kỳ công thức = IsFormula(A1) sẽ cho kết quả TRUE nếu A1 chứa công thức và cho kết quả FALSE nếu A1 chứa giá trị. Đóng cửa sổ VBA lại, trở về bảng tính. Bây giờ đánh dấu toàn bộ vùng dữ liệu của bạn (có thể chọn dư ra một số cột và dòng, phòng khi bạn cập nhật thêm dữ liệu) sao cho ô A1 là ô hiện hành. Bằng cách như chiêu số 18, bạn hãy vào được chỗ cần thiết để gõ công thức trong hộp thoại Conditional Formatting, và gõ vào: =IsFormula(A1)
Sau đó định dạng tô màu hoặc đổi màu chữ cho khác những ô còn lại. Sau khi nhấn OK bạn sẽ được kết quả là tất cả những ô chứa công thức sẽ được tô màu. Bây giờ mỗi khi bạn sửa hoặc thêm một ô trở thành công thức, ô đó sẽ có màu. Ngược lại, nếu bạn sửa một công thức thành giá trị hoặc thêm giá trị vào một ô, ô đó sẽ không có màu.
Đôi khi bạn không thấy kết quả, vì anh Bill lanh chanh và chậm hiểu, anh ta cho rằng công thức sử dụng hàm của bạn là một text nên ảnh tự sửa thành : =“IsFormula(A1)”. Vậy bạn phải vào chỗ cũ sửa lại. Cái Conditional Formatting và cái Define Function này đơn giản mà thực sự hữu ích, bạn nhỉ! www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
Đếm hoặc cộng những ô đã được định dạng có điều kiện
CHIÊU 20
Đếm hoặc cộng những ô đã được định dạng có điều kiện Chúng ta thường hỏi: "Làm thế nào để tính toán với những ô đã được tô một màu cụ thể nào đó?" Câu hỏi này thường được nêu ra, bởi vì Excel không có một hàm bình thường nào để thưc hiện được nhiệm vụ này; tuy nhiên, nó có thể được thực hiện bằng một hàm tự tạo. Vấn đề duy nhất xảy ra với việc sử dụng hàm tự tạo, là nó không thể lọc ra bất kỳ một loại định dạng nào đã được áp dụng bởi việc định dạng có điều kiện (conditional formatting). Tuy nhiên, suy nghĩ một tí, bạn vẫn có thể có được kết quả tương tự mà không phải cần đến một hàm tự tạo.
Giả sử rằng bạn có một danh sách dài những con số trong dãy $A$2:$A$100. Và bạn đã áp dụng định dạng có điều kiện cho dãy đó: đánh dấu những ô nào có giá trị nằm trong khoảng từ 10 đến 20. Bây giờ, bạn muốn lấy ra giá trị của những ô thỏa mãn điều kiện mà bạn đã thiết lập, và tính tổng của những ô đã được áp dụng định dạng đó. Không có gì khó! Bạn đừng để những kiểu định dạng đã được áp dụng chi phối bạn, nói cách khác, bạn không cần quan tâm những ô đó được định dạng kiểu gì. Bạn chỉ cần quan tâm đến điều kiện để áp dụng định dạng cho chúng (trong trường hợp này, là những ô có giá trị trong khoảng từ 10 đến 20). Sau đây là một số chiêu để tính tổng theo một hoặc vài điều kiện:
Dùng hàm SUM với công thức mảng Bạn có thể dùng hàm SUMIF() để tính tổng của những ô thỏa mãn điều kiện nào đó, nhưng chỉ một điều kiện mà thôi! Nếu muốn có nhiều điều kiện, bạn phải dùng hàm SUMIFS() trong Excel 2007, hoặc là dùng một công thức mảng. Ở đây tôi sẽ nói đến công thức mảng, vì nó có thể sử dụng trong hầu hết các phiên bản của Excel. Với trường hợp đã ví dụ trong bài này, bạn sử dụng một công thức mảng giống như sau: =SUM(IF($A$2:$A$100>10, IF($A$2:$A$100<20, $A$2:$A$100)))
Khi nhập một công thức mảng, bạn đừng nhấn Enter, hãy nhấn Ctrl+Shift+Enter. Khi đó, Excel sẽ tự động thêm một cặp dấu ngoặc ở hai đầu công thức, giống như vầy: {=SUM(IF($A$2:$A$100>10, IF($A$2:$A$100<20, $A$2:$A$100)))}
Nếu bạn tự gõ cặp dấu ngoặc { }, thì công thức sẽ không chạy. Bạn phải để Excel làm việc này cho bạn. Và bạn cũng nên biết điều này: sử dụng công thức mảng có thể làm cho Excel tính toán chậm hơn, nếu như có quá nhiều tham chiếu đến những dãy lớn.
Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
61
62
Đếm hoặc cộng những ô đã được định dạng có điều kiện
Trên diễn đàn Giải pháp Excel có rất nhiều các bài viết về công thức mảng, bạn có thể tham khảo thêm. Hoặc nếu bạn giỏi tiếng Anh và thích nghiên cứu sâu hơn về công thức mảng, bạn hãy ghé thăm trang web này: http://www.ozgrid.com/Excel/arrays.htm.
Dùng thêm cột phụ Ngoài việc sử dụng công thức mảng, bạn có thể dùng một cột phụ để tham chiếu đến những ô bên cột A. Những tham chiếu này sẽ trả về những giá trị của cột A mà thỏa mãn điều kiện bạn đã đặt ra (ví dụ: > 10, < 20). Để làm điều này, bạn theo các bước sau: Chọn ô B2 và nhập vào đó công thức: =IF(AND(A2>10, A2<20), A2, "")
Kéo công thức này xuống cho đến ô B100. Khi các công thức đã được điền vào, bạn sẽ có những giá trị nằm trong khoảng 10 đến 20 (xuất hiện trong cột B).
Để nhanh chóng "kéo" các công thức vào trong một cột xuống đến ô cùng hàng với ô cuối cùng đã được sử dụng của cột ngay bên cạnh, sau khi nhập công thức trong ô đầu tiên, hãy chọn ô đó, rồi nhấp đúp chuột (double click) vào cái Fill handle (là cái núm chút xíu nằm ở góc dưới bên phải của ô được chọn, mà bạn vẫn thường dùng để "kéo" công thức). Bây giờ, bạn có thể chọn bất kỳ một ô nào mà bạn muốn xuất hiện tổng của những giá trị thỏa mãn điều kiện đã đề ra, và sử dụng một hàm SUM() bình thường (=SUM(B2:B100) chẳng hạn). Bạn có thể ẩn (Hide) cột B đi nếu bạn muốn.
Dùng hàm DSUM Cách dùng cột phụ như tôi vừa nói, chắc chắn là chạy tốt rồi. Nhưng, Excel còn có một hàm cho phép bạn sử dụng hai hoặc nhiều điều kiện cho một dãy. Đó làm hàm DSUM(). Để thử nó, bạn dùng lại ví dụ ở trên: tính tổng của những giá trị trong dãy $A$2:$A$100 thỏa mãn điều kiện lớn hơn 10 và nhỏ hơn 20. Bạn hãy chọn các ô C1:D2, đặt tên cho nó là SumCriteria. Rồi chọn ô C1, nhập vào đó công thức: =$A$1, tham chiếu đến ô đầu tiên của Sheet. Copy công thức đó sang ô D1, bạn sẽ có hai bản sao cho ô tiêu đề của cột A, và những ô này (C1, D1) sẽ được dùng như những ô tiêu đề của vùng điều kiện của hàm DSUM, vùng mà bạn đã đặt tên là SumCriteria (C1:D2). Trong ô C2, nhập vào biểu thức >10. Trong ô D2, nhập vào biểu thức <20. Rồi tại ô mà bạn muốn có kết quả là tổng của những giá trị thỏa mãn điều kiện vừa nêu, nhập vào công thức sau: =DSUM($A$1:$A$100, $A$1, SumCriteria)
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
Đếm hoặc cộng những ô đã được định dạng có điều kiện DSUM là một hàm có hiệu quả nhất khi bạn làm việc với những ô thỏa mãn nhiều điều
kiện; và không giống như mảng, các Hàm cơ sở dữ liệu được thiết kế riêng cho những trường hợp này. Thậm chí khi chúng tham chiếu đến những dữ liệu rất lớn, làm việc với những con số lớn, thì ảnh hưởng của chúng đến tốc độ tính toán là rất nhỏ so với việc dùng công thức mảng.
Dùng hàm SUMPRODUCT Cách này, tôi học được trên Giải pháp Excel. Cũng với bài toán tính tổng của những giá trị trong dãy $A$2:$A$100 thỏa mãn điều kiện lớn hơn 10 và nhỏ hơn 20. Bạn hãy chọn ô mà bạn muốn có kết quả là tổng của những giá trị thỏa mãn điều kiện vừa nêu, nhập vào công thức sau: =SUMPRODUCT(($A$2:$A$100>10) * ($A$2:$A$100<20) * $A$2:$A$100)
Hoặc: =SUMPRODUCT(--($A$2:$A$100>10), --($A$2:$A$100<20), $A$2:$A$100)
Diễn một cách bình dân, thì hàm SUMPRODUCT sẽ copy khối $A$2:$A$100 ra thành 3 mảng (trong bộ nhớ máy tính): - Mảng thứ nhất, nếu giá trị trong một ô mà > 10, ô đó sẽ có giá trị là 1 (TRUE), còn không thì bẳng 0 (FALSE) - Mảng thứ hai, cũng tương tự như vậy, nhưng áp dụng cho những ô có giá trị <20 - Mảng thứ 3 có giá trị trong mỗi ô bằng các giá trị tương ứng trong $A$2:$A$100 Tiếp theo, SUMPRODUCT sẽ nhân từng nhóm 3 giá trị tương ứng trong mỗi mảng với nhau. Bạn sẽ thấy, chỉ khi nào giá trị trong mảng 1 và mảng 2 là 1, thì giá trị được nhân ra mới bằng giá trị tương ứng trong $A$2:$A$100; còn nếu có một giá trị nào đó trong mảng 1 hoặc mảng 2 mà bằng 0, thì kết quả của phép nhân này sẽ bẳng 0. Nói cách khác, chỉ những giá trị nào trong $A$2:$A$100 thỏa mãn điều kiện >10 và <20 thì mới được lấy ra. Cuối cùng, SUMPRODUCT sẽ cộng hết các kết quả của phép nhân ở trên (SUM là phép tính tổng, PRODUCT là phép tính nhân, SUMPRODUCT là tổng của các tích), và đó chính là kết quả mà ta muốn có.
Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
63
64 Tô màu dòng xen kẽ
CHIÊU 21
Tô màu dòng xen kẽ Ắt hẳn bạn đã từng thấy bảng tính Excel với những dòng tô màu cách nhau, thí dụ dòng chẵn thì tô màu xám, dòng lẻ không tô hoặc tô màu khác. Trình bày bảng tính tô màu cách dòng như vậy khiến cho bảng tính có vẻ Pro và làm cho người dùng dễ đọc dữ liệu. Bạn có thể định dạng từ từ bằng tay từng dòng, nếu bạn đủ kiên nhẫn, nhưng bạn biết rồi đấy, kiên nhẫn một lần thì chưa đủ. Bạn sẽ phải bực mình khi cần xoá dòng, chèn dòng, cập nhật dữ liệu. May sao, sử dụng Conditional Formatting có thể giúp bạn thực hiện tô màu nhanh và loại bỏ hết những phiền toái trên sau khi tô màu.
Giả sử bạn có dữ liệu trong vùng A1:H57, và bạn dự trù sẽ cập nhật cho đến hết tháng sẽ khoảng 100 dòng. Vậy bạn đánh dấu chọn khối A1:H100 sao cho ô A1 là ô hiện hành. Dùng cách như chiêu 18, 19, để vào chỗ cần gõ công thức của chức năng Conditional Formatting, và gõ công thức sau: = MOD(ROW(), 2)
Nhấn Format và chọn màu tô cho dòng lẻ. Nguyên nhân tô dòng lẻ: Công thức trên sẽ cho các giá trị lần lượt là 1, 0, 1, 0, … đến hết dòng 100, tương ứng với TRUE, FALSE,… và Conditional Formatting sẽ chỉ tô dòng TRUE. Hình 51 - Hộp thoại New Formatting Ruler với hàm MOD để tô màu cho những dòng lẻ
Cũng như vậy nếu bạn muốn tô màu cột cách cột, thì dùng công thức: =MOD(COLUMN(),2)
Nếu bạn có sử dụng ASAP Utilities, bạn cũng có thể làm được như sau: Vào menu ASAP → Columns & Rows → Color Each n’th row or column in selection. Chọn Row hoặc Column tuỳ ý, chọn màu tuỳ ý, gõ 2 trong ô Steps, đánh dấu vào mục chọn Conditional Formatting. Khi đó, công thức của Condition sẽ là: = MOD(ROW() - 1, 2*1) + 1 <= 1 Công thức trên có vẻ hơi phức tạp, nhưng nếu rút gọn là: = MOD(ROW() - 1, 2) = 0 thì hiệu quả vẫn tương tự. Sở dĩ nó phức tạp, là để có thể thay đổi phương pháp tô màu theo Step đã chọn. Thí dụ khi chọn Step = 3, cách 2 dòng tô 1 dòng, nghĩa là chỉ tô màu cho những dòng có công thức là: MOD(ROW() - 1, 3) = 0 Mặc dù phương pháp này dễ thực hiện, nhưng không linh hoạt: Tất cả các dòng lẻ từ 1 đến 100 đều bị tô màu, dù có dữ liệu hay không. (nhớ lại, dữ liệu hiện tại của bạn chỉ đến dòng 57). Vậy có thể chỉ tô tự động đến hết dòng cuối có dữ liệu, còn những ô chưa có dữ liệu chỉ bị tô màu sau khi nhập liệu không? Hãy xem cách sau đây. www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
65 Tô màu dòn ng xen kẽ
Tôô màu độnng Vẫn giả sử bạạn có dữ liệệu trong vùnng A1:H57,, bạn đánh dấu V d chọn khhối A1:H100 sao cho ô A là ô hiện hành. Bạn sửa công thức A1 t trong Conditional C Formattingg đã nói ở trên t lại mộtt xííu xiu (chú ý chỗ tham chiếu tuyệtt đối cột và tương đối dòng): d =A AND(MOD((ROW(), 2), COUNTA($ $A1:$H1))
Ý nghĩa côngg thức này là: Chỉ tô màu những dòng lẻ và cóó dữ liệu.
Bổ suung: Tô mààu cách 2 dòng d tô 1, hoặc tô xeen kẽ 3 mààu trở lên Bạn chỉ c cần sửaa công thức ASAP cho phù hợp, kết k hợp vớii COUNTA() cho linh hoạt. Thí dụ với các công thhức như hình h sau:
Hìnnh 52 Bạn sẽ s có kết quảả như hình sau, s dòng nào n không cóó dữ liệu thhì không tô màu: m
Hìnnh 53
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
66 Tạo hiệu ứng 3D trong g các bảng tíính hay các ô
CHIÊU 22
Tạo hhiiệu ứng 3D trong các bảng tính hay các ô Bất cứ kh hi nào bạn nhìn n thấy mộ ột hiệu ứng 3D 3 trong mộtt chương trìn nh hoặc mộtt ứng dụng g, chẳng hạn n như Excel, ắt hẳn bạn sẽ s thấy một sự đánh lừa qua thị giácc được tạo o ra bởi cách h định dạng đặc biệt. Chíính bạn cũng g có thể tạo ra hiệu ứng g này một cách dễ dàn ng bằng cách h định dạng một m ô hoặc m một dãy các ô. Phiên bản n Excel 20007 đã đưa và ào các styles của c ô, vì vậy bạn có thể tạ ạo hiệu ứng 3D 3 và lưu nó ó lại để sử dụng vào bấ ất cứ khi nào bạn muốn.
Hãy bắt đầu với H v một ví dụ d đơn giảnn, chúng ta sẽ tạo hiệu ứng 3D choo một ô để nó n nhìn nổii lêên trên giốngg như một nút n lệnh (buutton). Trrong một bảảng tính trốống, bạn chọọn ô D5. (B Bạn chọn ô D5 D bởi vì nnó không nằằm rìa bảngg tínnh). Dưới Cell C Optionns ở tab Hoome, chọn Format F → Format F Cells s → Borderr (Excel2003:: Foormat → Cellss → Border). Hoặc các bạn b có thể cllick chuột phải, p chọn F Format cells → Border. Trrong hộp Liine, chọn đư ường dày nhất n thứ 2 (b bên phải, thhứ 3 từ dướ ới đếm lên). Chắc chắnn rằằng màu đượ ợc chọn là màu m đen (hooặc chọn au utomatic nếu u bạn chưa thay đổi mặc định củaa lự ựa chọn nàyy). Bây giờ click chọnn đường viềền bên phải và đường viền bên dưới d ở bảngg (hhình 54).
Hình 54
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
67 Tạo hiệu ứn ng 3D trong các c bảng tính h hay các ô
Quay trở lại với v box Collor để chọn màu trắng. Vẫn chọn đường đ viền dày thứ 2, và v chọn haii đư ường viền còn c lại là đư ường viền bêên trên và bên b trái của ô (hình 55).
Hình 55 Chhọn tab Fill (Excel20033: Patterns) trong t hộp th hoại Formaat Cells và chọn màu xám. Clickk chhọn OK và thôi t không chọn c ô D5 nữa n (di chuy yển con trỏ chuột sangg ô khác). Ô D5 sẽ xuấtt hiiện nổi lên giống g như một m button (hình 56). Bạn B đã làm m tất cả điềuu đó chỉ vớii các đườngg viiền và bóng đổ. Nếu muốn vuui hơn và đa N đ dạng hơnn, bạn tạo một m ô nhìn giống g như làà bị lõm ho oặc thụt vàoo troong thì chọọn ô E5 (vì nó kế ô D5 D và sẽ sử dụng cho bài b tập tiếpp theo). Chọ ọn Home → Ce ells → Form mat → Forma at Cells → Border B (Exce el2003: Formaat → Cells → Border) và chọn c đườngg viiền dày nhấất thứ 2 (thứ ứ 3 bên phải từ dưới đếm đ lên) trrong bảng lline và chắcc chắn màuu đư ược chọn làà màu đen cho c đường viền v ở trên và v bên trái. Chọn màuu trắng trong g bảng màuu chho đường viiền ở bên phải và bên dưới ô. Chọ ọn tab Patteerns và chọnn màu xám. Click OK. Ô E5 sẽ bị lõõm xuống (hhình 57). Viiệc này trái ngược với ô D5 là hiệuu ứng nổi lêên.
Hìnnh 56
Hình 57
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
68 Tạo hiệu ứng 3D trong g các bảng tíính hay các ô
Nếu bạn cảm m thấy thích thú với Style của ô mà bạnn đã tạo ra. Bạạn lưu lại bằnng cách chọn Home → Styles → Cell Style → NewCell Styyle, bạn gõ têên mà bạn muuốn đặt cho Style nàày vào và clickk OK. Chú ý rằnng các Styles của ô chỉ đượcc lưu lại ở Woorkbook hiện tại mặcc dù bạn có thhể kết hợp cácc Styles này từừ những Workbook khác. Lựựa chọn này không có c trong các phhiên bản trướcc Excel 2007. Nếu N bạn muốnn lưu một style của ô trong các phhiên bản trướcc thì bạn vào Format → Styyle.
Sửử dụng hiệệu ứng 3D cho một bảng b dữ liệệu Kế tiếp, chúnng ta sẽ làm K m thí nghiệm m với công cụ c này để thhấy được cáác loại hiệu ứng 3D màà bạạn có thể tạạo ra cho các bảng hooặc các sheeets của mìnnh. Chọn ô D5 và E5, click chọnn côông cụ Form mat Painter (biểu ( tượngg cái chổi qu uét ) dướ ới Clipboard options trên tab Homee (E Excel2003: xeem trên thanhh Standard Tooolbar). Tron ng khi nhấnn chuột trái,, click chọn n ô F5 và rêê chhuột qua ô J5, J sau đó nhhả ra.
Hình 58 Bây giờ chọnn vùng D5:J5 và clickk chọn công cụ Formaat Painter m một lần nữaa. Cùng lúcc nhhấn chuột trrái, chọn ô D6, kéo chuuột ngang sang s phải vàà kéo xuốngg ô J15, sau u đó nhả ra.. K quả bạn sẽ Kết s có như hình 59.
Hình 59
Nếu bạn muuốn lưu style của c bảng này,, bạn chọn Home → Styles → Format as Table → NewTabble Style. Với các phiên bản trước t Excel 20007 thì bạn khôông thể lưu sttyle của một bảng. www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
69 Tạo hiệu ứn ng 3D trong các c bảng tính h hay các ô
Chhúng ta đã sử dụng một m đường viền v dày đểể chắc rằng hiệu ứng đđược thấy một m cách rõõ rààng, tuy nhiiên, bạn có thể tạo ra một m sự tinh tế hơn bằnng cách sử ddụng một đư ường mảnhh hơ ơn. Bạn cũng có thể sử dụngg các đườngg khác để tạạo ra nhữngg hiệu ứng hhay hơn. Cáách dễ nhấtt đểể tìm ra nhữ ững sự kết hợp có hiệuu quả là bạạn nên thử và v kiểm traa sai sót trên n một bảngg tínnh trống để tạo ra hiệu ứng mà bạnn muốn. Bạạn chỉ bị giớ ới hạn bởi sự ự tưởng tượ ợng và có lẽẽ làà khiếu thẩm m mỹ:
Hình 60 - Thí dụ dùng d màu khácc
Hình 61 - Thí dụ dùng đường kẻ khôngg liền nét cho nhhững đường kẻ ngang Hãy luôn luôôn nhớ rằngg hiệu ứng 3D H 3 có thể lààm cho bảnng tính dễ đđọc, nhìn có ó vẻ chuyênn ngghiệp và dễễ cảm nhậnn hơn, nhưnng khi chún ng được sử ử dụng quá mức chúng g có thể cóó nhhững ảnh hư ưởng trái nggược. Nên nhớ, n sử dụng g mọi thứ có mức độ. Nếu bạn muốốn tạo ra đi xa hơn và cung cấp những N n hiệu ứng ứ 3D mộột cách tự độ ộng và sinhh độộng, bạn cóó thể kết hợ ợp 3D với định đ dạng có ó điều kiệnn để tự độngg cung cấp nhiều stylee m bạn thích. mà
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
70 Tạo hiệu ứng 3D trong các bảng tính hay các ô
Bổ sung Bạn có thể dùng chính hiệu ứng 3D cho một ô (đã thực hiện ở trên) để dùng như một button thực thụ, nếu bạn kết hợp với VBA. Giả sử bạn muốn bảng tính của bạn có một button (nổi, đương nhiên), khi nhấn vào nó sẽ chìm xuống và thực thi một macro nào đó. Khi nhấn một lần nữa thì nút này sẽ nổi lên và thực hiện một macro khác hoặc dừng thực hiện macro thứ nhất. Dùng công cụ ghi macro để ghi lại quá trình lập hiệu ứng 3D cho một ô D5, ta được một đoạn code trong module, sửa lại chút đỉnh với một biến Public IsRun để tuỳ trường hợp gán Border thích hợp: Sub Change1() With Selection.Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = IIf(IsRun, 2, 0) End With With Selection.Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = IIf(IsRun, 2, 0) End With With Selection.Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = IIf(IsRun, 0, 2) End With With Selection.Borders(xlEdgeRight) .LineStyle = xlContinuous .Weight = xlMedium .ColorIndex = IIf(IsRun, 0, 2) End With End Sub
Bây giờ dựa vào sự kiện SelectionChange của Sheet, ta làm cho ô D5 thay đổi border như sau: Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$D$5" Then If Target = "Run" Then Target = "Stop" IsRun = False Else Target = "Run" IsRun = True End If Change1 Cells(1, 1).Select End If End Sub
Thí dụ này chỉ là minh hoạ, không có đoạn code nào được thực thi, nhưng ô D5 đã trở thành một nút nhấn thực sự. www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
71
Bật, tắt chức năng Conditional Formatting bằng một checkbox
CHIÊU 23
Bật, tắt chức năng Conditional Formatting bằng một checkbox Bạn thường dùng Data Validation để giới hạn dữ liệu nhập vào, hoặc dùng Conditional Formatting để cảnh báo khi nhập dữ liệu trùng. Nhưng đôi khi bạn muốn tắt chúc năng cảnh báo của Conditional Formatting. Có một cách đơn giản để bật tắt chức năng này bằng cách sử dụng một checkbox (xem Chiêu số 18), nhưng ở đây là Conditional Formatting tô màu dữ liệu nhập trùng.
Trong thí dụ dưới đây, bạn sẽ dùng Conditional Formatting để đánh dấu (tô màu) những ô có dữ liệu xuất hiện nhiều hơn một lần trong vùng dữ liệu. Giả sử trong vùng A1:A100 bạn đã thiết lập Conditional Formatting với công thức như sau: =COUNTIF($A$1:$A$100, $A1) > 1
Bây giờ bạn muốn tuỳ ý bật tắt cái Conditional Formatting này. Trước tiên bạn cùng công cu Form hoặc Control Toolbox, vẽ một cái Checkbox lên Sheet. Thiết lập Property Cell Link cho cái checkbox này là một ô nào đó, thí dụ K1. Ta vào Name box đặt luôn tên cho ô này là IsCheck. Bây giờ click chọn vùng dữ liệu A1:A100 sao cho ô A1 là ô hiện hành. Thiết lập Conditional Formatting cho vùng này với công thức sau: =AND(COUNTIF($A$1:$A$100, $A1) >1, IsCheck)
Nhấn nút Format để tô màu theo ý muốn, rồi OK. Sau khi hoàn thành, khi bạn check vào cái checkbox, ô K1 sẽ thành TRUE, và những ô có dữ liệu trùng sẽ bị tô màu. Trái lại, khi bạn uncheck cái checkbox, ô K1 sẽ có giá trị FALSE, và chẳng có ô nào bị tô màu nữa. Cũng như chiêu số 18, bạn hoàn toàn có thể dùng cái toggle Button làm một cái công tắc bật tắt y như cái checkbox.
Hình 62
Chắc cũng cần nói lại cách mà công tắc này hoạt động: Do công thức của bạn là AND(điều kiện 1, điều kiện 2), nên chỉ cần một trong 2 điều kiện không thoả (=FALSE), nguyên điều kiện chung sẽ False, Conditional Formatting không hoạt động; vì Conditional Formatting chỉ có tác dụng khi điều kiện chung là TRUE.
Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
72 Dùng nhiều u List cho mộ ột Comboboxx
CHIÊU 24
Dùng nhiều List cho một Combobox Khi làm việc v với nhiềều danh sách h, bạn có thểể kết hợp mộ ột combox vớ ới một nhóm m các optio on button đểể điều khiển việc v lựa chọn một danh sá ách.
Exxcel cung cấp cho bạn những cáchh để chọn một m thứ tronng một danhh sách để nh hập liệu vàoo m ô. Trongg đó có công cụ comboobox, từ dan một nh sách xổ xuống của combobox,, bạn có thểể chhọn một ngàày trong tuầần, một thánng trong năm m, hoặc mộtt sản phẩm trong danh sách. Nếu bạn cầnn chọn lựa trong 3 daanh sách khác N k nhau, bạn sẽ nghhĩ rằng bạn n cần 3 cáii coombobox. Nhưng, N thayy vì vậy, bạn dùng ch hiêu sau đâây: kết hợp một combo obox với 3 opption buttonn. Trrong thí dụ sau, bạn hããy tạo một bảng tính, điền số từ 1 đến 7 vàoo vùng A1:A A7, điền từ ừ chhủ nhật đếnn thứ hai vào vùng B1:B7, và điiền tháng từ ừ tháng 1 đđến tháng 7 vào vùngg C1:C7.
Một cách nhhanh nhất đểể điền 21 ô nàày là hãy gõ 1 vào A1. Tronng khi nhấn giữ g Ctrl, nắm cái fill handle của ô A1 và kéo xuuống A7. Tiếp theo, gõ Sunday vào B2, doubled click vào fill handle của B1. Cuối cùng gõ g Jan vào ô C1, C double-clicck vào fill handle của C1. Bây giờ bạnn vào Deveeloper → Co ontrols → Insert → Form F Contro ols (Excel20 003: View → Tooolbars → Foorms) và nhấ ấn icon Opttion Button. Vẽ 3 cái Option O Buttoon lên Sheeet. Vẽ thêm m m cái Grouupbox bao quanh một q 3 cáii Option ch ho đẹp. Sau đó vẽ mộtt cái Combo obox ở mộtt chhỗ thích hợpp. Nhấn chuột phải N p vào cáác Option, chọn c Edit Text T , sửa cá ác từ Option n1, Option 2, 2 Option 3 thhành Numbe er, Weekdayy, Month; và sửa Group pbox1 thành h Select Lisst (hình 63).
Hình 63
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
73 Dùng nhiều u List cho mộtt Combobox
Nhấn chuột phải N p vào mộột Option bất b kỳ, chọn n Format Co ontrol, trong g tab Contro ol, gõ $F$1 vàào ô Cell Lin nk. Ở ô D6 6 gõ công thhức: =ADDR RESS(1, $F F$1) & ":" & ADDRESS S(7, $F$1)
Vào Deefine Name, đặt mới m một name MyyRange, cóó công th hức là: =INDIR RECT($D$6 6)
Nhấn chuột phải vào cái coombobox, vào v Formatt control, trong Inp put Range gõ MyRang ge, và Celll link là $G$8.
Hìnnh 64
ption, ô F1 Bây giiờ khi bạn chọn một ttrong các op thay đổi các giá trị t từ 1 đếnn 3, ô D6 th hay đổi vớii các giiá trị $A$11:$A$7, $B B$1:$B$7, $C$1:$S$7. $ . Và listt trong combbobox cũngg đổi theo.
Bổổ sung Có một vấn đề đ là 3 list không phảii lúc nào cũ ũng dài bằngg nhau (bằnng 7 trong thí t dụ trên),, thhí dụ số từ 1 đến 10, thhứ trong tuầnn từ Chủ nh hật đến thứ bảy, tháng từ 1 đến 12 2. Vậy ta sẽẽ phhải làm gì? Taa hãy làm từ từ nhé, trrước tiên là cách dùng ô phụ (tác giả cũng dùùng 2 ô phụ ụ). Gõ côngg thhức sau vào ô G1: =C COUNTA(IN NDIRECT(A ADDRESS(1, $F$1) & ":" &ADDRE ESS(100, $ $F$1)))
V công thứ Với ức trên, G1 sẽ s có các giiá trị là 10, 7, 7 12 tương ứng với F11 là 1, 2, 3. Sử ửa tiếp số 7 chết trong công thức ô D6 thành $G$1 cho động: đ =A ADDRESS((1, $F$1) & ":" & ADDR RESS($G$1 1,$F$1)
K quả hoànn toàn mỹ mãn. Kết m Ô D6 sẽ lần lượt làà $A$1:$A$$10, $B$1:$$B$7, $C$1:$S$12
Bâây giờ là cáách GPE: dấu d (bỏ) cáác ô phụ Hiện Name MyRange H M của ta là =IN NDIRECT($ $D$6), sửa bước b thứ nhhất là thay $D$6 bằngg côông thức của D6: =IINDIRECT(ADDRESS(1, $F$1) & ":" &ADDR RESS($G$1, $F$1))
K đó thay $G$1 bằng công Kế c thức củủa G1: =IINDIRECT(ADDRESS(1, $F$1) & ":" & AD DDRESS(CO OUNTA(IND DIRECT(AD DDRESS(1, $F F$1) & ":" & ADDRESS S(100, $F$1 1))), $F$1))
Taa có thể đààng hoàng xoá x ô D6 vàà ô G1. Chỉỉ còn một ô F1 là linkk cell của 3 options, taa foormat nó thàành chữ trắnng là OK.
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
74
Tạo mộtt list xác thựcc thayy đổi theo sự ự lựa chọn từ một m list khácc
CHIÊU 25
Tạo một list xác thực thay đổi theo sự lựa chọn từ một list khác
Trrước tiên, chúng c ta cầnn chuẩn bị một số dữ liệu để thự ực hành bài này. Bạn hãy h tạo mộtt Shheet mới vàà đặt tên là List L và tại ô A1 nhập vàào tiêu đề Objects. O Tại ô B1 nhập vào tiêu đềề C Correspondin ng List. Vùùng A2:A5 bạn nhập vào v từ Can.. Vùng A2::A9 nhập vào v từ Sofa.. V Vùng A10:A A13 nhập vàào từ Showeer. Vùng A1 14:A17 nhậập vào từ Caar. Sau đó, trong vùngg B2:B17 bạn nhập vào các c từ sau: Tin, Steel,, Opener, Lid, L Bed, Seeat, Loungee, Cushion, Raain, Hot, Coold, Warm, Trip, Journney, Bonnet,, và Boot. Tạại ô C1 nhậập vào tiêu đề đ Validatioon List. Kế đó, bạn nhậập vào các ttừ sau tại cáác ô C2:C5:: C Sofa, Shhower và Caar. Đây là danh Can, d sách ch hứa các từ duy d nhất từ vùng A2:A A17.
Bạnn có thể dùng chức năng Addvanced Filterr để lọc ra dannh sách duy nhhất này bằng cách chọn vùng A2:AA17 → Data → Sort & Filter → Advannced (Excel20003: Data → FFilter → Advaanced Filter) → Unique Records Only O → Filterr the List in Plaace ➝ OK. Saau đó chép daanh sách kết quả q lọc duy nhhất và dán d vào vùng C2:C5. C Saau khi nhậpp xong bạn có c danh sáchh như hình sau:
Hình 65 Bư ước tiếp theeo là chúng ta sẽ định nghĩa n một số s Name choo các List trrên. Bạn vàào Formulass → Define Nam mes → Nam me Managerr → chọn Ne ew (Excel200 03: Insert → Name → Define). Trong g hộộp Name bạạn nhập vào từ Objects. Tại hộp Reefer to bạn nhập n vào côông thức sau u: =O OFFSET($A A$2,0,0,CO OUNTA($A$ $2:$A$20), 1) 1
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
75
Tạo một listt xác thực thay đổi theeo sự lựa chọn từ một list khác
Nhấn nút OK N K sau khi nh hập xong côông thức trêên. Tiếp theeo, bạn nhấấn New (Exceel2003: nhấnn Addd) để tạo Name N mới. Trong T hộp Name nhập p vào tên làà ValList vàà tại Refer to nhập vàoo =$ $C$2:$C$5. Nhấn Clos se để đóng hộp h thoại lạại. Bạn chèn thêêm một Sheeet mới có têên là “Sheeet1”. Vào Fo ormular → c chọn Define Names → Na ame Manager → chọn New N (Excel2003: Insert → Name → Define). Tron ng hộp Namee, nhập vàoo Correspondin ngList và tạii Refer to nh hập vào côn ng thức sau: OFFSET(IN NDIRECT(A ADDRESS(M MATCH(Vall1Cell, Obje ects, 0) + 1 1, 2, , , "Lis sts")), 0, 0,, =O COUNTIF(Ob bjects, Val1 1Cell), 1)
Tiiếp tục nhấnn New (hoặcc Add trong Excel E 2003) để đ thêm Nam me mới. Tro ong hộp Naame bạn đặtt têên là Val1Ce ell và tại Reffer to nhập vào =$D$6 và nhấn OK K. Tiiếp tục nhấn New để thhêm Name mới với tên n là Val2Ce ell và Refer to là =$E$ $6 nhấn OK K saau khi hoàn tất. Đây là danh sách s các Naame mà bạnn đã tạo:
Hìnnh 66 – Xemdanh sách các Nam me trong hộp thoại t Name Manager (Excel 20007) Chúng taa đã chuẩn bị xong các thứ cầnn thiết, bâyy giờ đã đến lúc áp dụng chứcc năng Dataa Validationn. Chọn ô $D D$6 trên Shheet1, sau đó đ vào ngănn Data → tạ ại nhóm Datta Tools bạn n chọn Dataa Validation n → chọn ng găn Settingss trong hộpp thoại Datta Validatio on (Excel200 03: Data → Validation → Settings).
Chọn loạại List tại hhộp Allow và tại hộpp Source nh hập vào: =ValList
Hình 67
Đánh dấuu chọn In-ccell dropdow wn, sau đó ó nhấn OK để đ hoàn tất (hình 67).
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
76
Tạo mộtt list xác thựcc thayy đổi theo sự ự lựa chọn từ một m list khácc
Chhọn ô E6, sau s đó vào ngăn Settin ngs trong hộp h thoại Daata Validatio on như trên n. Bạn chọnn List tại Allow w và nhập và ào trong hộpp Source: =C Correspond dingList
Đánh dấu chọọn vào In-ceell dropdow wn và nhấn OK O .
Hình 68
Trong quá trìnnh thiết lập Daata Validationn cho ô E6, bạnn sẽ nhận đượcc thông báo lỗỗi: “The source currently evaluates to t an error. Doo you want to continue?”. BBạn hãy chọn Yes. Y Lỗi này xuất hiện là do ô D6 đang rỗng. Bạn thử chọnn một tên trrong danh sách s tại ô D6 D và xem sự s thay đổi tương ứng trong danhh c tại D6 như hình saau: sáách tại ô E6 tùy theo đốối tượng màà bạn đang chọn
Hình 69
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
Sử dụng chức năng thay thế (Replace) để gỡ bỏ các ký tự không mong muốn
CHIÊU 26
Sử dụng chức năng thay thế (Replace) để gỡ bỏ các ký tự không mong muốn Khi nhập dữ liệu hay khi sao chép và dán dữ liệu từ nguồn khác vào Excel thì các ký tự không mong muốn sẽ xuất hiện trong toàn bộ bảng tính của bạn. Sử dụng chiêu này bạn có thể khắc phục được những rắc rối khi gỡ bỏ các ký tự không mong muốn bằng tay. Chức năng thay thế (replace) trong Excel có thể giúp bạn gỡ bỏ các ký tự không mong muốn trong bảng tính, nhưng phải qua một vài bước phụ.
Bạn có thể thay thế những ký tự không mong muốn bằng chuỗi rỗng tựa như nó chưa hề tồn tại. Muốn vậy bạn cần biết mã của từng ký tự mà bạn muốn gỡ bỏ. Tất cả các ký tự đều mang một mã riêng và Excel sẽ cho bạn biết nó là gì khi bạn sử dụng hàm CODE. Hàm CODE sẽ trả về một mã số cho ký tự đầu tiên trong một chuỗi. Mã này tương đương ký tự mà máy tính của bạn đã thiết lập. Để thực hiện điều này, chọn một trong các ô có chứa những ký tự không mong muốn. Từ thanh công thức, bôi đen ký tự và sao chép ký tự đó. Tiếp theo chọn ô trống bất kỳ (A1 chẳng hạn) và dán ký tự đó vào ô đã chọn (A1). Tại ô khác, nhập công thức sau: =CODE($A$1)
Công thức này trả về mã của ký tự không mong muốn. Sau đó, bạn chọn toàn bộ dữ liệu của bạn, chọn Home → Editing → Find & Select → Replace (Excel2003: Edit → Replace…), ở khung Find what: nhấn phím Alt và gõ số 0 kèm theo code đã đưa ra bởi công thức trên.
Để nhập mã code của một ký tự kèm theo phím Alt, bạn phải dùng bàn phím số (Numeric Keyboard). Bạn không thể dùng dãy phím số dàn hàng ngang ở phía trên. Với bàn phím laptop, bạn phải sử dụng phím Fn để bật bàn phím số và nhập code bằng những phím này. Nếu mã số là 163 thì nhấn Alt và nhấn 0163 (hoặc bạn có thể để con trỏ chuột tại ô có ký tự không mong muốn, sao chép ký tự đó và dán vào ô Find what cũng được). Bỏ trống khung Replace With và nhấn Replace all. Việc làm này sẽ xóa bỏ tất cả những ký tự không mong muốn rất nhanh qua việc dò tìm mã ký tự. Lặp lại các bước ở trên cho mỗi ký tự không mong muốn tiếp theo.
Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
77
78 Chuyển đổi con số dạng văn bản sang số thực
CHIÊU 27
Chuyển đổi con số dạng văn bản sang số thực Đôi khi, nội dung trong một ô trông có vẻ như là một con số, nhưng bạn không thể thực hiện các phép tính với nó. Đây là trường hợp những “con số “ đang được định dạng dưới dạng text. Chiêu này trình một số cách giúp bạn dễ dàng chuyển đổi những con số đang ở dạng text sang số thực để có thể tính toán với chúng.
Các giá trị số (number) trong Excel được mặc định canh lề phải và văn bản (text) thì canh lề trái. Do vậy, cách đơn giản để nhận biết các giá trị số và văn bản trong một cột trên bảng tính là bạn thiết lập chế độ canh lề mặc định cho cột đó. Bạn vào Home → nhóm Alignment → chọn Format Cells → vào ngăn Alignment (Excel2003: Format → Cells → Alignment) → chọn General tại hộp Horizontal để thiết lập việc canh lề mặc định cho cột đang chọn → nhấn OK để đóng hộp thoại Format Cells lại. Bạn kéo cột rộng ra một ít để đễ phân biệt việc canh lề, khi đó bạn sẽ thấy các giá trị số, ngày tháng sẽ được canh lề phải và văn bản sẽ được canh lề trái.
Dùng Paste Special để chuyển giá trị số dạng văn bản sang số thực Đây là cách nhanh và dễ dàng nhất để chuyển các giá trị số dang văn bản sang số thực. Các bước thực hiện như sau: Chọn một ô trống nào đó và nhấn lệnh Copy (Ctrl+C) → quét chọn vùng số liệu dạng văn bản định chuyển đổi (ví dụ như vùng A1:A9 ở hình trên) → nhấp phải chuột và chọn Paste Special… → chọn Add tại nhóm Operation → nhấn OK để hoàn tất. Việc làm trên sẽ giúp chuyển toàn số các con số dạng văn bản sang số thực, vì ô rỗng có giá trị là 0 và khi bạn cộng bất kỳ số nào vào một con số lưu dưới dạng văn bản trong Excel thì bạn đã làm cho con số dạng văn bản chuyển thành số thực.
Dùng các hàm TEXT để chuyển đổi Bạn có thể áp dụng nguyên tắc như cách trên vào một số hàm có sẵn của Excel để thực hiện việc chuyển đổi. Thông thường, khi bạn dùng một hàm thuộc nhóm Text và kết quả trả về dưới dạng con số thì Excel vẫn xem con số đó là giá trị dạng văn bản. Giả sử bạn có một vùng dữ liệu A1:A10. Bạn dùng hai hàm trong nhóm Text là LEFT và FIND để tách các giá trị ra khỏi các chuỗi văn bản như sau: =LEFT(A1, FIND(" ", A1) -1)
Tuy nhiên, sau khi dùng hàm LEFT để tách phần giá trị ra, thì các kết quả trả về vẫn được Excel xem như là văn bản vì chúng được canh lề trái. Do vậy, bạn cần phải hiệu chỉnh công thức tách chuỗi trên một ít để kết quả trả về là các con số thực sự, bằng cách cộng thêm số 0 vào sau công thức trên: =LEFT(A1, FIND(" ", A1) -1) + 0
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
79 Trích xuất dữ d liệu số tron ng một chuỗii bằng VBA
CHIÊU 28
Trích xuất dữ liệu số trong một chuỗi bằng VBA Bạn thườ ờng lấy dữ liệệu từ nguồn ngoài, chẳng g hạn từ Inteernet, trong đó đ có dữ liệu u số xen lẫ ẫn chữ như: “1,254.00VN ND” hoặc “USSD 2,500.00”, ”, thậm chí cò òn phức tạp p hơn. Và cũng c có khi bạn b đã nhập p liệu hỗn hợp ợp text và số kkhông theo quy q luật nào o để có thểể lấy riêng số ố ra bằng các hàm tách ch huỗi thông th hường. Dùng g một hàm tự ự tạo viết bằng VBA, bạn b có thể trrích xuất riên ng phần số rra, dù cho ch huỗi có kiểu u dạng gì đi đ nữa.
Bạn hãy nhấnn Alt+F11 để đ vào cửa sổ VBA, inssert một Moodule và dánn đoạn codee sau vào: Functi ion Extract tNumber(rC Cell As Ra ange) Dim lCount As s Long Dim sText As String Dim lNum As String S sTex xt = rCell l For lCount = Len(sText) To 1 Ste ep -1 If IsNumeri ic(Mid(sTe ext, lCoun nt, 1)) The en lNum = Mid(sText, lC Count, 1) & lNum E End If Next t lCount Extr ractNumber r = CLng(lN Num) End Fu unction
Vào lại Exceel, trong ô B1 V B gõ dữ liiệu số xen lẫn l text tuỳỳ ý trong ô kếế bên C1 gõ công thức: ý, =EXTRACTN NUMBER(B B1)
T sẽ có kết quả như hìnnh 70. Ta
Hình 700
Bổổ sung Vẫn còn chúút vấn đề: nếếu dữ liệu là V l số thập phân p như ô B5, hoặc ddữ liệu gồm 2 nhóm sốố riêêng biệt trở ở lên như ô B4, B kết quả sẽ không như n ý muốn.. Để giải quyếtt vấn đề số thập phân, tôi t có một hàm h khác: Functi ion CtoN(My ystr As St tring, Optional Daut tp As Stri ing) As Double Dim Kqng, Kqt tp, Neg As Double, Kqtam As String Dim Sotp As Double, D Le As Byte Neg = 1 Le = 0
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
80 Trích xuấtt dữ liệu số trrong một chu uỗi bằng VBA A
For i = 1 To Len(Mystr) tam = Mid(M Mystr, i, 1) S Select Case e tam Case 0 To T 9 Kqtam = Kqtam & tam Case "-" Neg = -1 Case Dau utp Kqng = Kqtam Le = 1 Mystr = Right(M Mystr, Len(Mystr) - i) Kqtp = CtoN(Mys str) Sotp = Kqtp * 10 1 ^ (-Len(Kqtp)) E End Select Next t i Sele ect Case Le L C Case 0 CtoN = IIf(Kqtam = "", 0, Kqtam) I K C Case 1 K + Sotp p CtoN = Kqng End Select CtoN N = CtoN * Neg End Fu unction
Ghhi chú: Khi sử dụng hàm này, bạnn sẽ thêm vàào hàm mộtt thaam số cho biết b dấu thậập phân là dấu nào, dấu d phẩy (,)) hayy dấu chấm m (.). Thí dụụ =CtoN(“U USD 14255.20”,”.”), vàà nếuu bạn biết ch hắc là số ngguyên thì khhông cần thêm. Hààm này đọc được cả sốố âm nếu kýý hiệu số âm m là dấu trừ ừ và đứng trước số. Hình 71
Để giải quyếtt vấn đề nhiiều nhóm sốố khác nhau u trong chuỗỗi, tôi cũng có một hàm m: Functi ion CtoNPlu us(Mystr As A String, sttchuoi As Byte, _ Option nal Dautp As A String) As Double News str = Myst tr For i = 1 To sttchuoi If Len(News str) < 2 Then T Exit For C CtoNPlus = CtoN1st(N Newstr, Dautp) Next t i News str = "" End Fu unction --------------------------------------------------------------
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
81 Trích xuất dữ d liệu số tron ng một chuỗii bằng VBA
Functi ion CtoN1st t(ByVal My ystr As String, Opti ional Daut tp As String) _ As Dou uble Dim Kqng, Kqt tp, Neg As Double, Kqtam As String Dim Sotp As Double, D Le As Byte, NewStr2 As A String Neg = 1 Le = 0 For i = 1 To Len(Mystr) tam = Mid(M Mystr, i, 1) S Select Case e tam Case 0 To T 9 Kqtam = Kqtam & tam If IsN Numeric(Mi id(Mystr, i + 1, 1)) ) = False And Mid(My ystr, i + 1, 1) <> "," And _ Mid(My ystr, i + 1, 1) <> "." Then New wstr = Righ ht(Mystr, Len(Mystr r) - i) Exi it For End If f Case "-" Neg = -1 Case Dau utp Kqng = Kqtam Le = 1 NewStr r2 = Right t(Mystr, Len(Mystr) - i) Kqtp = CtoN1st( (NewStr2) Sotp = Kqtp * 10 1 ^ (-Len(Kqtp)) E End Select Next t i Sele ect Case Le L C Case 0 CtoN1st = IIf(Kqta am = "", 0, 0 Kqtam) C Case 1 S CtoN1st = Kqng + Sotp End Select CtoN N1st = Cto oN1st * Neg g End Fu unction
Cúú pháp hàm m: CtoNPluss(Mystr , sttcchuoi, [Dautp]) Stttchuoi là số ố thứ tự nhóóm số trong chuỗi, Dau utp là ký tự dấu d phân cáách thập phâân.
Hình 72 – Một số ví dụ dùng hàm CtoNPlus Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
82 Tùy biến cchú thích của a ô bảng tính h
CHIÊU 29
Tùy bbiiến chú thích của ô bảnngg tính Bạn thườ ờng lấy dữ liệệu từ nguồn ngoài, chẳng g hạn từ Inteernet, trong đó đ có dữ liệu u số xen lẫ ẫn chữ như: “1,254.00VN ND” hoặc “USSD 2,500.00”, ”, thậm chí cò òn phức tạp p hơn. Và cũng c có khi bạn b đã nhập p liệu hỗn hợp ợp text và số kkhông theo quy q luật nào o để có thểể lấy riêng số ố ra bằng các hàm tách ch huỗi thông th hường. Dùng g một hàm tự ự tạo viết bằng VBA, bạn b có thể trrích xuất riên ng phần số rra, dù cho ch huỗi có kiểu u dạng gì đi đ nữa.
K chúng taa chèn chúú thích cho ô bằng lệệnh Review → Commeents → New Khi w Commentt (E Excel2003: Inssert → Comm ment), Excel sẽ mặc địn nh chèn tên người n dùngg của máy tíính vào hộpp chhú thích. Bạạn có thể thhay đổi điềuu này bằng cách vào Office O → Exc cel Options s → Popularr (E Excel2003: Toools → Optionns → Generaal). Bạn nhậ ập lại đoạn văn v bản mặặc định mon ng muốn tạii hộộp nam me:
Hình 73 – Sửa lại tên người dùng để làm m mặc định troong các chú thícch cho ô Mặc dù chú thích cho ô có mục đích M đ chính là l hiển thị các thông bbáo cho bạn hoặc choo nggười dùng khác, k bạn cóó thể tùy biếến nó nhằm mục đích lààm rõ hơn cchủ ý của bạạn. Trrước tiên, bạn b cần tùy biến thanh Quick Acceess Toolbarr (QAT) để tthêm một nút n lệnh vàoo đóó, các bướcc thực hiện như sau: Office O → Ex xcel Options → Custom mize. Tại hộp h Choosee co ommands frrom bạn chọ ọn Smart Arrt Tools → Format F Tab → nhấn nút Add để thêm m vào QAT T → nhấn OK hoàn h tất (Exccel2003: gọi thanh t Drawing g bằng cách View V → Toolbbars → Draw wing).
Hình 74 – Đặt thêm nút lệnh lên thanh Quick Q Access Tooolbar trong Excel 2007
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
83 Tùy biến chú ú thích của ô bảng tính
Chèn một m chú thhích cho ô bằng cách h vào ngănn Review w → tại nhóm n Comm ments → chọn New w Comme ent (Excel20 003: Insert → Comment)). Một hộp p chú thích sẽ xuất hiện h và bạnn có thể nhậập nội dungg chú thícch vào đó (hhình 75). Để thay y đổi hình dạng của hhộp chú thích này bạnn nhấp trái chuột lênn khung viềền của nó đểể thoát khỏii chế độ nhập liệu → chọn lệnnh Change AutoShapee Hìnnh 75 – Chèn thhêm chú thích cho c ô từ than nh QAT → chọn c kiểu hhình dạng mong m muốnn trong các c nhóm hình h Basic Shapes, Bllock Arrow,, Fllow Chart, Callouts C và Stars and Banners B . Sa au khi chọn,, hình dạng hộp chú thíích của ô sẽẽ thhay đổi tức thì: t
Hình 76 – Thay đổi hình h dạng của hộp chú thích (trong ( Excel 20007)
Đối với phiên bản Excel 20007 thì việc hiệu ứng 3-D choo hộp chú thích được thiết lậập mặc định và các tùùy chọn Shadoow Setting đã bị loại bỏ. Bạạn có thể thayy đổi các tùy chọn đổ bóng, hiệu ứnng 3-D trong phiên bản Exccel trước đó như n sau: chọn khung viền của hộp chú thích, nhấấn vào thanh Drawing, chọnn nút lệnh Shaadow Settingss rồi chọn kiểuu mong muốn.
Thhêm ảnh vào v chú thíích Một điều cũnng khá thú vị là bạn có M c thể dùng g các hộp chú c thích để hiển thị các c ảnh màà khhông làm ảnnh hưởng đếến các nội dung d khác. Thhí dụ như, bạn b có thể chèn c một đồồ thị vào hộ ộp chú thíchh nhằm minnh họa tốt hơn h cho cácc sốố liệu mà khhông cần phhải lúc nào cũng c hiện đồ ồ thị lên. Để thêm hìnnh, bạn chọọn ô đang có chú thíích → nhấpp phải chuộột lên ô → chọn Editt Co omment → chọn khu ung viền củủa hộp chú thích → nhấp n phải cchuột → ch họn Formatt Co omment (Exxcel2003: nhấ ấp chuột 2 lầần liên tiếp lê ên khung viềền của hộp cchú thích) → chọn ngăn n Co olors and Lines → tại hộp h Color, chọn c Fill Efffects → chọ ọn nút Selecct Picture → chọn hìnhh vàà nhấn Inserrt → OK → OK. O
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
84 Tùy biến chú thích của ô bảng tính
Hình 77 – Dùng Fill Effects để thêm hình vào trong chú thích
Trích xuất nội dung chú thích Để trích xuất nội dung trong hộp chú thích, chúng ta cần viết một hàm người dùng đơn giản. Bạn nhấn tổ hợp Alt+F11 để vào cửa sổ VBE hoặc vào ngăn Developer → Code → Visual Basic (Excel2003: Tools → Macro → Visual Basic Editor), sau đó vào Insert → chọn Module → nhập vào đoạn mã sau: Function GetCommentText(rCommentCell As Range) Dim strGotIt As String On Error Resume Next strGotIt = WorksheetFunction.Clean(rCommentCell.Comment.Text) GetCommentText = strGotIt On Error GoTo 0 End Function
Vào File → Save (Ctrl+S) để lưu Module, sau đó vào File → Close and Return to Microsoft Excel (Alt+Q) để trở về cửa sổ bảng tính. Bạn vào một ô trống nào đó và nhập vào: =GetCommentText(B2)
Với B2 là ô đang có chú thích. Nhấn Enter để xem kết quả.
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
85 Sắp xếp theo thứ tự dựa theo nhiều hơn ba cột
CHIÊU 30
Sắp xếp theo thứ tự dựa theo nhiều hơn ba cột Chức năng sắp xếp dữ liệu (sort) trong những phiên bản Excel trước 2007 bị giới hạn với việc chỉ sắp xếp trong phạm vi 3 cột. Trong hầu hết các trường hợp, 3 cột là đủ nhưng đôi khi bạn cần sắp xếp nhiều hơn 3 cột dữ liệu. Chiêu này sẽ giúp bạn vượt qua hạn chế này.
Với ví dụ sau, chúng tôi giả sử bạn có các cột dữ liệu liên quan với nhau A, B, C, D và E, và bạn muốn sắp xếp dữ liệu này đầu tiên theo cột A, tiếp theo là cột B, kế đến là cột C, tiếp nữa là cột D và cuối cùng là cột E. Để làm điều này, bạn sắp xếp lần lượt theo thứ tự ngược: Sắp xếp theo cột cuối cùng trước và tiếp theo tuần tự ngược đến cột đầu tiên. Chọn các cột từ A đến E, sau đó chọn Data → Sort. Chọn để sắp xếp theo thứ tự cột C đầu tiên, tiếp theo là đến cột D và sau đó đến cột E. Nhấn Sort. Bây giờ chọn các cột từ A đến E và chọn Data → Sort. Lúc này, bạn chọn sắp xếp theo thứ tự cột A trước rồi mới đến cột B. Click Sort. Mọi thứ sẽ được sắp xếp theo thứ tự. Excel đã sắp xếp theo 5 cột thay vì 3 cột. Nếu bạn muốn Excel tự động làm điều này, bạn có thể sử dụng một macro mà sẽ sắp xếp theo vùng chọn và giả định rằng dữ liệu của bạn có các tiêu đề cột được xác định và định dạng ở hàng đầu tiên của vùng chọn. Nếu các tiêu đề được in đậm, Excel sẽ biết chúng là các tiêu đề và sẽ không sắp xếp chúng. Thay vào đó, nó sẽ sắp xếp cột đầu tiên bên trái trước rồi mới tới cột bên phải cho đến tối đa là 256 cột. Đoạn code macro bạn cần sử dụng phải được đặt trong một module chuẩn. Để làm điều này, bạn chọn Tools → Macro → Visual Basic Editor (Hoặc nhấn Alt+F11), sau đó chọn Insert → Module và gõ đoạn code sau vào: Sub SortByX( ) Dim i As Long For i = Selection.Columns.Count To 1 Step -1 Selection.Sort Key1:=Selection.Cells(2, i), _ Order1:=xlAscending, Header:=xlGuess, Orientation:=xlTopToBottom Next i End Sub
Để quay lại Excel, bạn đóng cửa sổ code này lại hoặc nhấn Alt+Q. Ngay khi bạn dán đoạn code này vào, bạn đã có thể thực hiện được việc sắp xếp này: Tô chọn vùng cần sắp xếp, kể cả tiêu đề, rồi chạy code.
Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
86 Sắp xếp p ngẫu nhiên n
CHIÊU 31
Sắp xxếếp ngẫu nhiên Bạn có th hể dùng Exceel để chọn ra một cách ng gẫu nhiên ba a người thắng cuộc – 1, 2 và 3 – từ ừ một danh sách s trên bản ng tính. Để th hực hiện điềều này một cá ách dễ dàng g nhất và công c bằng nhất, n bạn nên n dùng hàm RAND kết hợ ợp với tính năng n sắp xếp p của Excel.
Giả sử bạn có một m bảng dữ ữ liệu như hình h 78. Tạii ô A2 bạn nhập vào: =RAN ND và sao chép c xuốngg đến ô A10. Bây giờ, g bạn cóó thể sắp xếếp các cột Name N , Age e và ID D No. theo cột c A và từ đó chọn ra được ngẫuu nhiên n 3 người thhắng cuộc. Hàm RAND sẽ được đ tự độnng tính lại mỗi khi cóó sự thaay đổi trên bảng tính, ddo vậy chún ng ta có thểể nhấn F9 để ép Excel tính tooán lại và từ ừ đó chọn raa Hìnnh 78 được những phầần tử trongg danh sách h một cáchh nggẫu nhiên. Tuy T nhiên chúng c ta cầnn phải tạo một m thủ tục sắp xếp lạii dữ liệu sau u khi Excell tạạo ra bộ số ngẫu n nhiên mới. m Để việc chọnn lựa được dễ d dàng, chúúng ta sẽ gh hi một Macrro và gán nóó vào một nút n lệnh trênn bảảng tính. Mỗi M khi muốốn chọn ra nhóm ngườ ời thắng cuuộc thì bạn chỉ cần nhấấn nút lệnhh nàày. Bạn làm m theo hướngg dẫn sau: Bư ước này bạnn sẽ tiến hàành ghi Maccro: Bạn chọ ọn một ô bấất kỳ và vàoo Developerr → Code → Re ecord Macro o (Excel2003 3: Tools → Maacro → Reco ord New Macrro…). Chọn 4 cột A, B, C và D rồii nhhấn F9. Vàoo Data → So ort & Filter → Sort → chọn c sắp xếếp cột A theeo thứ tự tù ùy ý (nhỏ → lớ ớn hoặc lớn → nhỏ). Bước tiếp t theo, bạn hãy vào ngănn m Controlss → Insertt Develop per → nhóm (Excel2003: View → Toolbars → Forms) → chọn Bu utton (Form m Control) và v vẽ thànhh một núút trên bảnng tính → chọn tênn Macro vừa v ghi → nhấn OK để đ hoàn tất..
Nhấn vàào nút vừa ttạo, đặt cho o nó một cáii tên, giả sử là Pick W Winner (hìn nh 79).
Bạn chọọn cột A vàà ẩn nó để người n dùngg không thấy t các sốố ngẫu nhiêên. Mỗi lầnn bạạn nhấp chuuột lên nút Pick Winner thì dữ liiệu của bạnn sẽ được sắắp xếp mộtt cách ngẫuu nhhiên và bạn có thể dễ dàng d chọn raa 3 người th hắng cuộc. Hình 79
Hàm RAND trong các phiêên bản trước Excel E 2003 có tồn tại lỗi tronng việc phát số s ngẫu nhiên. Về mặt m lý thuyết, hàm RAND chhỉ trả về các giá g trị từ 0 đếến 1, điều này không phải luôn luuôn đúng khi phát p nhiều số ngẫu n nhiên vì đôi khi hàm ttrả về giá trị nhỏ hơn 0. www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
87 Thao tác trêên dữ liệu vớii Advanced Filter F
CHIÊU 32
Thao tác trên dữ liệu với Advanced Filter Nếu bạn n đã quen vớ ới công cụ Auto Filter, bạ ạn hẳn đã th hấy những hạn h chế của a AutoFilteer. Nếu bạn cần c xử lý chọ ọn lọc dữ liệu u ngoài giới h hạn này, Advvanced Filterr là một ch họn lựa tốt.
Dù cho bị hạạn chế, AutooFilter cũngg đã là một công cụ hữuu ích để chỉỉ thể hiện một m phần dữ ữ liệệu lên màn hình theo một m vài điềều kiện nào o đó. Nhưngg đôi khi bạạn không th hể chọn lọcc thhông tin cầnn thiết khi dùùng AutoFilter. Advanced Fiilter sẽ hữu dụng hơn nhiều. A n Tuy nhiên nếu bạn muốn ddùng Advan nced Filter,, bạạn phải sắp xếp dữ liệuu đúng chuẩn như đã nói n ở Lời nói n đầu: chừ ừa ít nhất 3 dòng trốngg trêên cùng bảnng dữ liệu, dùng một dòng d duy nh hất làm tiêu đề bảng dữ ữ liệu, và kh hông mergee bấất cứ ô nào của bảng dữ ữ liệu.
Những trườờng hợp đơơn giản Khi sử dụng Advanced Filter K F cho những n trườn ng hợp đơn giản, bạn sẽẽ phải dùng g tiêu đề cộtt lààm tiêu chí lọc, l nên bạnn sẽ phải coopy tiêu đề cột dán vàoo chỗ nào đđó trên dòng g 1. Nhưngg tốốt nhất bạn nên n dùng một m công thứ ức chẳng hạn như =A4 4 để bảo đảảm rằng bất cứ lúc nào o điiều kiện lọc cũng đúngg, dù cho bạnn có thay đổ ổi tiêu đề cộột. Dùng côông thức này y cho tất cảả cáác cột mà bạạn muốn làm m tiêu chí lọc. l Sau đó ngay dưới mỗi tiêu đềề (dòng 2, và v 3) bạn đểể nhhững điều kiện k lọc. Nhhững điều kiện k lọc sẽ dùng d nhữngg toán tử so sánh như: =, >, <, >=,, <= =, <>.
Xin nói thêm m, Excel 2003 và kể cả Exceel 2007 chỉ có thể lọc một llần 2 điều kiện (AND hoặc OR) chho một cột. Hơơn thế, nếu bạn muốn lọc dữữ liệu theo 2 tiêu chí trên 2 cột, thì chỉ có thể kếết hợp bằng tooán tử AND giữữa các điều kiệện của 2 cột. Ghi nhớ mộột điều rằng những điều kiệện OR cần sắp xếp theo chiềều đứng, nhữnng điều kiện AND sẽẽ sắp theo hàng ngang. Do đó đ nếu bạn cầnn lọc theo 2 điều kiện AND và v cùng một tiêu chíí, thì phải dùng một tiêu đề cột trên 2 ô. Các điều kiệnn OR:
Hình 800 – Lọc dữ liệu bằng Advancedd Filter với điềuu kiện tại C2 hoặc C3 Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
88 Tha ao tác trên d dữ liệu với Advanced Filterr
Hình 811 – Lọc dữ liệu bằng Advancedd Filter với điềuu kiện tại C2 hoặc C3 Các điều kiệnn AND:
Hình 82 8 – Lọc dữ liệuu bằng Advanceed Filter với điềều kiện tại C2 vàà D2
Hình 83 8 – Lọc dữ liệuu bằng Advanceed Filter với điềều kiện tại C2 vàà D2 K hợp AND Kết D và OR: www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
89 Thao tác trêên dữ liệu vớii Advanced Filter F
Hình 84 - Lọc ra tất cả nhữngg người thuộc bộ b phận KT có mức m lương từ 4000 đến 700; hoặcc những người thuộc t bộ phận HC H
Hình 85 - Lọc ra tất cả những người thuuộc bộ phận KTT hoặc bộ phận HC mà có mức lương từ 400 đến 700 Những thí dụụ đơn giản trên N t đây, nếếu biết cách, bạn vẫn cóó thể sử dụnng AutoFiltter. Bây giờ ờ taa sẽ áp dụngg Advanced Filter cho vài v thí dụ mà m AutoFilteer không làm m được.
Những trườờng hợp phhức tạp Bất cứ khi nào n áp dụngg Advancedd Filter cho điều kiện là l công thứ ức như các trường hợpp dư ưới đây, bạnn phải nhớ không k dùngg tiêu đề củaa bảng dữ liiệu làm tiêuu đề cho điều u kiện. Bạnn hããy đặt một tên t cho điềuu kiện, hoặcc để trống. Thí dụ 1: Cũũng với dữ liệu l như đã làm thí dụ ở phần trướ ớc, để lọc raa những ngư ười có mứcc ương nhỏ hơ ơn mức lươ ơng trung bìình, thì bạn n dùng côngg thức sau ((tại bất kỳ ô nào thuộcc lư vùùng Criteriaa, ở hình 86, tôi nhập côông thức nàày tại ô C2): =D D6
K quả ở C22 sẽ là TRUE Kết E hoặc FAL LSE, bạn đừ ừng quan tâm m, mà cứ dùùng Advancced Filter:
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
90 Tha ao tác trên d dữ liệu với Advanced Filterr
Hình 86 – Dùng D Advanced Filter với công thức tại C2 để lọc ra những nggười có mức lươơng dưới mức trrung bình (giá trị ở D2 là giá trị trung bình tínnh sẵn 468,82355 để tiện theo ddõi) Bạn cũng có thể kết hợpp thêm điềuu kiện bộ ph hận là KT (llọc ra nhữngg người thu uộc bô phậnn K mà có mứ KT ức lương dư ưới mức trunng bình):
Hình 87 8 - Advanced Filter với công thức t tại C2 để lọc ra những nggười thuộc bộ phận KT mà có mức lương dưới mứức trung bình Lư ưu ý rằng D6 D là một thham chiếu tư ương đối tro ong khi $D$$6:$D$22 làà một tham chiếu tuyệtt đốối. Điều nàày là cần thiết t để Exxcel dò tìm m lần lượt D6, D D7, … trong vùn ng cố địnhh $D D$6:$D$222, hễ giá trị nào của D66, D7, … mà m có kết quuả TRUE thhì cho hiện, FALSE thìì ẩnn dòng. Đó là cách mà anh Bill ta thực t thi Ad dvanced Filtter.
Thí dụ 2: Nhận thấy rằằng có nhữnng mức lươ N ơng mà nhiềều người hư ưởng, và có những mứcc lương màà chhỉ một ngườ ời có, ta muốn m lọc ra những ngư ười có mứcc lương trùnng với một người nàoo khhác, ta dùngg công thức như sau:
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
91 Thao tác trêên dữ liệu vớii Advanced Filter F
=C COUNTIF($ $D$6:$D$22 2;D6) rel="nofollow">1
Hìnnh 88 - Lọc ra những người có những mức lươơng giống nhauu
Còn nếu muốốn lọc nhữnng người có mức lương độc, chỉ mộột người có, ta dùng cô ông thức: =C COUNTIF($ $D$6:$D$22 2;D6)=1
Hìnhh 89 - Lọc ra nhữững người có mức m lương không trùng với ai hhết
Bây giờ nếu bạn muốn lọc l ra chỉ nhhững mức lương l khôngg trùng nhaau, cho ra một m cột khácc m hộp thooại Advanceed Filter, hãy h click vàào ô Copy to anotherr thhì làm như sau: khi mở lo ocation, click chọn vào ô Unique records r only y, chọn thêm m ô sẽ copyy sang ở ô Copy C To, và à đểể trống vùngg Criteria:
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
92 Tha ao tác trên d dữ liệu với Advanced Filterr
Hình 900 – Sử dụng Uniique records onnly để lọc ra nhữững dữ liệu duyy nhất K quả: Kết
Hình 91
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
93 Tạo các định dạng số cho riêng bạn
CHIÊU 33
Tạo các định dạng số cho riêng bạn Excel đã có những định dạng số của riêng nó nhưng thỉnh thoảng bạn cần sử dụng một định dạng số không có sẵn trong Excel. Sử dụng chiêu này, bạn có thể tạo ra các định dạng số mà bạn có thể điều chỉnh cho nhu cầu riêng của bạn.
Trước khi bạn thử những chiêu này, sẽ có ích cho bạn nếu bạn hiểu được làm thế nào Excel nhận biết được các định dạng của ô. Excel nhận biết một định dạng của ô khi có 4 phần sau (từ trái sang phải): số dương, số âm, giá trị 0, và giá trị chuỗi. Mỗi phần được ngăn cách bởi một dấu chấm phẩy (;). Khi bạn tạo ra một định dạng số cho riêng bạn, bạn không cần phải định dạng tất cả 4 phần này. Nói cách khác, nếu định dạng của bạn chỉ có hai phần thì phần đầu tiên được sử dụng cho cả các số dương và các giá trị 0, trong khi phần thứ 2 sẽ được sử dụng cho số âm. Nếu định dạng của bạn chỉ bao gồm một phần, tất cả các loại số sẽ dùng một định dạng. Chuỗi bị ảnh hưởng bởi các định dạng riêng chỉ khi bạn sử dụng tất cả 4 phần, phần cuối sẽ sử dụng cho chuỗi.
Đừng nghĩ rằng những định dạng riêng chỉ áp dụng chỉ cho các dữ liệu kiểu số. Các định dạng số cũng áp dụng cho các dữ liệu kiểu chữ. Định dạng riêng cho số được hiển thị ở hình 92 là định dạng tiền tệ chuẩn của Excel, nó chỉ ra số tiền âm là màu đỏ.
Hình 92 – Một ví dụ định dạng số trong Excel Nếu bạn gõ một số dương tương ứng với một giá trị tiền tệ, Excel sẽ định dạng nó ngay lập tức bao gồm dấu phẩy (,) ngăn cách hàng ngàn, theo sau hai số lẻ thập phân. Excel sẽ định dạng tương tự cho giá trị âm, ngoại trừ số âm được hiển thị là màu đỏ. Bất kỳ giá trị 0 nào cũng sẽ không có ký hiệu tiền tệ và sẽ được hiển thị hai số lẻ thập phân (0.00). Nếu bạn gõ một chuỗi vào một ô, Excel sẽ hiển thị dòng chữ “Chuỗi hiển thị”, bất kể giá trị thật sự của chuỗi bạn gõ vào là gì. Điều quan trọng là phải chú ý, việc định dạng một giá trị của ô không ảnh hưởng đến giá trị đích thực của ô. Ví dụ, gõ bất kỳ số nào vào ô A1. Nhấn chuột phải và chọn Format Cells → Number → Custom, và sử dụng bất kỳ định dạng nào ngay tại con trỏ chuột đầu tiên (trong hộp Type), gõ “Hello” (với dấu nháy kép “”). Sau đó nhấn OK. Mặc dù ô hiển thị từ “Hello” nhưng bạn có thể thấy giá trị thật sự của ô bằng cách chọn ô và xem trên thanh công thức (Formula bar), hoặc nhấn F2. Nếu bạn tham chiếu ô này trong một công
Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
94 Tạo các định dạng số cho riêng bạn
thức – ví dụ, =A1+20 – kết quả của ô sẽ dẫn đến định dạng lúc nãy, nghĩa là sẽ trả về kết quả là “Hello” (bạn hãy làm thử, bạn sẽ thấy kết quả ngay tức khắc!) Nếu bạn đã tham chiếu ô A1 cùng với những ô khác mà có bất kỳ định dạng chuẩn Excel nào – ví dụ, =Sum(A1:A10) – kết quả trả về sẽ vẫn theo định dạng riêng của ô A1. Excel đưa ra một giả thiết đã được thiết lập trước rằng bạn muốn kết quả của ô đã được định dạng giống như cách tham chiếu đến một hay nhiều ô. Nếu các ô tham chiếu chứa nhiều hơn một loại định dạng thì bất cứ định dạng riêng nào cũng sẽ được ưu tiên trước. Điều này có nghĩa là, bạn phải luôn luôn nhớ rằng Excel sử dụng một giá trị thật sự của ô để tính toán, và sẽ không lấy giá trị thể hiện của nó. Điều này có thể tạo ra ngạc nhiên khi Excel tính toán dựa trên các ô đã được định dạng không có số lẻ thập phân hoặc có một vài số lẻ thập phân, thí dụ: Để thấy được điều này, bạn gõ 1.4 vào ô A1 và 1.4 vào ô A2, định dạng cho cả hai ô là không có số lẻ thập phân theo sau bằng cách bạn chọn vùng A1:A2, click chuột phải, chọn Format Cells → Number, trong khung Decimal Places chọn 0. Sau đó gõ công thức =A1+A2 vào một ô khác. Dĩ nhiên kết quả trả về sẽ là 3 vì Excel đã làm tròn.
Excel có một lựa chọn được gọi là Precision as Displayed, bạn có thể tìm thấy bằng cách chọn Office button → Excel Options → Advanced (Excel2003: Tools → Options → Calculation), nhưng bạn nên biết rằng định dạng này sẽ thay đổi vĩnh viễn các giá trị trong các ô từ đầy đủ các số lẻ thập phân (gồm 15 ký số) đến bất kỳ định dạng nào, bao gồm các số lẻ thập phân, được thể hiện. Nói cách khác, khi bạn đánh dấu chọn Precision as Displayed và nhấn OK thì nó sẽ không trả lại kết quả ban đầu. (Bạn có thể thử nhưng các thông tin về các số lẽ thập phân mở rộng sẽ bị mất đi.) Ghi chú thêm: để hiểu thêm điều này, bạn làm ví dụ như sau ô A1 bạn gõ 1.53, A2: 2.75, A3: 5.68, A4: 3.25, A5: sum(A1:A4). Kết quả bạn thấy được ở ô A5 là 13.21. Giờ bạn vào Office button → Excel Options → Advanced và chọn Set precision as display. Chọn vùng A1:A4, bạn nhấn nút Decrease Decimal, bạn sẽ thấy phần thập phân bị làm tròn dần lên. Khi còn một số thập phân thì tổng là 13.30; khi không còn chữ số thập phân nào nữa thì tổng là 14. Bây giờ, bạn lại dùng nút Increase Decimal, bạn sẽ thấy phần số lẻ ở sau các số ban đầu bạn gõ vào đã trở thành số 0 hết. Đây là điều bạn nên chú ý khi lựa chọn tùy chọn này. Tuy nhiên nếu ở các ô A1:A4 là công thức thì dữ liệu ban đầu của bạn vẫn còn nguyên. Ví dụ, thay vì gõ trực tiếp ô A1 là 1.53, bạn gõ =1.53 và tương tự như thế cho các ô. Định dạng mặc định cho tất cả các ô trong Excel là General. Nếu bạn gõ một con số vào một ô, Excel thường sẽ đoán định dạng số nào là phù hợp nhất. Ví dụ, nếu bạn gõ 10% vào một ô, Excel sẽ định dạng ô đó là kiểu Percentage. Trong hầu hết các trường hợp thì Excel đoán khá chính xác nhưng thỉnh thoảng bạn cần thay đổi lại. Khi sử dụng định dạng cho các ô, hãy tránh việc bị cám dỗ để định dạng canh trái, canh phải hay canh giữa. Theo mặc định các số sẽ được canh phải và chuỗi sẽ được canh trái. Nếu bạn bỏ điều này, bạn có thể nhận biết thoáng qua dù cho ô đó là chuỗi hay số vì trong trường hợp ví dụ trước, ô A1 bạn thấy là chuỗi ("Hello") nhưng thực sự nó là một số. Mỗi phần của một định dạng được đưa ra sử dụng những mã định dạng riêng của nó. Các mã này ảnh hưởng đến Excel trong việc thể hiện dữ liệu theo cách mà bạn muốn. Vì vậy, www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
95 Tạo các định dạng số cho riêng bạn
thí dụ, giả sử bạn muốn số âm xuât hiện trong ngoặc đơn, và tất cả các số, số dương, số âm và số 0 đều hiển thị 2 số lẻ thập phân. Để làm điều này, bạn click chuột phải chọn Format Cells, tab Number mục Custom, ở khung Type bạn gõ: 0.00_ ;(-0.00) Nếu bạn muốn số âm màu đỏ, bạn làm tương tự như trên nhưng trong khung Type bạn gõ: 0.00_ ;[Red](-0.00) và chú ý là hãy sử dụng dấu ngoặc vuông ([ ]) trước code. Code sử dụng cho định dạng nói cho Excel biết để tạo ra số màu đỏ. Bạn có thể sử dụng nhiều code định dạng khác nhau trong các mục ở Format cells/number/custom. Bảng 2-1 đến bảng 2-5 được lấy từ tài liệu của Microsoft đã giải thích những code này.
Bảng 2.1 - Các mã về định dạng số Mã số
Mô tả
General
Định dạng số chung (gõ như thế nào thấy như thế ấy)
0 (số 0)
Ký hiệu 0 đóng vai trò như số thế chổ cho một ký hiệu số. Ký hiệu 0 chỉ ra rằng nếu số được định dạng không có nhiều ký tự số như số 0 trong mã định dạng thì số 0 sẽ thế chỗ số đó. Thí dụ nếu mã định dạng là 0000.000 thì số 123.45 mà bạn gõ vào sẽ được hiển thị là 0123.450
#
Ký hiệu # đóng vai trò như ký hiệu 0 chỉ khác là nó không buộc một ký số phải thế chỗ nếu không có số nào tương ứng. Ví dụ nếu mã định dạng là #,###.## thì số 1234.5 sẽ được hiển thị là 1,234.5.
?
Ký hiệu này cũng giống ký hiệu 0 chỉ có khác là nếu trống chỗ thì nó thay bằng một khoảng trắng chứ không phải là số 0. Điều này hữu ích nếu bạn muốn canh thẳng đấu phân cách thập phân trong bảng. Ngoài ra ký hiệu ? trong cũng được sử dụng trong phần định dạng phân số. Ví dụ: # ???/??? thì số được thể hiện sẽ đuợc trình bày chính xác đến 3 con số và nếu có thể giản ước tốt thì nó hiện ra đến mức dưới 3 và có thêm khoảng trắng.
%
Nếu bạn sử dụng ký hiệu này, thì khi hiển thị số, Excel sẽ tự động nhân số đó với 100 và thêm dấu này đằng sau.
, (dấu phẩy)
Dấu phân cách hàng ngàn.
E+ E- e+ e-
Thể hiện một số dưới dạng scientific. Thí dụ: mã là 0.00E+00 thì số 12345.56 được thể hiên 1.23E+04
Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
96 Tạo các định dạng số cho riêng bạn
Bảng 2.2 - Các mã định dạng chuỗi Mã chuỗi
Mô tả
$ - + / ( ) : khoảng trắng
Các ký hiệu này, nếu được thể hiện trong mã định dạng, thì sẽ được thể hiện trong phần hiển thị của số đó. Các ký hiệu khác muốn được thể hiện ra thì bạn phải tham khảo ký tự \ bên dưới
\ký tự
Đây là ký hiệu đặc biệt không thể hiện trong định dạng, nhưng nó bắt buộc Excel phải thể hiện ký tự tiếp theo sau nó, dù ký tự đó là ký tự gì. Ví dụ: \” thì dấu ” sẽ được thể hiện. Nếu bạn muốn thể hiện dấu \ thì bạn phải ghi trong mã là \\
"text"
Trong trường hợp bạn muốn thể hiện một chuổi ký tự sau hay trước một số thì bạn bỏ chuỗi ký tự đó trong dấu ngoặc kép như thế này: "VND" #,##0.00 thì một số bất kỳ sẽ được thêm vào đằng trước “VND”
*
Giống như ký hiệu \ nhưng khác một điều là Excel sẽ điền ký tự đứng sau nó cho đến hết chiều dài của ô.
_ (dấu gạch dưới)
Ký hiệu này thường được dùng với dạng: _), nó nhắc nhở Excel chèn một khoảng trắng vào vị trí của nó. Ví dụ: trong một định dạng có dấu ngoặc bao quanh số âm, dấu chấm thập phân của một số dương không được canh thẳng hàng với dấu chấm thập phân của số âm, bởi vì số âm sẽ mất nhiều vị trí hơn bên phải dấu thập phân vì phải thể hiện dấu đóng ngoặc. Trong trường hợp này bạn dùng một dấu _ tại cuối phần định dạng của số dương để Excel dành một khoảng trắng sau số dương: một khoảng trắng tương đương với vị trí dấu đóng ngoặc trong số âm. Ví dụ: #,##0_);(#,##0).
@
Ký hiệu @ dùng để chỉ chuổi ký tự được nhập vào ô. Trong ví dụ ở phần trên ký hiệu @ thể hiện những gì đã nhập vào ô.
Bảng 2.3 - Các mã về định dạng ngày tháng năm Mã ngày
Mô tả
M
Chỉ ra số tháng mà không có số 0 ở đầu với số tháng có một chữ số. Ví dụ: 1, 2,...12.
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
97 Tạo các định dạng số cho riêng bạn
Mm
Chỉ ra số tháng và có số 0 ở đầu với số tháng có một chữ số. Ví dụ: 01, 02, 03...12
Mmm
Chỉ tháng nhưng là với 3 chữ đầu của tháng (theo tiếng Anh). Ví dụ tháng 1 = Jan
Mmmm
Chỉ tháng và hiện đầy đủ tên tháng. Ví dụ tháng 1 = January
D
Chỉ ngày với một chữ số đối với số nhỏ hơn 10
Dd
Chỉ ngày với 2 chữ số đối với số nhỏ hơn 10, ví dụ: 01, 02,... 22, 23
Ddd
Chỉ thứ trong tuần với 3 ký tự. Ví dụ thứ Hai = Mon, thứ Ba = Tue
Dddd
Chỉ thứ trong tuần với đầy đủ các ký tự. Ví dụ: Monday, Tuesday, Wednesday...
Yy
Chỉ năm với 2 số cuối của năm. Ví dụ: năm 2008 = 08, năm 2009 = 09...
Yyyy
Chỉ năm vơi đủ 4 số của năm. Ví dụ: 2008, 2009, 2010....
Bảng 2.4 - Các mã định dạng về thời gian Mã ngày
Mô tả
H
Chỉ giờ với một chữ số
Hh
Chỉ giờ với 2 chữ số
m
Chỉ phút với một chữ số
mm
Chỉ phút với 2 chữ số
s
Chỉ giây với một chữ số
ss
Chỉ giây với 2 chữ số
AM/PM am/pm
Hiển thị giờ với 12 tiếng, và hiển thị AM, PM hay bạn cũng có thể dùng am/pm, A/P, a/p, S/C
Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
98 Tạo các định dạng số cho riêng bạn
Bảng 2.5 - Các mã định dạng khác Mã định dạng
Mô tả
[BLACK], [BLUE], [CYAN], [GREEN], [MAGENTA], [RED], [WHITE], [YELLOW], [các màu khác tùy bạn chọn]
Dùng để thể hiện màu. Màu bạn chọn phải là màu trong 56 màu của bảng màu.
[giá trị điều kiện]
Dùng để ra điều kiện vơi các toán tử so sánh: >, <, =, >=, <= , <> (không bằng). Ví du: [>100] : điều kiện lớn hơn 100
Hãy chú ý đến điểm đặc biệt ở mã định dạng cuối cùng trong bảng 2.5: các toán tử so sánh. Giả sử bạn muốn định dạng số là: 0.00_ ;[Red](-0.00) để hiển thị số âm là màu đỏ và trong ngoặc đơn nếu số nhỏ hơn -100. Để làm điều này, bạn làm như sau: 0.00_ ;[Red][<-100](-0.00);0.00
Mã định dạng [Red][<-100](-0.00) được đặt trong phần số âm tạo nên kết quả này. Việc sử dụng phương pháp này kết hợp với định dạng có điều kiện bạn có thể nhân đôi số điều kiện định dạng có điều kiện từ 3 lên đến 6 điều kiện. Thường người sử dụng muốn hiện thị giá trị dollar ở dạng chữ. Để làm điều này, ở khung type của Format cells/number/custom, bạn gõ: 0 "Dollars and" .00 "Cents"
Định dạng này sẽ ảnh hưởng đến một số được nhập vào như 55.25 được hiển thị là: 55 Dollars and .25 Cents. Nếu bạn muốn đổi số thành dollars và cents, hãy tham khảo thêm hai hàm tự tạo từ link sau của Microsoft: http://www.ozgrid.com/VBA/ValueToWords.htm http://www.ozgrid.com/VBA/CurrencyToWords.htm. Bạn cũng có thể sự dụng một định dạng riêng để hiển thị các từ như : Low, Average, hay High cùng với số được gõ vào. Đơn giản chỉ việc sử dụng mã định dạng sau: [<11]"Low"* 0;[>20]"High"* 0;"Average"* 0
Hãy chú ý đên việc sử dụng dấu *. Dấu này sẽ lặp lại các ký tự tiếp theo trong định dạng để điền đầy ô theo độ rộng cột, nghĩa là tất cả các từ Low, Average, hoặc High sẽ bị dồn về bên phải, trong khi số sẽ bị dồn về bên trái.
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
99 Tăng thêm số s lần Undo cho c Excel
CHIÊU 34
Tăng thêm số lần Undo cho Excel Tất cả ch húng ta đều đã đ quen thuộ ộc với chức năng Undo củ ủa Excel, cho phép chúng g ta làm lạ ại những saii lầm của mình. m Tuy nhiiên, theo mặ ặc định, với những Excell trước Exccel 2007, phiêên bản chún ng ta chỉ có th hể Undo đượ ợc 16 lần. Chiêu này giúp p bạn có th hể tăng số lần n Undo lên nhiều n hơn, có ó thể đến 1000 lần.
Khi bạn sử dụng K d chức năng Undoo của Excell, và bạn đãã thực hiệnn Undo 16 lần, thì nútt U Undo bị mờ đi, không thể t Undo đư ược nữa. Ngoài N ra, khhi bạn nhấn nút Save để đ lưu bảngg tínnh, thì nút Undo cũngg bị mờ đi, và danh sáách những tác t vụ (nhữnng hành độ ộng đã thựcc hiiện trên bảnng tính) mà bạn b đã thựcc hiện bị mấất sạch. Đó là l do khi bạạn lưu bảng tính, Excell chho rằng bạnn đã hài lòngg với bảng tính t này (thì mới nhấn Save), và nnó thấy rằng g không cầnn thhiết phải giữ ữ lại danh sáách những tác vụ trước khi lưu nữaa. Bạn có thểể thấy rằng,, quay lui lại 16 lần làà không đủ,, nhưng làm m cách nào để tăng số lần này lên n? Nghĩa làà làm cách nào n để tăng danh sách ccác tác vụ của bạn lên?? Thưa rằng, có cách, và v bạn có thhể tăng con n số này lênn đến 100 lần n.
Hình 93 – Chạy lệnh l Regedit từ hộp thoại Run của Windows
Để làm điềều này, trướ ớc hết, bạn hãy thoát khỏi k Excel.. Sau đó bạn n chạy lệnhh Run của W Windows (Sttart → Run, hoặc nhấn phím Window+R), gõ vào đó Reg gedit.exe vàà nhấn OK. Khi bạn đãã mở được chương trìn nh Regedit,, hãy tìm đến khóa:
HKEY_CURR RENT_USE ER \ Softwa are \ Microso oft \ Office \ 11.0 \ Exce el \ Optionss
Co on số 11.0 ở trên đây có thể khácc, ví dụ vớii Ex xcel2000 thhì nó là 10..0, với Exccel 2007 thìì nó ó là 12.0. Nhấn Edit → New → DW WORD Value e (xem hình h 94 4). Một mục mới New Value #1 sẽ s được tạoo raa trong khunng bên phảii, bạn nhập vào đó chữ ữ UndoHistory, và nhấn n Enter. Nhấn đúpp (d double-clickk) vào mục UndoHistory mới tạo,, rồ ồi gõ vào hộộp thoại mở ở ra một con n số bất kỳ,, miễn m là lớn hơn h 16 và nhhỏ hơn 100. Nhấn OK, rồ ồi thoát Reggedit. Bạạn hãy khở ởi động lại Excel và thử làm gìì tro ong đó, rồi nhấn vào nnút Undo xem x bạn cóó th hể Undo đượ ợc bao nhiêuu lần nhé. Hy vọng rằngg Undo 1000 lần, đã là quá đủ choo bạạn. Tuy nhiiên, nếu bạạn nhấn lưu u bảng tính,, th hì danh sáchh các tác vụ có thể Und do vẫn mất. Hình 94 - Tạo mớới môt mục tronng Regedit Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
1000 Tự tạo dan nh sách để filll
CHIÊU 35
Tự tạo danh sách để fill Bằng cácch tự tạo mộ ột danh sách,, bạn có thể chỉ cần gõ m một giá trị đầ ầu, sau đó filll xuống ho oặc fill ngan ng bằng cái Fill F Handle, danh d sách sẽẽ được tự độ ộng điền vào o tuần tự.
Exxcel cung cấp c cho bạnn một khả năng tiết kiệm k đáng kể thời giaan cho việcc nhập liệu,, khhông chỉ chho số mà cả cho chuỗi. Nó có tạo sẵn cho bạnn vài danh ssách: tháng trong năm,, thhứ trong tuầần. Bạn chỉỉ cần gõ mộột từ đầu (ccó trong Lisst), rồi kéo cái Fill Haandle, danhh sáách sẽ tự độộng được điềền vào với những n giá trị t kế tiếp củủa List. Thíí dụ bạn gõ Tue, và filll xuuống, các ô kế sẽ tự độộng được điiền là Wed,, Thu, Fri, Sat, S Sun, M Mon, và trở lại Tue nếuu còòn tiếp. Bạn hoàn toààn có thể tự tạo một List riêng củaa bạn để dùnng sau này. Một cách đơn đ giản đểể hí dụ bạn cầần danh sáchh các tháng g trong năm m tạạo list là gõ danh sách bạn cần vàoo các ô. Th bằằng tiếng Việt, bạn hãyy gõ chúng vào v các ô từ ừ A1 đến A12. Rồi chọn trong Office button b → Ex xcel Options s → Popular → Edit Cu ustom Lists s (Excel2003:: Toools → Optioons → Custom Lists), tro ong vùng Im mport List in n cells, chọ ọn $A$1:$A A$12. Nhấnn Im mport và nhấ ấn OK.
H 95 – Tự tạo ra một danh sách Custom List Hình
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
101 Tự tạo danh h sách để fill
Một khi bạn đã M đ tạo một list như vậyy, chỉ cần gõ õ vào một ô với một giiá trị trong list, l rồi nắm m kééo cái fill Handle, H bạn sẽ được kếtt quả:
Hìnhh 96 – Danh sách ngày tháng được tạo ra tự động đ Bạn cũng cóó thể fill giáá trị ngược chiều nếu bạn gõ 2 giá g trị, một nằm dưới trong danhh sáách, một nằm m kế trên trrong danh sáách, tô chọn n cả 2 ô rồi Fill:
Hình 97 – Danh sách ngày thááng được tạo raa tự động theo thứ t tự ngược lạại
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
1022 Làm n nổi các Subto otal của Excell
CHIÊU 36
Làm nổi các Subtotal của Excel Khi làm việc v với Subttotal trong Exxcel bằng lện nh Data Outtline Subtottal, các dòng g subtotal rất khó phân n biệt với cácc số liệu khi có c nhiều cột d dữ liệu. Cụ th hể là, các cộtt subtotal xuất hiện bêên phải tập dữ d liệu trong g khi tiêu đề ccủa nó thườn ng lại nằm ở cột đầu tiên t và các Su ubtotal lại kh hông được định đ dạng in đ đậm như cácc tiêu đề nên n gây khó khăn cho viiệc đọc các kết k quả. Tron ng phần nàyy sẽ hướng dẫn d bạn cácc cách sử dụng d định dạ ạng theo điều u kiện để định dạng các SSubtotal sao cho dễ phân n biệt và dễễ đọc hơn.
Trước tiên, chúng ta cầần có tập sốố liệu để thự T ực hành. Cáác bạn nhậpp v các số liệu vào l như hìn nh 98. Tiếp theo làà các bạn hãy T h tính subbtotal cho từ ừng Region n bằng cáchh đ ô hiện hành đặt h vào dù ùng số liệu và v vào Dataa → Outline → Subtotall ( (Excel2003: D Data → Subto otals). Hộp thoại t Subto otal xuất hiệ ện, bạn thiếtt l các tuỳ chọn như saau: lập N Nhập Regio on vào tro ong khung A each ch At hange in, chọn c Sum c mục Usse Function, đánh dấu cho v mục Sa vào ales trong danh sách A Add subtottal to (hìn nh 99) và n nhấn nút OK K. Hình 98
Trong hìnhh 100, bạn thấy rằng T c tiêu đềề Subtotal của từng các Regio on tại cột A được in đậm g các giá nhưng trị Su ubtotal bên cột B thì Hình 99 g. Đối với không tập số ố liệu trên thì cũ ũng không quá khó đểể đọc các kết k quả, tuyy nhiên n chúng ta sẽ khó nhận biết ngay các c Subtotall khi có ó nhiều cột số liệu hơnn. Chún ng ta sẽ dùng định dạạng theo điiều kiện đểể định các các giáá trị Subtotaal in đậm một m cách tự ự động và bạn phhải thực hiệện điều này y trước khii dùng lệnh Subtootal. Do vậyy nếu đã thự ực hiện lệnhh subto otal thì bạnn hãy xoá bbỏ nó theo o cách sau:: chọn ô hiện hànnh trong vùnng kết quả subtotal vàà vào Data D → Outtline → Sub btotal → chọ ọn Removee All.
Hình 100 - Các C tiêu đề Subttotal của từng Region R tại cột A được in đậm nhưng các giá trị t Subtotal bênn cột B thì khônng www.giaip phapexcel.ccom
Sau đó đ chọn vùnng A1:B16,, lưu ý để ô hiện hànhh tại tạại ô A1, sau s đó vàoo Home → Styles → CÁC TUY YỆT CHIÊU CỦA C EXCELL
103 Làm nổi cácc Subtotal của Excel
Conditional Formatting → New w Rules… → Use a formula to o determine e which cellls to formatt (Excel2003:: Format → Conditional Formatting…→ Formula Is) và nhập p công thứ ức sau vào hộp Form mat values where this s formula is s true:
=RIGHT($ $A1, 5)= “Total”
Lưu ý ph hải cố định cột A (thêêm $ vào trrước A) vàà dùng tham chiếu tư ương đối cho dòng. Nhấn nútt Format… → vào hộp p Format Ceells → chọn n ngăn Fontt → chọn Bold B tại Fon nt Style và c chọn màu đỏ đ tại Colorr → nhấn OK O → nhấn tiếp t OK để ttrở về bảng tính.
Hình 101 1
Tiếp theo o, bạn chọn một ô nào đó trong vùng v số liệuu và vào Daata → Outlin ne → Subto otal → để cá ác tuỳ chọnn mặc định → OK. Kết quả bạn sẽ có như hình h 102. Do bạn b chọn ô A1 là ô m mặc định và sau khi ápp dụng g định dạng theo điều kkiện, Excel sẽ thay đổii địa ch hỉ tham chiếu trong công thức địn nh dạng trênn cho các c ô trong vùng chọn. Ví dụ như tại ô A2 vàà B2 sẽẽ có công thức t định ddạng theo điều đ kiện làà =RIG GHT($A2,5)= = “Total” v và các ô A3 3, B3 sẽ làà =RIG GHT($A3,5)= = “Total”. K Khi công th hức trong ô nào trả t về TRUE thì ô đó sẽ được áp p dụng địnhh dạng theo thiết lập l trong lệnnh định dạn ng theo điềuu kiện.
Cải tiến t định dạng d cho suubtotal
Hình 1022 - Subtotal sauu khi đã được địịnh dạng lại
Các định đ dạng theo t hướngg dẫn trên sẽẽ như nhauu cho các c dòng cóó tính subtottal, do vậy cũng c sẽ khóó phân biệt dòng Grand G Totall với các dò òng subtotall g định dạngg khác.. Phần này, chúng ta cũũng sẽ dùng theo điều kiện để làm choo chúng có định dạngg khác nhau.
Trướ ớc tiên, bạn phải p xoá địnnh dạng theeo điều kiệnn ở ph hần trước bằng cách đđặt ô hiện hành trongg vùùng số liệu rồi vào Ho ome → Styles → Cond ditional Form matting → M Manage Rules → chọn n Ru ule và nhấn n nút Delete Rule. Bạn phải xoáá vùng kết quả Subtottal tương tự ự như hướnng dẫn ở phhần trước. Sau S đó, bạnn chhọn vùng A1:B16, A nhớ ớ chọn ô A11 là ô hiện hành. h Bạn vào v Home → Styles → Conditionall Fo ormatting → Manage Rule → New Rule → Use e a formula to t determine which cells to formatt (E Excel2003: Foormat → Conditional Forrmatting… → Formula Is)) và nhập c công thức sau s tại hộpp Fo ormat values where this s formula is s true:
=$ $A1= “Gran nd Total”
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
1044 Làm n nổi các Subto otal của Excell
Nhấn nút Forrmat → chọnn ngăn Font → chọn Bo N old tại Fontt Style → ch họn màu xan nh tại Colorr → nhấn OK. Tiếp tục, bạ ạn nhấn nútt New Rule (Excel2003: ( n nhấn Add) → chọn Use a formula to o de etermine wh hich cells to o format → nhập công g thức sau tại t hộp Forrmat values where thiss fo ormula is tru ue: =R RIGHT($A1,5)=”Total”
N Nhấn nút Fo ormat ➝ chọ ọn ngăn Fo ont → chọn Bold Italic tại Font Sttyle → chọn n Single tạii Un nderline → nhấn OK → OK. Nhấp tiếp OK để ể trở lại mànn hình bảng tính.
Trong Excel 2007, Rule thhêm vào trước sẽ nằm dướới cùng. Do vậy bạn chọn Rule tạo đầu tiên (=$A1= “Grand Total”) và nhhấn Move Up để đ đưa nó lên đầu tiên trong danh sách các Rulle.
Hình 1033 – Di chuyển cáác Rule trong hộp thoại Conditional Formattiing Rules Manaager Cuuối cùng, bạn vào Dataa → Outline → chọn Subtotal → nhhấn OK và xxem kết quả:
H 104 - Subtootal sau khi đã được cải tiến thhêm một bước Hình www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
105 Chuyển đổi các hàm và công thức trong Excel thành giá trị
CHIÊU 37
Chuyển đổi các hàm và công thức trong Excel thành giá trị Hầu hết các bảng tính Excel đều chứa các công thức. Thỉnh thoảng bạn chỉ muốn hiện lên kết quả của một công thức trong một ô, thay vì để công thức ở đó, vì nó sẽ thay đổi khi dữ liệu mà nó tham chiếu đến thay đổi.
Bạn có thể làm điều này bằng tay theo hai cách sau đây, hoặc bạn có thể sử dụng một macro mà sẽ làm cho công việc nhẹ đi. Trước hết hãy xem các phương pháp bằng tay.
Dùng Paste Special Bạn có thể sao chép các kết quả của các công thức và vẫn để lại công thức tại ô gốc bằng việc sử dụng công cụ Paste Special của Excel. Giả sử bạn có các công thức ở trong vùng A1:A100. Chọn vùng này, chọn lệnh copy (bạn có thể làm điều này bằng cách chọn các lựa chọn trong Clipboard ở tab Home hoặc nhấn chuột phải), sau đó chọn ô bắt đầu để dán kết quả (giả sử ô B1). Chọn Clipboard → Paste → Paste Values (hoặc nhấn phải chuột và chọn Paste Special → Values hoặc dùng phím tắt Alt+E+S+V) và nhấn OK. Lúc này bạn sẽ thấy vùng B1:B100 sẽ là các kết quả của công thức ở các ô trong vùng A1:A100, nhưng chúng chỉ là các giá trị. Nếu bạn muốn chép đè các công thức gốc với kết quả của chúng, chọn dãy công thức và chọn Copy. Vẫn ở dãy công thức được chọn đó, chọn Paste → Paste Values (hoặc click phải chuột và chọn Paste Special → Values hoặc dùng phím tắt Alt+E+S+V), sau đó click OK.
Sử dụng Copy Here As Values Only Bạn cũng có thể sao chép các kết quả của công thức mà vẫn để lại các công thức ở ô gốc bằng cách sử dụng một menu ẩn mà thậm chí nhiều người dùng không biết sự tồn tại của nó. Chọn dãy công thức, nhấn phải chuột ở đường biên bên phải hoặc bên trái vùng chọn (nói cách khác là bạn có thể click chuột phải ở bất kỳ đường biên nào của vùng chọn ngoại trừ việc bạn sử dụng nút "fill handle" có hình dấu thập). Trong lúc nhấn giữ chuột phải, kéo chuột đến nơi cần dán, nhả chuột phải và nhấn Copy Here as Values Only từ một menu xổ xuống. Bạn cũng có thể chép đè lên các công thức với kết quả của chúng: Chọn dãy có công thức, sau đó nhấn phải chuột ở đường biên bên phải hoặc bên trái vùng chọn (nhắc lại một lần nữa là bạn có thể click chuột phải ở bất kỳ đường biên nào của vùng chọn ngoại trừ việc bạn sử dụng nút "fill handle" có hình dấu thập). Trong khi nhấn phải chuột (hoặc nhấn Ctrl), kéo chuột qua một cột bên phải hoặc bên trái và sau đó quay về dãy ban đầu, nhả chuột phải và nhấn Copy Here as Values Only từ kết quả của một một menu xổ xuống. Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
1066 Chuyển đổi đ các hàm và công thứcc trong Excel thành giá trịị
Hìình 105 - Dùng chuột phải để chọn c lệnh Copyy Here as Valuess Only từ một m menu xổ xuống
Sửử dụng Maacro Nếu bạn thườ N ờng xuyên chuyển c đổi các ô có công thức hoặặc hàm thànnh giá trị thìì bạn có thểể sử ử dụng macrro đơn giảnn như sau: Sub Va aluesOnly( ) Dim rRange As s Range On Error E Resu ume Next Set rRange = Application.InputBo ox(Prompt:="Select t the formul las", _ Titl le:="VALUE ES ONLY", Type:=8) T If rRange r Is Nothing Th hen Exit Sub S rRan nge = rRan nge.Value End Su ub
Để sử dụng macro m này, chọn Develo oper → Cod de → Visual Basic (Exce el2003: Toolss → Macro → Visual Basic Editor) E hoặc nhấn Alt+F11 để chèn n một moduule chuẩn. S Sao chép và dán đoạnn coode ở trên trrực tiếp vàoo module. Nhấn chọn nút N n Close củủa cửa sổ code c hoặc nhấn n Alt+Q để quay trrở lại bảng tính Excel.. Chhọn Develo oper → Cod de → Macro os Basic (Exxcel2003: Too ols → Macroo → Macros) hoặc nhấn n Allt+F8, chọn ValuesOnly y, sau đó cliick chọn nú út Options, ở shortcut kkey bạn thêm m một phím m nàào đó để gáán một nút tắt cho maccro này (Víí dụ: bạn gõõ ở shortcuut key là E thì sau nàyy m muốn sử dụnng macro nàày bạn chỉ cầần gõ Ctrl+E E).
Bạn không nên n chọn các phím tắt trùng với các phím m tắt có sẳn củủa Excel như Ctrl+V, C Ctrl+C, Ctrl+ +S.... Khi bạn sử dụng K d macroo, bạn sẽ thhấy một Inp put box đượ ợc hiển thị và hỏi dãy chứa côngg thhức của bạnn là dãy nàoo. Địa chỉ của c dãy đư ược chọn sẽ được hiển thị một cáách tự độngg troong Inputbo ox, và tất cả ả những gì bạn b cần để làm thực hiệện việc chuyyển đổi là nhấn n OK. www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
107
Thêm dữ liệu vào danh sách s Validatiion một cách tự ự động
CHIÊU 38
Thêm dữ liệu vào danh sách Validation một cách tự động Nếu bạn đã từng sử dụng d validattion, bạn sẽ biết nó là một tính năng g rất rõ ràng.. Có lẽ điểm ểm ấn tượng nhất của nó chính là khả ả năng thêm một danh sá ách lựa chọn n vào bất kỳ k ô nào trên n bảng tính và v cho phép người sử dụ ụng chọn lựa a. Nó sẽ tuyệtt hơn hay không nếu khi k bạn nhập p vào một tên n mới trong m một ô đang áp á dụng tính h năng vallidation thì Excel Ex sẽ tự động thêm tên này vào tron ng danh sách h validation?? Điều nàyy có thể thực hiện được kh hi bạn làm th heo các hướng dẫn trong bài này.
Giả sử bạn có dannh sách tên trong t vùng A1:A10 A như ư hình 106.. Danh sáchh n viên trong một công tyy. này chíính là tên củủa các nhân Bạn thấy rằng: tạii một ô đan ng áp dụng validation, bạn sẽ khô ông thể nàoo nhập vào được tênn một nhân viên mới ngoài n danh ssách lựa ch họn, mà bạnn phải thhêm tên nhâân viên mớii này vào dòòng cuối troong danh sáách và điềuu chỉnh lại l vùng dữ liệu của vaalidation trư ước. Điều nàày sẽ rất bấất tiện trongg sử dụngg. Hìnhh 106
Để hạnn chế nhượcc điểm này, tại ô A11 bạn b nhập vàào công thứ ức bên dướii và sao chép đến A20 A (dự trù trước t sẽ thêêm 10 tên m mới). =IF(OR R($D$1="",C COUNTIF($ $A$1:A10,$D$1)),"x",$D D$1)
Hình 107 1 Chhọn Formulas → Defin ned Names → Define Name N (Excell2003: Insert → Name → Define), và à nhhập vào tênn MyName tại t hộp Nam mes. Tại Reffers To, bạn n nhập vào công thức sau đây vàà nhhấp OK: =O OFFSET(Sh heet1!$A$1,0,0,COUN NTA(Sheet1!$A:$A),1)
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
1088
Th hêm dữ liệu vvào danh sácch Validation n một cách c tự động g
Tuuy nhiên, thheo tôi, nên thay bằng công c thức: =O OFFSET(Sh heet1!$A$1,0,0,COUN NTA(Sheet1!$A:$A)-CO OUNTIF(She eet1!$A:$A,"=x"),1)
Chhọn ô D1, vào Data → Data Tools → Data Validation V (E Excel2003: D Data → Valida ation). Chọn n List từ hộp Allow, và tại Source nhậập vào =MyNames, bạn n đảm bảo rrằng đã chọ ọn thêm hộpp In-Cell dropd down. Chọn n ngăn Errorr Alert và bỏ b chọn Sho ow error ale ert after inv valid data is s en ntered. Nhấ ấn nút OK khhi hoàn tất.
Hình 108 N Nhấp phải chhuột lên tên Sheet1 và chọn c View Code. Sau đó đ bạn nhậpp vào đoạn mã m sau: Privat te Sub Work ksheet_Cha ange(ByVal Target As s Range) Dim lReply As s Long If Target.Cel T lls.Count > 1 Then Exit E Sub If Target.A Address = "$D$1" Th hen If IsEmp pty(Target) Then Exi it Sub If Wor rksheetFun nction.CountIf(Range e("MyNames s"), Target) = 0 Then _ lReply y = MsgBox x("Add " & Target & " to list t", vbYesNo o + vbQues stion) If lRe eply = vbY Yes Then _ Range("MyNames" ").Cells(Range("MyNa ames").Row ws.Count + 1, 1) = Target t End If E End If End If End Su ub
Đóng cửa sổ VBE và lưa bảng tính lại, sau đó chọn ô D1 và nhập vào một tên mới m chưa cóó troong danh sáách validatiion và nhấnn Enter. Bạn n sẽ thấy têên mới xuấtt xuất hiện trong danhh sáách dữ liệu trên bảng tính t tại ô A11 A và nếu chọn ô D1 và mở dannh sách validation bạnn cũũng sẽ thấy tên mới đã được bổ suung vào.
www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
109 Ngày tháng trong Excel
CHIÊU 39
Ngày tháng trong Excel Ngày tháng trong Excel được xử lý rất tuyệt khi được tạo và sử dụng trong Excel, tuy nhiên có những vướng mắc khi xử lý với những dữ liệu ngoại lai import vào. May thay, Excel có những công cụ và phương thức để giải quyết khi nó không đúng như bạn muốn.
Mặc định, Excel sử dụng hệ thống ngày dựa trên năm gốc 1900. Nó coi ngày 01/01/1900 có giá trị 1, ngày 02/01/1900 có giá trị 2, và cứ thế. Các giá trị này giúp cho Excel thực hiện những yêu cầu tính toán thời gian. Giờ phút cũng tương tự như vậy, nhưng Excel coi giờ như là số thập phân, với 1 tương đương 24:00 hay 00:00. 18:00 được coi như là 0,75 vì 18 giờ là ¾ của một ngày. Để có thể thấy giá trị số của ngày và giờ, bạn hãy định dạng ô là General. Thí dụ dữ liệu ngày giờ đầy đủ 03/05/2007 03:00:00 PM có một giá trị số là 39.025,625, nghĩa là đã 39.025 ngày tính từ ngày gốc 01/01/1900 và kèm theo 0,625 ngày tương đương 15/24 ngày.
Tính toán cho kết quả nhiều hơn 24 giờ Bạn có thể cộng các giá trị giờ với nhau bằng toán tử cộng hoặc dùng hàm SUM(). Vì vậy SUM(A1:A5) sẽ cho kết quả là tổng giờ của vùng A1:A5 nếu trong vùng có những giá trị giờ đúng nghĩa. Thế nhưng nếu bạn không để ý bạn sẽ tưởng kết quả sai nếu như tổng tính được nhiều hơn 24 giờ: mỗi 24 giờ Excel coi như một ngày, và do định dạng giờ phút, con số chỉ ngày không hiển thị. Bạn hãy thử thì biết: Trong một ô nào đó bạn gõ công thức =5:00 + 17:00 + 6:00, bạn cho rằng kết quả phải là 28:00, nhưng Excel lại chỉ cho bạn thấy trên ô là 4:00, vì 24 giờ đã bị chuyển thành 1 ngày, chỉ còn 4 giờ lẻ. Muốn buộc Excel hiện rõ số giờ lớn hơn 24, bạn phải định dạng custom cho ô đó là [h]:mm hoặc [h]:mm:ss. Bạn cũng có thể dùng kiểu định dạng đó để biết số phút hoặc số giây của một giá trị giờ, hoặc ngày. Thí dụ như một ô có giá trị 1 (24 giờ) và định dạng [m] sẽ hiển thị số phút của 24 giờ là 1.440. Nếu bạn định dạng [s], bạn sẽ thấy số giây là 86.400.
Tính toán ngày và giờ Để tính toán ngày giờ bạn cần nhớ những con số sau: 1 ngày = 24 giờ = 1.440 phút = 86.400 giây 1 giờ = 60 phút = 3.600 giây Khi đã nhớ các con số này, bạn có thể dễ dàng sử dụng để tính toán quy đổi đơn vị thời gian. Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
110 Ngày tháng trong Excel
Thí dụ bạn có con số 5,5 trong ô A1, và bạn muốn: - Bạn muốn nó là 5:30 hoặc 5:30 AM, bạn dùng công thức =A1/24 - Bạn muốn nó là 17:30 hoặc 5:30 PM, bạn dùng công thức =A1/24 + 0,5 - Bạn muốn tính xem trong 5,5 ngày có bao nhiêu giờ, dùng công thức =A1*24 Thí dụ khác: bạn có một giá trị ngày (đúng nghĩa) như là 22/05/2007 15:36 và bạn chỉ muốn: - Lấy số ngày : = INT(A1) - Lấy số giờ: =A1- INT(A1), hoặc = MOD(A1, 1) Để tìm khoảng thời gian tính bằng ngày giữa 2 mốc ngày, bạn tính bằng công thức: =DATEDIF(A1, A2, “d”) – với A1 là ngày sớm hơn (có giá trị nhỏ hơn A2)
Hàm DATEDIF có thể dùng với tham số “m” cho tháng, “y” cho năm. Hàm DATEDIF không có trong danh sách hàm của Excel vì nó là một hàm của Lotus123. Nếu bạn không biết chắc ngày nào nhỏ hơn ngày nào trong công thức tính, hãy dùng kết hợp Min và Max như sau: =DATEDIF(MIN(A1, A2), MAX(A1, A2), ”d”)
Để hiển thị giờ âm sau khi tính toán Khi tính toán thời gian, khi có những kết quả âm, Excel sẽ bị lỗi và hiển thị tràn số: #######. Chẳng hạn bạn tính khoảng thời gian giữa giờ bắt đầu và giờ kết thúc: =A2 - A1. Nếu như giờ bắt đầu là 17:00 và kết thúc là 5:00 sáng hôm sau thì công thức trên sẽ bị lỗi. Bạn hãy dùng công thức này: =A2 - A1 + (A2
Còn nếu bạn cần tính hiệu số của 2 giờ trong cùng ngày, bạn dùng công thức =MAX(A1:A2) - MIN(A1:A2)
hoặc =ABS(A2- A1)
Cách này là chuyển số âm thành số dương, còn có một cách để hiện số giờ âm: chỉnh Option → Calculation → đánh dấu chọn vào mục 1904 Date Systems. Tuy nhiên cách này có thể gây lỗi tính toán cho những công thức khác. Đây còn gọi là hệ thống ngày MacinTosh, sẽ nói kỹ hơn trong Chiêu 87. Bạn cũng có thể yêu cầu Excel cộng thêm vào giá trị ngày có sẵn một khoảng thời gian mà bạn muốn (khi tính thời hạn này nọ kể từ một thời điểm), bằng cách dùng hàm DATE() với cú pháp sau: =DATE(YEAR(A1)+ số năm, MONTH(A1) + số tháng, DAY(A1) + số ngày)
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
111 Ngày tháng trong Excel
Thí dụ như thêm 3 tháng vào ô A1: =DATE(YEAR(A1, MONTH(A1) + 3, DAY(A1))
AddIns Analysis ToolPak còn hỗ trợ nhiều hàm trong đó có những hàm thời gian như EDATE() để cộng trừ một số tháng vào một ngày cho trước. Hoặc hàm EOMONTH() để tính ngày cuối tháng của một thời điểm bất kỳ.
Excel có một lỗi là coi năm 1900 là một năm nhuận, trong khi không phải vậy. Điều ngạc nhiên là anh Bill cố tình làm vậy, theo như họ tuyên bố.
Một số link hữu ích về xử lý ngày tháng: HOW TO: Use Dates and Times in Excel 2000 http://.microsoft.com/default...n-us;Q214094#6 Text or Number Converted to Unintended Number Format http://.microsoft.com/default...;en-us;Q214233 Maximum Times in Microsoft Excel http://.microsoft.com/default...;en-us;Q214386 Dates and Times Displayed as Serial Numbers When Viewing Formulas http://.microsoft.com/default...;en-us;Q241072 Controlling and Understanding Settings in the Format Cells Dialog Box http://.microsoft.com/default...;en-us;Q264372 How to Use Dates and Times in Microsoft Excel http://.microsoft.com/default...b;en-us;214094
Xử lý ngày giờ là một trong những điều kỳ diệu của Excel. Nắm vững những thủ thuật này bạn sẽ tiết kiệm vô khối thời gian với nó.
Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
1122
Cho phép sử s dụng tính năng Group p and Outlinee trên bảng g tính bị khoá á
CHIÊU 40
Cho phép sử dụng tính năng Group and Outline trên bảng tính bị khoá
Để có thể sử dụng tính năng n Groupp and Outlin ne trên bảngg tính bị khhoá, trước tiiên bạn hãyy thhiết lập Grouuping and Outline O cho dữ liệu củaa mình: Chhọn vùng dữ d liệu rồi vào Data → Group G → Ou utline và chọ ọn Auto Outline (Excel22003: Data → Grroup & Outline), bạn sẽ có ó một kết quuả như hình h 110:
Hình 109 – Gọi lệnh Auto Ouline đểể thiết lập Grouuping and Outlinne (trong Excel 2007)
Hình 110 Saau đó, bạn dùng tính năng n Protecct Sheet để khoá bảng tính lại: vàào Review → tại nhóm m Ch hanges → chọn c Protectt Sheet và đặt đ vào mật mã bảo vệ. (Ví dụ như ư mật mã là Secret).
Hình 111 – Protect WorkSheet trong Excel 20007 Khi bảng tínnh trong chếế độ bảo vệệ thì bạn kh K hông thể sử dụng đượcc tính năng Group andd Outline. Do vậy chúngg ta sẽ sử dụng tham m số InnterfaceOnlly trong ph hương thứcc Prrotect kết hợp h với sự kiện k mở bảnng tính (Wo orkbook_Oppen) để bật InterffaceOnly vàà EnnableOutlinning thành True. T www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
Cho phép sử ử dụng tính năng n Group and a Outline trên bảng tíính bị khoá
113
Saau khi áp dụụng Group and Outlinee xong, bạn nhấn Alt+F F11 để vào ccửa sổ VBE E. Bạn chọnn Th hisWorkboo ok và nhập vào đoạn mã m sau (Tên n Sheet1 làà CodeNam me của Sheeet Formulass Exxercise, bạnn cũng có thhể thay bằngg Index của Sheet trongg bảng tính hoặc dùng TabName): Privat te Sub Work kbook_Open n() With h Sheet1 .Protect Pa assword:=" "Secret", Interf faceOnly:= =True .EnableOutl lining = True T End With End Su ub
Saau đó nhấn Save và đóóng cửa sổ VBE để trở ở về cửa sổổ bảng tính,, hãy lưu bảảng tính vàà đóóng lại. Sauu đó, bạn mở m lại tập tinn và cho ph hép Macro thhực thị (nếuu nhận đượ ợc hộp thoạii cảảnh báo), khhi đó bạn cóó thể sử dụnng được cácc nút Group and Outlinne trong bản ng tính đangg bịị khoá (các nút n lệnh đã bị mờ).
Hình 112 - Các nút Groupp and Outline bị b mờ đi trong bảng b tính đang bị khoá
Thham số InterfaceOnly củủa phương thứức Protect mặcc định là FALSE Nếếu là TRUE: sẽẽ bảo vệ giaoo diện người dùng d ( intterface) nhưngg cho phép dùng macro đểể thhay đổi. Nếếu không khai báo thì nhậnn giá trị mặc định đ là FALSE: bảo vệ cả giaao diện người dùng và ngănn cáác lệnh macro can thiệp vào giao diện ngưười dùng. EnnableOutliningg = True → bật b các nút Shoow/ Hide Detaail Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
1144 Bẫy lỗi để trống dữ liệu u
CHIÊU 41
Bẫy lỗi để trống dữ liệu
Bằng cách dùùng Data Validation, V c chúng ta có ó thể bảo đảảm rằng 1 trường dữ liệu l nào đóó nhhất thiết phảải nhập liệuu, không đư ược để trống g. Thí dụ taa tạo 1 bảngg dữ liệu 2 trường, vớii têên trường làà Tên và Bộ phận nằm ở 2 ô A1 vàà B1. Bên dưới, d bạn m muốn rằng bấất kỳ ngườii nàào nhập liệuu vào bảng cũng c phải nhập n đủ 2 nộ ội dung nàyy. Nếu bạn bắt đầu với 1 bảng N b dữ liệuu có sẵn nhữ ững ô bị để trống, cần đđiền đầy vàào, hãy xem m phhần nằm troong khung màu m xám sauu đây.
Điền dữữ liệu vào các c ô trốngg Một số ccác công cụụ hoặc hàm của Excel không k làm việc với ô ttrống như Pivot P table, Sorting, Filter, hàm SUMPROD DUCT,… Giả G sử bạn có 1 cột A với 1 đốn ng những ô trống nằằm xen kẽ nhau. n bạn hãy h nhấn F5, hoặc Ctrrl+G, nhấn Special, ch họn ô chọn Blank, và à nhấn OK. Bây giờ tấtt cả các ô trrống đã đượ ợc chọn. Nếếu bạn muố ốn điền vào đó nhữngg giá trị hoặặc công thứ ức giống ô liiền ngay trêên của nó, hãy nhấn dấu u bằng (=), nhấn mũũi tên lên, rồồi nhấn Ctrl+ +Enter. Saau khi đã bảảo đảm các ô trống tronng vùng dữ liệu đã đượ ợc điền đầy,, bạn hãy tô ô chọn vùngg dữ ữ liệu, từ ô A3 đến ô B100 B chẳng hạn (bằng với độ lớn của vùng bbạn định nhậập dữ liệu).. M hộp thoạại Data Valid Mở dation, trong g tab Settin ng chọn Cus stom trong ô Allow, rồi điền công g thhức sau vào khung côngg thức: =A AND(COUN NTA($A$2:$ $A2)=ROW(()-2,COUNT TA($B$2:$B B2)=ROW( )-2)
Hình 113 1 www.giaip phapexcel.ccom
CÁC TUY YỆT CHIÊU CỦA C EXCELL
115 Bẫy lỗi để trống dữ liệu
Chú ý các ký hiệu $ liên quan đến tham chiếu tương đối và tuyệt đối, nếu sai hoặc thiếu, validation không hoạt động như ý muốn ráng chịu. Vào tab Alert, gõ tiêu đề cho thông báo cảnh báo trong ô Title, gõ câu thông báo của bạn vào ô Error Message, chọn Stop trong khung Error Style (hình 114):
Hình 114 – Nhập các thông báo lỗi khi cho Data Validation Bây giờ mỗi khi bạn nhập thiếu dòng trên, mà nhảy xuống nhập dòng dưới, bạn sẽ được cảnh báo như sau:
Hình 115
Chương 2 – NHỮNG THỦ THUẬT VỚI CÁC TÍNH NĂNG CÓ SẴN TRONG EXCEL
116
Giảm danh sách xổ xuống của Validation sau khi chọn một
CHIÊU 42
Giảm danh sách xổ xuống của Validation sau khi chọn một Rất hữu ích cho người dùng Excel khi bạn cho họ một danh sách để chọn bằng Validation, nhưng cái danh sách này tự động ngắn lại mỗi khi họ chọn một mục trong danh sách, để khỏi phải lựa chọn trong một danh sách quá dài, đồng thời tránh việc nhập trùng dữ liệu (đôi khi cần thiết).
Bước 1: Trong 1 sheet bất kỳ (thí dụ sheet1) bạn có 1 danh sách trong vùng A1:A10. Bạn hy đặt name cho danh sách này bằng cách tô chọn vùng danh sách, rồi gõ tên MyList trong hộp namebox. Bước 2: Trong 1 sheet khác mà bạn muốn dùng validation dựa vào danh sách MyList nói trên, tô chọn vùng bạn cần, mở menu Data Validation, chọn Allow là List, Source là =MyList, rồi nhấn OK. Bước 3: Mở cửa sổ VBA của sheet đó, nhập vào đoạn code sau: Private Sub Worksheet_Change(ByVal Target As Range) Dim strVal As String Dim strEntry As String On Error Resume Next strVal = Target.Validation.Formula1 If Not strVal = vbNullString Then strEntry = Target Application.EnableEvents = False With Sheet1.Range("MyList") .Replace What:=strEntry, Replacement:="", LookAt:=xlWhole, _ SearchOrder:=xlByRows, MatchCase:=False .Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom .Range("A1", .Range("A65536").End(xlUp)).Name = "MyList" End With End If Application.EnableEvents = True On Error GoTo 0 End Sub
Đóng cửa sổ VBA rồi quay về Excel. Thử chọn 1 mục trong validation, sang 1 ô khác và xổ cái validation xuống, bạn sẽ thấy mục vừa chọn xong không còn trong list nữa. Lưu ý trong code, khi nói đến name MyList, phải xác định rõ Sheet1.MyList, vì nếu không, VBA sẽ cho rằng name này nằm chung sheet với sheet chứa code và sẽ không tìm thấy và báo lỗi.
www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL
117 Thêm các da anh sách có sẵn s và cả danh sách tự tạ ạo vào menu u chuột phải
CHIÊU 43
Thêm các danh sách có sẵn và cả danh sách tự tạo vào menu chuột phải Tạo mộtt danh sách để fill trong Excel thông qua Fill han ndle là việc là àm rất hay để đ nhanh chóng nhập danh d sách cá ác chuỗi số ho oặc chuỗi văn bản vào bả ảng tính. Exccel đã xây dựng d sẵn mộ ột số Custom List về các ngày n trong tu uần (Sun - Sa at), danh sácch các thán ng (Jan – Decc) và các chu uỗi số nhưng bạn cũng có ó thể tự tạo th hêm các dan nh sách mớ ới cho mình. Phần này sẽẽ hướng dẫn bạn các tạo o thêm Custo om List cho Fill F Handle.
Trrước tiên, bạn b cần nhậập vào danhh sách các phần p tử cầnn đưa vào C Custom Lisst trên bảngg tínnh. Ví dụ như n bạn nhậập và 26 chữ ữ cái trong các ô A1:A A26 trên Shheet1. Sau đó đ nhấn vàoo núút Office → Excel Options → Pop pular → Edit Custom Lists L (Excel2003: Tools → Options → Cuustom Lists). Nhấp chọn n nút nằm bêên trái nút Import I và dùùng chuột qquét chọn vù ùng dữ liệuu A A1:A26. Sauu đó nhấn núút Import và OK. Kể từ ừ lúc này danh sách cáác chữ cái sẽ s có thể sử ử dụụng để fill trrong tất cả bảng b tính trrên máy tính h này.
Hình 116 1
Chương 2 – NHỮNG THỦ T THUẬTT VỚI CÁC TÍNH T NĂNG CÓ SẴN TR RONG EXCEEL
118 Thêm các danh sách có sẵn và cả danh sách tự tạo vào menu chuột phải
Tiếp theo, để đưa các Custom List vào trong thực đơn ngữ cảnh thì bạn nhấn tổ hợp Alt+F11 rồi vào Insert → Module. Sau đó, bạn nhập vào đoạn mã như sau: Sub AddFirstList() Dim strList As String strList = Application.CommandBars.ActionControl.Caption If Not strList Like "*...*" Then Exit Sub ActiveCell = Left(strList, InStr(1, strList, ".", vbTextCompare) - 1) End Sub
Bạn kích chuột hai lần lên ThisWorkbook trong cửa sổ VBAProject và nhập vào đoạn mã sau: Private Sub Workbook_SheetBeforeRightClick _ ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) Dim cBut As CommandBarButton Dim lListCount As Long Dim lCount As Long Dim strList As String Dim MyList On Error Resume Next With Application lListCount = .CustomListCount For lCount = 1 To lListCount MyList = .GetCustomListContents(lCount) strList = .CommandBars("Cell").Controls(MyList(1) & "..." & _ MyList(UBound(MyList))).Caption .CommandBars("Cell").Controls(strList).Delete Set cBut = .CommandBars("Cell").Controls.Add(Temporary:=True) With cBut .Caption = MyList(1) & "..." & MyList(UBound(MyList)) .Style = msoButtonCaption .OnAction = "AddFirstList" End With Next lCount End With On Error GoTo 0 End Sub
Đóng cửa sổ VBE và lưu bảng tính lại. Sau đó nhấp phải chuột vào một ô nào đó trên bảng tính, bạn sẽ thấy các Custom List dựng sẵn và do bạn tạo xuất hiện trong trình đơn ngữ cảnh. Muốn sử dụng, bạn chỉ cần nhấn chuột phải vào ô chọn, rồi chọn 1 trong các list hiện ra trong menu ngữ cảnh, bạn sẽ có giá trị thứ nhất của list. Sau đó kéo cái Fill handle để fill list như mọi khi.
∗∗∗ www.giaiphapexcel.com
CÁC TUYỆT CHIÊU CỦA EXCEL