Chiêu số 12: Tạo riêng một thanh công cụ cho riêng một bảng tính cụ thể



Bạn vừa từng làm ra (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ự làm ra (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ự làm ra (tạo) ra một thanh công cụ có chứa những nút dùng để hỗ trợ chuyện 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 vừa có lúc bạn muốn điều tui 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; hay 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 làm ra (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 This workbook trong khung Project. Bạn cũng có thể làm nhanh chuyện 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ấn phải chuột vào biểu tượng Excel nhỏ bên trái menu File rồi chọn View Code


Rồi, nhập vào hai đoạn code sau đây:

PHP Code:   Option Explicit

    --------------------------------------------------------------------


    Private Sub Workbook_Activate()

        On Error Resume Next

            With Application.CommandBars("MyCustomToolbar")

                   .Enabled = True

                   .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 vừa đặt cho thanh công cụ tự làm ra (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 đi). 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 (hay nhấn đúp vào tên Sheet đó cũng được). Ở đây tui giả sử bạn chọn Sheet1.



Nhập vào hai đoạn code sau đây:

PHP Code:  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 hay 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.



Xin đính kèm theo đây bảng tính vừa có sẵn những đoạn code nói trên, cùng một "MyCustomToolbar" làm ví dụ.


Cũng xin nhắc lại, chiêu này chỉ có tác dụng với những phiên bản trước Excel2007.

mã nguồn: giải pháp Excel (GPE)
 

girl_ngongcuong

New Member
Chiêu thứ 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 cú cú cú cú cú cú đối)




Trong Excel, 1 công thức có thể chứa những tham chiếu tương đối hay tuyệt cú cú cú cú cú cú đối. Khi 1 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 cú cú cú cú cú cú đối mới giữ nguyên khi sao chép.



Xin nhắc lại 1 tí:



Khi bạn muốn công thức, dù cho copy đi đâu, cũng tham chiếu đến 1 ô hay 1 vùng cố định nào đó, bạn phải dùng tham chiếu tuyệt cú cú cú cú cú cú đố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 hay chỉ tiêu chí cột để chỉ cố định 1 chiều khi copy công thức.



Nhưng đôi khi bạn muốn sao chép 1 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 cú cú cú cú cú cú đối? Có nhiếu cách để làm.



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



2. Khi bạn muốn sao chép cả 1 khối ô, thì cù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 (2007) hay Edit – Replace (2003).


- trong ô find what: gõ dấu =


- trong ô replace with: gõ dấu “và” (&), hay dấu nháy đơn (‘), hay 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 & hay 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 cú cú cú cú cú cú đối của cả 1 khối ô, rồi chuyển ngược lại.



Ghi chú: Nếu chỉ 1 vài ô thì dùng cách 1 nhanh hơn. (Nói nhỏ: cách 1 là của Ptm0412, nếu bạn thích thì xin nhấn thank 1 phát)

mã nguồn: giải pháp Excel (GPE)
 

hess_cross

New Member
Thấy thì cũng hay thật và cũng rất bổ ích nữa nhưng mà chưa đoc hết vừa muốn ngủ rồi.... Bạn muốn chỉ dẫn như vậy thì bạn nên giới thiệu đôi chút rồi làm ra (tạo) đường dẫn down về chứ không ai để thời (gian) gian cả buổi học những thứ của bạn đâu. Rút kinh nghiệm nhé!
 

nga_n81

New Member
cua_dong Thấy thì cũng hay thật và cũng rất bổ ích nữa nhưng mà chưa đoc hết vừa muốn ngủ rồi.... Bạn muốn chỉ dẫn như vậy thì bạn nên giới thiệu đôi chút rồi làm ra (tạo) đường dẫn down về chứ không ai để thời (gian) gian cả buổi học những thứ của bạn đâu. Rút kinh nghiệm nhé! cái đó mình cũng nghĩ rồi. Nhưng mình muốn post từng chiu 1 để có những ng muốn xem phần nào thì xem. Sau đó mình sẽ post tổng thể cho ai đó muốn down về.
 
Chiêu thứ 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, hay 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 chuyện di chuyển hay 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ỉ chuyện đơn giản là sửa lại cho nó chính xác, hay 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: , để 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 vừa 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 nê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 chuyện này, tui 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ẽ làm ra (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.



Tuy nhiên, với tất cả cá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 tương tự cái vừa hiển thị trong hộp thoại thông 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, hay 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 vừa kiểm tra các công thức, các Name như tui 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 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)coi như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 [E2003: Edit | Go to... | Special], hay 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 chuyện sau đây trong 1 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 vừa 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 (2007: View ➝Unhide, 2003: 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 co 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 vừa xử xong những link có thực mà bị gãy. Bây giờ đến những link ma. Mở fle bị lỗi lên, Chọn Data – Edit links (2007) hay Edit Links (2003). Đô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ị 1 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ừ 1 ô bất kỳ của file lỗi, đánh dấu bằng (=), rồi qua file kia chọn cũng 1 ô bất kỳ, rồi Enter. Bạn vừa tạo được 1 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 (2007) hay Edit Links (2003), Change source, sửa tất cả 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 vừa 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 1 bản sao của file lỗi.



Cách này sẽ xoá vĩnh viễn dữ liệu của bạn, nên tốt nhất là làm ra (tạo) 1 bản dựphòng chốngtrước. Mở file lỗi lên, delete 1 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 1 sheet nữa để kiểm tra. Trước khi xoá sheet cuối cùng, phải insert 1 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 vừa 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.

mã nguồn: giải pháp Excel (GPE)
 

ttc4vn

New Member
bạn thật là kỹ lưỡng nhưng minh nghỉ.... người ta ít khi nào chuyên sâu vào Excel lam! Chi co những người chuyên ngành thôi. Nhưng mình nghĩ vừa làm một chuyện có ích vì nếu có người cần thì vừa có tài liệu chỉ dẫn của bạn rồi. Mà bạn có chuyên sâu vào Word không? Nếu mình cần bạn có vui lòng giúp mình không?
 
cua_dong bạn thật là kỹ lưỡng nhưng minh nghỉ.... người ta ít khi nào chuyên sâu vào Excel lam! Chi co những người chuyên ngành thôi. Nhưng mình nghĩ vừa làm một chuyện có ích vì nếu có người cần thì vừa có tài liệu chỉ dẫn của bạn rồi. Mà bạn có chuyên sâu vào Word không? Nếu mình cần bạn có vui lòng giúp mình không? ngành tớ học chuyên về phần mềm - lập trình bạn ak.


Word và Excel thì chủ yếu tụi tớ phải tự mò mẫn thui.


nhưng nếu giúp dc mình cũng sẽ giúp!
 
Mình rất hay thường gặp trường hợp liên kết ma này.Nhưng nếu bảng tính do mình lập ra thì tìm dễ.còn bảng tính của người khác nhờ mình thì tìm hơi bị mệt.
 

kimuyenly1210

New Member
Chiêu thứ 15: Giảm kích thước file Excel bị phình to bất thường



Bạn có bao giờ có 1 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ó 1 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 chuyện như ý muốn.



tui vừa thử với 1 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 tui cho vào 1 Pivot Table, sử dụng dữ liệu nguồn là 4 cột của vùng dữ liệu. Kích thước file tăng lên 2,4 Mb. tui 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ênnhâ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 hay 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. tui 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: trước hết hãy back up bảng tính lại.

1. 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 hay ctrl + mũi tên qua phải, hay 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 vừa 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 ớ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 hay 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:


2007: Office button ➝Prepare ➝Properties ➝Document Properties ➝Advanced Properties


2003: File ➝Properties… ➝General

2. Xoá Macro: Không phảo là xoá hẳn Macro, mà chỉ gỡ chúng ra ngoài file Excel:


Có 1 cách nhanh, không gây hại đó là Export tất cả các modules và UserForms 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 môdule). Trong thông báo hiện ra nhấn Yes, và chọn 1 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 hay workbook.



Sau khi vừa 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 modue 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ạo1 file text, và ngăn chặn những thứ linh tinh mà Macro mang theo.



Một số ứng dụng trên Internet có thể làm công chuyện này, nhưng được biết rằng những tiện ích đó sẽ làm rối tung code và thậm chí làm tăng kích thước file. Tốt nhất trước khi ứng dụng 1 tiện ích nào, hãy backup file của bạn trước.

3. Đ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 chốngxa 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ảiphòng chốngxa như vậy, tốt hơn bạn dùng name động. Xem thêm tuyệt cú chiêu số 47.

4. 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 hay hàng ngàn).

a. Xoá object và autoshape thừa. Để tìm ra những autoshape hay object ẩn bạn phải vào option của Excel sửa lại như hình sau:


2007:




2003:


Bạn có thể nhấn Ctrl + G, Special – Object để chọn 1 lúc nhiều object.


b. Làm sạch những cái không nhìn thấy trong sheet:


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 thêm chiêu số 5). Bây giờ bạnthử 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. 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 vừa 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, làm ra (tạo) 1 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, Paste vào sheet mới. Bằng cách cắt (Cut), Excel sẽ giữ nguyên tham chiếu cho bạn.


Cuối cùng, delete sheet chứa rác.



Hy vọng là sau 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.

mã nguồn: giải pháp Excel (GPE)
 

sorryilove_you

New Member
congainhahopham ngành tớ học chuyên về phần mềm - lập trình bạn ak.


Word và Excel thì chủ yếu tụi tớ phải tự mò mẫn thui.


nhưng nếu giúp dc mình cũng sẽ giúp! Vậy à, bạn học lập trình thì mình lại càng muốn nhờ bạn nữa nè! bạn có học chương trình .NET không? Mình đang có rất nhiều thế bí vì bài tập được giao đây. Bạn giúp mình được chứ!
 

Kenjiro

New Member
cua_dong Vậy à, bạn học lập trình thì mình lại càng muốn nhờ bạn nữa nè! bạn có học chương trình .NET không? Mình đang có rất nhiều thế bí vì bài tập được giao đây. Bạn giúp mình được chứ! Ý bạn nói Asp.NET phải không?


Mình gà CNTT lắm. câu nào mà khó chắc mình bó dò....


aK! Mà bạn cứ muốn hỏi gì thì đăng lên 4r ý, có gì tất cả người cùng sẻ chia như thế sẽ có nhìu ý kiến hơn cho bạn đó.
 
congainhahopham



Ý bạn nói Asp.NET phải không?


Mình gà CNTT lắm. câu nào mà khó chắc mình bó dò....


aK! Mà bạn cứ muốn hỏi gì thì đăng lên 4r ý, có gì tất cả người cùng sẻ chia như thế sẽ có nhìu ý kiến hơn cho bạn đó. Chọc bạn cho vui thôi. Mình không đi sâu về .NET lắm. Cái mình đi sâu là C++ kia nhưng đôi lúc cũng... hụt chân. Kiến thức đúng là vô bờ bến thật nếu có dịp mình cùng chia sẽ nha.
 

oo0_jin_0oo

New Member
Chiêu thứ 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 chuyện 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 nghề hơn, khi bạn không thể làm gì nữa.



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




2. Nếu như bảng tính vừa 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) hay 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).




Khi lưu ở dạng HTML hay 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 làm ra (tạo) ra từ Excel 2007:


- Những chức 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 làm ra (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 đồ vừa đượ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 sẻ chia (shared workbook) trong những phiên bản trước Excel 2007 sẽ không còn sẻ chia đượ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.




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


Khi bạn không còn mở được bảng tính

1. Nếu như bảng tính bị hư của bạn không thể mở ra được nữa, bạn hãy thử dùng Microsoft Word để mở nó. Nghe thì có vẻ buồn cười, nhưng đôi khi, bạn có thể copy được một vài dữ liệu trong bảng tính này (dĩ nhiên tất cả những định dạng, công thức, v.v... thì mất hết).


2. Bạn hãy mở một bảng tính mới, và làm ra (tạo) cho nó một Extenal Link (liên kết ngoài) đến bảng tính bị hư. Ví dụ:



='C:\Documents and Settings\BNTT\My Documents\[ChookSheet.xls]Sheet1'!A1



Copy liên kết này vào những ô khác (số lượng bao nhiêu thì tùy thuộc vào trí nhớ của bạn về cái bảng tính vừa bị hư, nó có bao nhiêu hàng, bao nhiêu cột...), và cũng làm tương tự cho những Sheet khác (nếu cần thiết). Nếu bạn không nhớ được bất kỳ tên Sheet nào trong bảng tính vừa bị hư, bạn cứ làm ra (tạo) đại một Sheet với đường dẫn chính xác, Excel sẽ hiển thị tên của Sheet khi bạn nhấn Enter. Có thể bạn sẽ thấy được gì đó...


3. Nếu hai cách trên không đem lại cho bạn điều gì, bạn hãy vào trang web Openoffice.org, download phiên bản miễn phí của bộ phần mềm này về. Ngoại trừ các tên trên menu và toolbar, Openoffice.org khá tương tự Excel, vì nó được làm ra (tạo) ra cùng một cấu trúc bảng tính với Excel (có đến 96% các công thức trong Excel có thể sử dụng trong bảng tính của Openoffice.org).



Sau khi vừa download phiên bản miễn phí của Openoffice.org, bạn cài đặt nó vào máy. Rồi dùng nó để mở bảng tính bị hư của bạn. Trong khá nhiều trường hợp, dữ liệu của bạn sẽ được phục hồi. Tuy nhiên, những VBA code thì không còn gì cả, vì các VBA code của Excel không tương thích với Openoffice.org.


4. 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 vừa trả trước bản quyền, còn nếu chưa trả trước bản quyền, thì bạn chỉ có thể xem chứ không thể lưu lại.

mã nguồn: giải pháp Excel (GPE)
 
Chiêu thứ 17: Sử dụng Data-Validation khi danh sách nguồn nằm trong một Sheet khác



Sử dụng Data-Validation là một cách dễ nhất để áp dụng một quy tắc nhập liệu cho một dãy dữ liệu. Theo mặc định, Excel chỉ cho phép Data-Validation sử dụng những danh sách nguồn nằm trong cùng một Sheet với dãy dữ liệu sẽ được áp dụng quy tắc này. Tuy nhiên, vẫn có cách để lách khỏi chuyện đó.



Chiêu này sẽ giúp bạn làm cho Data-Validation có thể sử dụng những danh sách nguồn nằm trong một Sheet khác. Cách thứ nhất là lợi dụng chính chuyện đặt tên cho một dãy của Excel, cách thứ hai là sử dụng một hàm để gọi ra danh sách đó.


Cách 1: Sử dụng Name cho dãy nguồn



Có lẽ cách nhanh nhất và dễ nhất để vượt qua rào cản Data-Validation của Excel là đặt tên cho dãy mà bạn sẽ dùng làm quy tắc nhập liệu. Để biết cách đặt tên cho dãy, bạn xem ở loạt bài này:

Sử dụng tên cho dãy:
Code: http://www.mediafire.com/download.php?2o2dkmmlndn Giả sử bạn vừa đặt tên cho dãy sẽ dùng làm quy tắc nhập liệu là MyRange. Bạn chọn ô (hay dãy) trong bất kỳ Sheet nào mà bạn muốn có một danh sách xổ ra để nhập liệu, rồi trong menu Data trên Ribbon, bạn chọn Data Tools | Data Validation [E2003: Data | Validation]. Chọn List trong danh sách các Allow, và trong khung Source, bạn nhập vào =MyRange. Nhấn OK. Bởi vì bạn vừa sử dụng một Name để làm List, nên bạn có thể áp dụng Data-Validation này cho bất kỳ Sheet nào.





Cách 2: Sử dụng hàm INDIRECT



Hàm INDIRECT() cho phép bạn tham chiếu đến ô chứa dữ liệu text thay mặt cho một địa chỉ ô. Và rồi bạn có thể sử dụng ô đó như môt tham chiếu cục bộ, cho dù nó tham chiếu đến dữ liệu trong một Sheet khác. Bạn có thể sử dụng chức năng này để tham chiếu đến nơi chứa dãy mà bạn sẽ dùng làm danh sách nguồn cho quy tắc Data-Validation.



Giả sử, dãy chứa danh sách nguồn này nằm ở Sheet1, trong dãy $A$1:$A$8. Để làm ra (tạo) một Dala-Validation, bạn cũng làm những bước như tui đã nói ở cách 1, nhưng thay vì gõ tên dãy vào trong Source, thì bạn nhập vào đó công thức: =INDIRECT("Sheet1!$A$1:$A$8"). Hãy chắc chắn rằng tùy chọn In-cell drop-down đang được kích hoạt, và nhấn OK.




Nếu tên Sheet của bạn có chứa khoảng trắng, hay có dấu tiếng Việt, bạn phải đặt tên Sheet trong một cặp nháy đơn ('). Ví dụ, giả sử tên Sheet chứa danh sách nguồn là Sheet 1 (chứ không phải Sheet1), thì bạn sửa công thức trên lại như sau: =INDIRECT("'Sheet 1'!$A$1:$A$8"). Chỗ khác nhau so với công thức hồi nãy là có thêm một dấu nhấy đơn (') sau dấu nháy kép ("), và một dấu nháy đơn (') nữa trước dấu chấm than (!).



Xin mở một ngoặc đơn: Nếu như có thể được, khi gặp những tham chiếu đến tên Sheet, bạn nên tập thói quen luôn luôn bỏ nó vào trong cặp dấu nháy đơn. Điều này, tuy chẳng có tác dụng gì với những tên sheet như Sheet1, DMHH... nhưng nó sẽ giúp bạn không bao giờ gặp lỗi, khi bạn hay đặt tên Sheet có khoảng trắng, hay là có bỏ dấu tiếng Việt...


Ưu điểm và Khuyết điểm của cả hai cách vừa nêu trên



Đặt tên cho dãy, và dùng hàm INDIRECT, đều có cái tiện lợi và cả cái bất tiện.



Tiện lợi của chuyện đặt tên cho dãy, là chuyện bạn thay đổi tên Sheet chẳng có ảnh hưởng gì đến Data-Validation. Và đó chính là cái bất tiện của chuyện dùng INDIRECT, khi bạn đổi tên Sheet, tên mới sẽ không tự động cập nhật trong công thức dùng INDIRECT, cho nên nếu vẫn muốn dùng công thức này, bạn phải mở Data-Validation ra và sửa lại tên Sheet trong công thức.



Tiện lợi của chuyện dùng INDIRECT, là dãy dùng làm danh sách nguồn của bạn luôn luôn nằm yên chỗ vừa chọn (A1:A8 trong ví dụ trên chẳng hạn). Còn nếu bạn dùng Name, mà bạn lỡ tay xóa mất vài hàng (hay cột) ngay chỗ chứa Name, thì bạn phải điều chỉnh lại cho đúng...


mã nguồn: giải pháp Excel (GPE)
 

Ingram

New Member
Chiêu số 18: Điều khiển Conditional Formating bằng checkbox.


Mặc dù Conditional Formating là 1 trong những chiêu mạnh của Excel, nhưng 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ách điều khiển bằng 1 checkbox tương tự như 1 công tắc (hay 1 cái toggle Button càng tương tự hơn).


Conditional Formating có từ đời Excel 97, gán định dạng cho những ô nào thoả 1 số điều kiện nào đó. Điều kiện có thể là 1 điều kiện về giá trị, nhưng ta có thể tuỳ biến nhiều hơn khi dùng điều kiện là công thức, phụ thuộc vào đó ta có thể thay đổi định dạng cho những ô này, khi có sự thay đổi giá trị của ô khác.

1. Dùng 1 Checkbox hay 1 Toggle Button để xem và ẩn dữ liệu:



Bạn muốn một vùng dữ liệu nào đó chỉ hiện ra lúc cần xem, xem xong thì biến đi cho rảnh. Trước tiên bạn phải gán lên sheet 1 Checkbox hay 1 Toggle Button. Trong Excel 2007, vào tab Developer, nhấn Insert trong Controls - chọn Checkbox hay Toggle Button trong Control Toolbox, trong Excel 2003 chọn trong view – Toolbar – Control Toolbox, vẽ lên sheet 1 cái. Trong hình, tui làm thử 2 cái.




Nhấn vào nút design, click chọn cái control bạn vừa vẽ, nhấn thêm nút Property. Trong cửa sổ Property, sửa dòng Caption thành View/ Hide, sửa dòng Linked Cell thành $C$2. (cả 2007 và 2003 như nhau, cả checkbox và Toggle Button như nhau).




Bây giờ khi bạn click chọn checkbox hay nhấn nút Toggle, ô C2 sẽ lần lượt có các giá trị TRUE và FALSE.


Bây giờ giả sử vùng dữ liệu của bạn gồm 4 fields, trong đó bạn chỉ muốn 3 fields hiện thường xuyên, còn field thứ 4 thì khi nào cần mới hiện ra để xem, không cần thì dấu đi. Bạn đánh dấu chọn vùng chứa field 4, trong 2007 bạn vào tab Home, Conditional Formating, New Rule, chọn tiếp “use a formula to determine which cells to format”, trong 2003 là Fornat - Conditional Formating - chọn tiếp “Formula is”. Trong ô kế bến, bạn gõ: = $C$2=FALSE.






Nhấn vào nút Format, định dạng font chữ màu trắng. Nhấn OK và OK. Nhấn nút design 1 lần nữa để thoát ta khõi chế độ design Mode. Và nhấn nút toggle hay click chọn cái checkbox xem kết quả.






Nếu bạn không thích thì định dạng ô C2 chữ trắng luôn, để khỏi thấy chữ TRUE, FALSE hiện lên.

mã nguồn: giải pháp Excel (GPE)


(Còn tiếp)
 

vitconxauxi0780

New Member
Bạn có thể gom lai thanh 1 ebook roi post len cho anh em down ve sử dụng được không?


thank!!!!!!!!

---------- Bài viết vừa được nhập tự động bởi hệ thống ----------


Bạn có thể gom lai thanh 1 ebook roi post len cho anh em down ve sử dụng được không?


thank!!!!!!!!
 

nvthiensu

New Member
solider_1983 Bạn có thể gom lai thanh 1 ebook roi post len cho anh em down ve sử dụng được không?


thank!!!!!!!!

---------- Bài viết vừa được nhập tự động bởi hệ thống ----------



Bạn có thể gom lai thanh 1 ebook roi post len cho anh em down ve sử dụng được không?


thank!!!!!!!! chắc bạn phải đợi gùi. Vì mình dạo này hơi bận 1 chút.


Nhưng mình cũng vừa up lên mạng rồi chỉ là chưa trả chỉnh hết thôi.

---------- Bài viết vừa được nhập tự động bởi hệ thống ----------

Chiêu thứ 18 (tiếp theo)

2. Tắt mở định dạng màu cho ô:



Dùng Conditional Formating nhằm tô màu ô theo điều kiện giúp ta dễ tìm được những ô có giá trị đặc biệt cho trước. Excel 2007 có nhiều định dạng khác nhau cho giá trị số nằm trong khoảng cho trước. Nhưng biện pháp để mở tắt bằng checkbox là không có sẵn.


Tương tự như phần trên, ta làm ra (tạo) ra 1 checkbox hay 1 Toggle Button link tới ô $C$2. Nhưng lần này ta đặt name cho nó là IsFill chẳng hạn. Ta cũng đặt name cho ô $A$2 là BeginNum và $B$2 là EndNum, với A2 là giới hạn dưới thí dụ 100, và B2 là giới hạn trên thí dụ 1.000.


Trong vùng dữ liệu B5:B16, ta muốn giá trị nào nằm trong khoảng BeginNum và EndNum sẽ được tô màu. Vậy dùng conditional Formating như trên, chọn vùng C8:C18, lần này công thức là:



=AND($C8>=BeginNum,$C8<=EndNum,IsFill)



Chọn cho nó 1 định dạng màu theo ý muốn.



Kết quả: khi nhấn button hay click checkbox thay đổi trạng thái thành True, các ô chứa số trong khoảng (100, 1.000) sẽ được tô màu, các ô còn lại không tô. Khi thay đổi thành False, các ô trở lại bình thường.



Đồng thời, vì bạn đặt công thức liên quan đến BeginNum và EndNum, nên khi thay đổi 2 số này, kết quả tô màu cũng thay đổi.





Bạn thấy đấy, nếu bạn chưa xem bài này mà thấy 1 file tương tự của người khác, bạn có thể lầm tưởng người ta sử dụng code của VBA. Sự thực thì quá đơn giản phải không?



(Hết chiêu 18)

mã nguồn: giải pháp Excel (GPE)
 

shmily_168

New Member
Chiêu số 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 1 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 1 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 1 hàm có sẵn của Macro4 trong Conditional Formatting, như sau:


Trong hộp thoại Conditional Formatting, chọn công thức, gõ công thức này: = CELL(“type”,A1). Nhưng hạn chế của chuyện 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à 1 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 cú 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 1 module. Nhập đoạn code sau vào khung soạn thảo:

PHP Code:   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 làm ra (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 chốngkhi 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 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 hay đổ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. Nếu bạn thêm hay thay đổi 1 ô, nếu ô đó trở thành công thức thì lập tức ô đó đổi 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à 1 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.



Bây giờ mỗi khi bạn sửa hay thêm 1 ô trở thành công thức, ô đó sẽ có màu. ngược lại, nếu bạn sửa 1 công thức thành giá trị hay thêm giá trị vào 1 ô, ô đó sẽ không có màu.



Cái CF và cái UDF này đơn giản mà thực sự hữu ích, bạn nhỉ!

mã nguồn: giải pháp Excel (GPE)
 

love_matrix

New Member
Chiêu thứ 20: Đếm hay cộng những ô vừa đượ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 ô vừa đượ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 chuyện 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 vừa được áp dụng bởi chuyện đị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 vừa á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 vừa thiết lập, và tính tổng của những ô vừa được áp dụng định dạng đó. Không có gì khó! Bạn đừng để những kiểu định dạng vừa đượ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).



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, hay là dùng một công thức mảng. Ở đây tui 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ừa ví dụ trong bài này, bạn sử dụng một công thức mảng tương tự 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, tương tự 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 chuyện 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.



Trên diễn đàn này 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. hay 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: .



Một cách khác



Ngoài chuyện 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 vừa đặ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 vừa đượ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).

Thêm một chiêu phụ: Để 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 vừa được sử dụng của cột ngay bên cạnh (trong trường hợp này, là "kéo" từ ô B2 đến ô B100, là ô tương ứng với ô cuối cùng vừa được sử dụng trong cột A, ô A100), sau khi nhập công thức trong ô đầu tiên (ô B2), 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 vừa đề 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.




Một cách khác nữa



Cách dùng cột phụ như tui 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 hay 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 ô C12, đặ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 vừa đặt tên là SumCriteria (C12).



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)



DSUM là một hàm có hiệu quả nhất khi bạn làm chuyện với những ô thỏa mãn nhiều điều kiện; và không tương tự 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 chuyện 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 chuyện dùng công thức mảng.


Thêm một cách khác nữa



Cách này, tui học được trên Giải pháp Excel: Dùng hàm SUMPRODUCT().



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; và 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 hay 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ó.


mã nguồn: giải pháp Excel (GPE)
 
Các chủ đề có liên quan khác
Tạo bởi Tiêu đề Blog Lượt trả lời Ngày
D Một số biện pháp nâng cao chất lượng dạy học 2 buổi / ngày (SKKN đạt giải tỉnh) Luận văn Sư phạm 0
C Đồ án Nghiên cứu đề xuất giải pháp xử lý rác thải cho một huyện ngoại thành quy mô 300 tấn/ngày Kiến trúc, xây dựng 2
L Ước lượng mô hình GARCH cho một chuỗi lợi suất của một loại cổ phiếu bất kì với số liệu theo ngày (í Kiến trúc, xây dựng 0
C Xây dựng chương trình quản lý thực phẩm hàng ngày tại một trường mầm non Công nghệ thông tin 0
H Báo cáo Tổng hợp thực tập tốt nghiệp giai đoạn một từ ngày 09/2/2004 đến ngày 13/3/2004 Luận văn Kinh tế 0
G Thực hiện chương trình (hành trình hàng ngày; miêu tả một số điểm đến; những thông tin về các cơ qua Luận văn Kinh tế 0
D Bàn về một trong những phẩm chất mà người thanh niên ngày nay cần có Văn học 0
D Chiều ngày 17 tháng 9 năm 2003, Đ cùng C đang ngồi uống nước thì có một em bé mời mua vé số. C lấy 1 Luận văn Luật 0
Z Khảo sát hoạt động của một số hư từ trong tác phẩm "Phép giảng tám ngày" của Alexandre De Rhodes Văn hóa, Xã hội 0
O Một Cổ phiếu, tăng giá 70% sau 4 ngày ... quá phê!!! Tài chính, Chứng khoán 9

Các chủ đề có liên quan khác

Top