+ Trả Lời Ðề Tài
Trang 5/6
đầuđầu 1 2 3 4 5 6 cuốicuối
Hiển thị kết quả tìm kiếm từ 41 đến 50 trên tổng số: 51

Ðề tài: Những "tuyệt chiêu" trong Excel

  1. Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    2,983
    Cảm ơn
    1,186
    Được cảm ơn 5,760 lần trong 2,348 bài viết
    Chiêu 33: Tạo các định dạng số cho riêng bạn (Tiếp theo)

    Bảng 2.4: Các mã định dạng về thời gian

    Mã ngày
    Mô tả
     
    H
    Chỉ giờ với 1 chữ số  
    Hh
    Chỉ giở với 2 chữ số  
    m
    Chỉ phút với 1 chữ số  
    mm
    Chỉ phút với 2 chữ số  
    s
    Chỉ giây với 1 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  

    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 and 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, or High sẽ bị dồn về bên phải, trong khi số sẽ bị dồn về bên trái.

    (Hết)
    thay đổi nội dung bởi: BNTT, 23-11-08 lúc 11:13 PM
    Cheettit Old Man Click here to enlargeThánh tắc ngô bất năng, ngô học bất yếm nhi giáo bất quyện dã .


  2. Tham gia ngày
    07 2007
    Bài gởi
    4,393
    Cảm ơn
    3,183
    Được cảm ơn 9,538 lần trong 3,261 bài viết
    Click here to enlarge
    Chiêu 34: Tăng thêm số lần Undo cho Excel
    Tất cả chúng ta đều đã quen thuộc với chức năng Undo của Excel, cho phép chúng ta làm lại những sai lầm của mình. Tuy nhiên, mặc định, chúng ta chỉ có thể Undo được 16 lần. Chiêu này giúp bạn có thể tăng số lần Undo lên nhiều hơn, có thể đến 100 lần.

    Khi bạn sử dụng chức năng Undo của Excel, và bạn đã thực hiện Undo 16 lần, thì nút Undo bị mờ đi, không thể Undo được nữa. Ngoài ra, khi bạn nhấn nút Save để lưu bảng tính, thì nút Undo cũng bị mờ đi, và danh sách những tác vụ (những hành động đã thực hiện trên bảng tính) mà bạn đã thực hiện bị mất sạch. Đó là do khi bạn lưu bảng tính, Excel cho rằng bạn đã hài lòng với bảng tính này (thì mới nhấn Save), và nó thấy rằng không cần thiết phải giữ lại danh sách những tác vụ trước khi lưu nữa.

    Bạn có thể thấy rằng, quay lui lại 16 lần là không đủ, nhưng làm cách nào để tăng số lần này lên? Nghĩa là làm cách nào để tăng danh sách các tác vụ của bạn lên? Thưa rằng, có cách, và bạn có thể tăng con số này lên đến 100 lần.

    Để làm điều này, trước hết, bạn hãy thoát khỏi Excel. Sau đó bạn chạy lệnh Run của Windows (Start | Run, hoặc nhấn phím Window + R), gõ vào đó Regedit.exe và nhấn OK.
    Click here to enlarge
    Khi bạn đã mở được chương trình Regedit, hãy tìm đến khóa:
    HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 11.0 \ Excel \ Options
    Con số 11.0 ở trên đây có thể khác, ví dụ với Excel2000 thì nó là 10.0, với Excel 2007 thì nó là 12.0
    Click here to enlarge

    Nhấn Edit | New | DWORD Value (xem hình). Một mục mới New Value #1 sẽ được tạo ra trong khung bên phải, bạn nhập vào đó chữ UndoHistory, và nhấn Enter.
    Click here to enlarge

    Nhấn đúp (double-click) vào mục UndoHistory mới tạo, rồi gõ vào hộp thoại mở ra một con số bất kỳ, miễn là lớn hơn 16 và nhỏ hơn 100. Nhấn OK, rồi thoát Regedit.
    Click here to enlarge
    Bạn hãy khởi động lại Excel và thử làm gì trong đó, rồi nhấn vào nút Undo xem bạn có thể Undo được bao nhiêu lần nhé. Hy vọng rằng Undo 100 lần, đã là quá đủ cho bạn. Tuy nhiên, nếu bạn nhấn lưu bảng tính, thì danh sách các tác vụ có thể Undo vẫn mất.
    thay đổi nội dung bởi: BNTT, 23-11-08 lúc 11:13 PM


  3. Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    2,983
    Cảm ơn
    1,186
    Được cảm ơn 5,760 lần trong 2,348 bài viết
    Click here to enlarge
    Chiêu 35: Tự tạo danh sách để fill

    Bằng cách tự tạo 1 danh sách, bạn có thể chỉ cần gõ 1 giá trị đầu, sau đó fill xuống hoặc fill ngang bằng cái Fill Handle, danh sách sẽ được tự động điền vào tuần tự.
    Excel cung cấp cho bạn 1 khả năng tiết kiệm đáng kể thời gian cho việc nhập liệu, không chỉ cho số mà cả cho chuỗi. Nó có tạo sẵn cho bạn vài danh sách: tháng trong năm, thứ trong tuần. Bạn chỉ cần gõ 1 từ đầu (có trong list), rồi kéo cái Fill Handle, danh sách sẽ tự động được điền vào với những giá trị kế tiếp của list. Thí dụ bạn gõ Tue, và fill xuống, các ô kế sẽ tự động được điền là Wed, Thu, Fri, Sat, Sun, Mon, và trở lại Tue nếu còn tiếp.

    Bạn hoàn toàn có thể tự tạo 1 list riêng của bạn để dùng sau này. Một cách đơn giản để tạo list là gõ danh sách bạn cần vào các ô. Thí dụ bạn cần danh sách các tháng trong năm bằng tiếng Việt. Vậy bạn hãy gõ vào các ô từ A1 đến A12:

    Click here to enlarge

    Rồi chọn trong Office button ➝ Excel Options ➝ Popular ➝ Edit Custom Lists (đối với Excel trước 2007, Tools ➝ Options ➝ Custom Lists), trong vùng Import List in cells, chọn $A$1:$A$12. Nhấn Import và nhấn OK.

    Click here to enlarge

    Một khi bạn đã tạo 1 list như vậy, chỉ cần gõ vào 1 ô với 1 giá trị trong list, rồi nắm kéo cái fill Handle, bạn sẽ được kết quả:

    Click here to enlarge

    Click here to enlarge

    Bạn cũng có thể fill giá trị ngược chiều nếu bạn gõ 2 giá trị, 1 nằm dưới trong danh sách, 1 nằm kế trên trong danh sách, tô chọn cả 2 ô rồi Fill:

    Click here to enlarge

    Click here to enlarge
    thay đổi nội dung bởi: BNTT, 30-11-08 lúc 11:07 AM
    Cheettit Old Man Click here to enlargeThánh tắc ngô bất năng, ngô học bất yếm nhi giáo bất quyện dã .


  4. Tham gia ngày
    03 2007
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,227
    Cảm ơn
    1,001
    Được cảm ơn 5,953 lần trong 966 bài viết
    Bài viết trong Blog
    2

    Click here to enlargeChiêu thứ 36: Làm nổi các Subtotal của Excel

    Khi làm việc với subtotal trong Excel bằng lệnh Data ➝ Outline ➝ Subtotal, các dòng subtotal rất khó phân biệt với các số liệu khi có nhiều cột dữ liệu. Cụ thể là, các cột subtotal xuất hiện bên phải tập dữ liệu trong khi tiêu đề của nó thường lại nằm ở cột đầu tiên và các subtotal lại không được định dạng in đậm như các tiêu đề nên gây khó khăn cho việc đọc các kết quả. Trong phần này sẽ hướng dẫn bạn các cách sử dụng định dạng theo điều kiện để định dạng các subtotal sao cho dễ phân biệt và dễ đọc hơn.

    Trước tiên, chúng ta cần có tập số liệu để thực hành. Các bạn nhập vào các số liệu như hình sau:

    Click here to enlarge

    Tiếp theo là các bạn hãy tính subtotal cho từng Region bằng cách đặt ô hiện hành vào dùng số liệu và vào Data ➝ Outline ➝ Subtotal (E2003: Data ➝ Subtotals). Hộp thoại Subtotal xuất hiện, bạn thiết lập các tuỳ chọn như hình sau và nhấn nút OK.

    Click here to enlarge

    Trong hình trên, bạn thấy rằng các tiêu đề subtotal của từng Region tại cột A được in đậm nhưng các giá trị subtotal bên cột B thì không. Đối với tập số liệu trên thì cũng không quá khó để đọc các kết quả, tuy nhiên chúng ta sẽ khó nhận biết ngay các subtotal khi có nhiều cột số liệu hơn.

    Chúng ta sẽ dùng định dạng theo điều kiện để định các các giá trị subtotal in đậm một cách tự động và bạn phải thực hiện điều này trước khi dùng lệnh subtotal. Do vậy nếu đã thực hiện lệnh subtotal thì bạn hãy xoá bỏ nó theo cách sau: chọn ô hiện hành trong vùng kết quả subtotal và vào Data ➝ Outline ➝ Subtotal ➝ chọn Remove All.

    Sau đó chọn vùng A1:B16, lưu ý để ô hiện hành tại tại ô A1, sau đó vào Home ➝ Styles ➝ Conditional Formatting ➝ New Rules… ➝ Use a formula to determine which cells to format (E2003: Format ➝ Conditional Formatting…➝ Formula Is) và nhập vào công thức sau tại hộp “Format values where this formula is true”:

    =Right($A1,5)=”Total”

    Click here to enlarge

    Lưu ý phải cố định cột A (thêm $ vào trước A) và dùng tham chiếu tương đối cho dòng. Nhấn nút Format… ➝ vào hộp Format Cells ➝ chọn ngăn Font ➝ chọn Bold tại Font Style và chọn màu đỏ tại Color ➝ nhấn OK ➝ nhấn tiếp OK để trở về bảng tính.

    Tiếp theo, bạn chọn một ô nào đó trong vùng số liệu và vào Data ➝ Outline ➝ Subtotal ➝ để các tuỳ chọn mặc định ➝ OK. Kết quả như hình sau:

    Click here to enlarge


    Do bạn chọn ô A1 là ô mặc định và sau khi áp dụng định dạng theo điều kiện, Excel sẽ thay đổi địa chỉ tham chiếu trong công thức định dạng trên cho các ô trong vùng chọn. Ví dụ như tại ô A2 và B2 sẽ có công thức định dạng theo điều kiện là =Right($A2,5)=”Total” và các ô A3, B3 sẽ là =Right($A3,5)=”Total”. Khi công thức trong ô nào trả về True thì ô đó sẽ được áp dụng định dạng theo thiết lập trong lệnh định dạng theo điều kiện.

    Cải tiến định dạng cho subtotal

    Các định dạng theo hướng dẫn trên sẽ như nhau cho các dòng có tính subtotal, do vậy cũng sẽ khó phân biệt dòng Grand Total với các dòng subtotal khác. Phần này, chúng ta cũng sẽ dùng định dạng theo điều kiện để làm cho chúng có định dạng khác nhau.

    Trước tiên, bạn phải xoá định dạng theo điều kiện ở phần trước bằng cách đặt ô hiện hành trong vùng số liệu rồi vào Home ➝ Styles ➝ Conditional Formatting ➝ Manage Rules ➝ chọn Rule và nhấn nút Delete Rule.

    Click here to enlarge

    Bạn phải xoá vùng kết quả Subtotal tương tự như hướng dẫn ở phần trước. Sau đó, bạn chọn vùng A1:B16, nhớ chọn ô A1 là ô hiện hành rồi vào Home ➝ Styles ➝ Conditional Formatting ➝ Manage Rule ➝ New Rule ➝“Use a formula to determine which cells to format” (E2003, Format ➝ Conditional Formatting… ➝ Formula Is) ➝ nhập công thức sau tại hộp “Format values where this formula is true”

    =$A1=”Grand Total”

    Nhấn nút Format ➝ chọn ngăn Font ➝ chọn Bold tại Font Style ➝ chọn màu xanh tại Color ➝ nhấn OK. Tiếp tục, bạn nhấn nút New Rule (E2003: nhấn Add) ➝ chọn “Use a formula to determine which cells to format” ➝nhập công thức sau tại hộp “Format values where this formula is true”:

    =Right($A1,5)=”Total”

    Nhấn nút Format ➝ chọn ngăn Font ➝ chọn Bold Italic tại Font Style ➝ chọn Single tại Underline ➝ nhấn OK ➝ OK. Nhấp tiếp OK để trở lại màn hình bảng tính.

    Trong Excel 2007, Rule thê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à nhấn Move Up để đưa nó lên đầu tiên trong danh sách các Rule.

    Click here to enlarge

    Cuối cùng, bạn vào Data ➝ Outline ➝ chọn Subtotal ➝ nhấn OK và xem kết quả như hình sau:

    Click here to enlarge

    Tập tin đính kèm
    thay đổi nội dung bởi: BNTT, 30-11-08 lúc 11:06 AM


  5. Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    2,983
    Cảm ơn
    1,186
    Được cảm ơn 5,760 lần trong 2,348 bài viết
    Click here to enlarge
    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 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.

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

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

    Click here to enlarge

    3. Sử dụng Macro

    Nếu bạn thường xuyên chuyển đổi các ô có công thức hoặc hàm thành giá trị thì bạn có thể sử dụng macro đơn giản như sau:

    PHP Code:
    Sub ValuesOnly( )
    Dim rRange As Range
    On Error Resume Next
    Set rRange 
    Application.InputBox(Prompt:="Select the formulas"_
    Title
    :="VALUES ONLY"Type:=8)
    If 
    rRange Is Nothing Then Exit Sub
    rRange 
    rRange.Value
    End Sub 
    Để sử dụng macro này, chọn Developer ➝ Code ➝ Visual Basic (với phiên bản trước Excel 2007, chọn Tools ➝ Macro ➝ Visual Basic Editor) hoặc nhấn Alt + F11 để chèn một module chuẩn. Sao chép và dán đoạn code ở trên trực tiếp vào module.

    Nhấn chọn nút Close của cửa sổ code hoặc nhấn Alt + Q để quay trở lại bảng tính Excel. Chọn Developer ➝ Code ➝ Macros (với phiên bản trước Excel 2007, chọn Tools ➝ Macro ➝ Macros) hoặc nhấn Alt+F8, chọn ValuesOnly, sau đó click chọn nút Options, ở shortcut key bạn thêm một phím nào đó để gán một nút tắt cho macro này (Ví dụ: bạn gõ ở shortcut key là E thì sau này muốn sử dụng macro này bạn chỉ cần gõ Ctrl+E). Chú ý là bạn không nên chọn các phím tắt trùng với các phím tắt có sẳn của Excel như Ctrl+V, Ctrl+C, Ctrl+S....

    Khi bạn sử dụng macro, bạn sẽ thấy một Input box được hiển thị và hỏi dãy chứa công thức của bạn là dãy nào. Địa chỉ của dãy được chọn sẽ được hiển thị một cách tự động trong Inputbox, và tất cả những gì bạn cần để làm thực hiện việc chuyển đổi là nhấn OK.


    thay đổi nội dung bởi: BNTT, 30-11-08 lúc 11:06 AM
    Cheettit Old Man Click here to enlargeThánh tắc ngô bất năng, ngô học bất yếm nhi giáo bất quyện dã .


  6. Tham gia ngày
    03 2007
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,227
    Cảm ơn
    1,001
    Được cảm ơn 5,953 lần trong 966 bài viết
    Bài viết trong Blog
    2

    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 validation, bạn sẽ thấy đó là một tính năng rất hay. Có lẽ điể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 vào bất kỳ ô nào trên bảng tính và cho phép người sử dụng chọn lựa. Nó sẽ tuyệt hơn hay không nếu khi bạn nhập vào một tên mới trong một ô đang áp dụng tính năng validation thì Excel sẽ tự động thêm tên này vào trong danh sách validation? Điều này có thể thực hiện được khi bạn làm theo các hướng dẫn trong bài này.

    Giả sử bạn có danh sách tên trong vùng A1:A10 như hình sau:

    Click here to enlarge

    Danh sách này chính là tên của các nhân viên trong một công ty. Tại một ô đang áp dụng validation, bạn sẽ không thể nào nhập vào được tên một nhân viên mới ngoài danh sách lựa chọn, mà bạn phải thêm tên nhân viên mới này vào dòng cuối trong danh sách và điều chỉnh lại vùng dữ liệu của validation trước. Điều này sẽ rất bất tiện trong sử dụng.

    Để hạn chế nhược điểm này, tại ô A11 bạn nhập vào công thức bên dưới và sao chép đến A20 (dự trù trước sẽ thêm 10 tên mới).

    =IF(OR($D$1="",COUNTIF($A$1:A10,$D$1)),"x",$D$1)

    Chọn Formulas ➝ Defined Names ➝ Define Name (E2003: Insert ➝ Name ➝ Define), và nhập vào tên MyName tại hộp Names. Tại Refers To, bạn nhập vào công thức bên dưới rồi nhấp OK (E2003: nhấn Add ➝ OK).

    =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)

    Theo tôi, ta thay bằng công thức
    =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A)-COUNTIF(Sheet1!$A:$A,"=x"),1)

    Click here to enlarge

    Click here to enlarge

    Choạ ô D1, vào Data ➝ Data Tools ➝ Data Validation (E2003: Data ➝ Validation). Chọn List từ hộp Allow, và tại Source nhập vào =MyNames, bạn đảm bảo rằng đã chọn thêm hộp In-Cell dropdown. Chọn ngăn Error Alert và bỏ chọn Show error alert after invalid data is entered. Nhấn nút OK khi hoàn tất.

    Click here to enlarge

    Click here to enlarge

    Nhấp phải chuột lên tên Sheet1 và chọn View Code. Sau đó bạn nhập vào đoạn mã sau:

    [highlight=VB] Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lReply As Long
    If Target.Cells.Count > 1 Then Exit Sub
    If Target.Address = "$D$1" Then
    If IsEmpty(Target) Then Exit Sub
    If WorksheetFunction.CountIf(Range("MyNames"), Target) = 0 Then
    lReply = MsgBox("Add " & Target & " to list", vbYesNo + vbQuestion)
    If lReply = vbYes Then
    Range("MyNames").Cells(Range("MyNames").Rows.Count + 1, 1) = Target
    End If
    End If
    End If
    End Sub
    [/highlight]

    Đó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 chưa có trong danh sách validation và nhấn Enter. Bạn sẽ thấy tên mới xuất xuất hiện trong danh sách dữ liệu trên bảng tính tại ô A11 và nếu chọn ô D1 và mở danh sách validation bạn cũng sẽ thấy tên mới đã được bổ sung vào.

    Các bạn xem thêm một số cải tiến trong tập tin đính kèm.




    Tập tin đính kèm
    thay đổi nội dung bởi: TranThanhPhong, 09-12-08 lúc 11:12 PM


  7. Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    2,983
    Cảm ơn
    1,186
    Được cảm ơn 5,760 lần trong 2,348 bài viết
    Click here to enlarge

    Chiêu thứ 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 1 ngày.
    9ể 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ó 1 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ư 1 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 1 ô 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 1 giá trị giờ, hoặc ngày. Thí dụ như 1 ô 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.

    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
    - ngược lại 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ó 1 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)

    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à 1 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+ If(A2<A1, 1)
    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ó 1 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 1 khoảng thời gian mà bạn muốn (khi tính thời hạn này nọ kể từ 1 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)

    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ừ 1 số tháng vào 1 ngày cho trước. Hoặc hàm EoMonth() để tính ngày cuối tháng của 1 thời điểm bất kỳ.

    Ghi chú:
    Excel có 1 lỗi là coi năm 1900 là 1 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ố.
    Sau đây là 1 số link hữu ích về xử lý ngày tháng:

    HOW TO: Use Dates and Times in Excel 2000
    http://support.microsoft.com/default...n-us;Q214094#6
    Text or Number Converted to Unintended Number Format
    http://support.microsoft.com/default...;en-us;Q214233
    Maximum Times in Microsoft Excel
    http://support.microsoft.com/default...;en-us;Q214386
    Dates and Times Displayed as Serial Numbers When Viewing Formulas
    http://support.microsoft.com/default...;en-us;Q241072
    Controlling and Understanding Settings in the Format Cells Dialog Box
    http://support.microsoft.com/default...;en-us;Q264372
    How to Use Dates and Times in Microsoft Excel
    http://support.microsoft.com/default...b;en-us;214094


    Xử lý Ngày giờ là 1 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ó.
    thay đổi nội dung bởi: BNTT, 07-12-08 lúc 10:52 PM
    Cheettit Old Man Click here to enlargeThánh tắc ngô bất năng, ngô học bất yếm nhi giáo bất quyện dã .


  8. Tham gia ngày
    03 2007
    Nơi Cư Ngụ
    TP HCM
    Bài gởi
    1,227
    Cảm ơn
    1,001
    Được cảm ơn 5,953 lần trong 966 bài viết
    Bài viết trong Blog
    2

    Chiêu 40: Cho phép sử dụng tính năng Group and Outline trên bảng 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á

    Để thực hiện điều này, trước tiên bạn hãy thiết lập Group and Outline cho dữ liệu của mình. Chọn vùng dữ liệu rồi vào Data ➝ Group ➝ Outline và chọn Auto Outline (E2003: Data ➝ Group & Outline) kết quả như hình sau:

    Click here to enlarge

    Sau đó, bạn dùng tính năng Protect Sheet để khoá bảng tính lại: vào Review ➝ tại nhóm Changes ➝ chọn Protect Sheet và đặt vào mật mã bảo vệ. (Ví dụ như mật mã là Secret).

    Khi bảng tính trong chế độ bảo vệ thì bạn không thể sử dụng được tính năng Group and Outline. Do vậy chúng ta sẽ sử dụng tham số UserInterfaceOnly trong phương thức Protect kết hợp với sự kiện mở bảng tính (Workbook_Open) để bật UserInterfaceOnly và EnableOutlining thành True.

    Sau khi áp dụng Group and Outline xong, bạn nhấn ALT+F11 để vào cửa sổ VBE. Bạn chọn ThisWorkbook và nhập vào đoạn mã sau (Tên Sheet1 là CodeName của Sheet Formulas Exercise, bạn cũng có thể thay bằng Index của sheet trong bảng tính hoặc dùng TabName):

    [highlight=VB]Private Sub Workbook_Open()
    With Sheet1
    .Protect Password:="Secret", UserInterfaceOnly:=True
    .EnableOutlining = True
    End With
    End Sub[/highlight]

    Sau đó 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. Sau đó, bạn mở lại tập tin và cho phép Macro thực thị (nếu nhận được hộp thoại cảnh báo), khi đó bạn có thể sử dụng được các nút Group and Outline trong bảng tính đang bị khoá (các nút lệnh đã bị mờ).

    Click here to enlarge

    Ghi chú thêm:

    Tham số UserInterfaceOnly của phương thức Protect
    • là True: sẽ bảo vệ giao diện người dùng (user interface) nhưng cho phép dùng macro để thay đổi.
    • nếu không khai báo thì nhận giá trị mặc định là False: bảo vệ cả giao diện người dùng và ngăn các lệnh macro can thiệp vào giao diện người dùng.
    • EnableOutlining = True ➝ bật các nút Show/ Hide Detail

    Tập tin đính kèm
    thay đổi nội dung bởi: TranThanhPhong, 09-12-08 lúc 11:12 PM


  9. Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    2,983
    Cảm ơn
    1,186
    Được cảm ơn 5,760 lần trong 2,348 bài viết
    Click here to enlarge
    Chiêu 41: Bẫy lỗi để trống dữ liệu
    Bằng cách dùng Data Validation, chúng ta có thể bảo đảm rằng 1 trường dữ liệu nào đó nhất thiết phải nhập liệu, không được để trống. Thí dụ ta tạo 1 bảng dữ liệu 2 trường, với tên trường là Tên và Bộ phận nằm ở 2 ô A1 và B1.
    Bên dưới, bạn muốn rằng bất kỳ người nào nhập liệu vào bảng cũng phải nhập đủ 2 nội dung này. Nếu bạn bắt đầu với 1 bảng dữ liệu có sẵn những ô bị để trống, cần điền đầy vào, hãy xem phần sau:


    Điền dữ liệu vào các ô trống:

    Một số các công cụ hoặc hàm của Excel không làm việc với ô trống như Pivot table, Sorting, Filter, hàm SumProduct, … Giả sử bạn có 1 cột A với 1 đống những ô trống nằm xen kẽ nhau. bạn hãy nhấn F5, hoặc Control – G, nhấn Special, chọn ô chọn blank, và nhấn OK. Bây giờ tất cả các ô trống đã được chọn. Nếu bạn muốn điền vào đó những giá trị hoặc công thức giống ô liền ngay trên của nó, hãy nhấn dấu bằng (=), nhấn mũi tên lên, rồi nhấn Ctrl-Enter.



    Bây giờ đến phần chính:


    Tô chọn từ ô A3 đến ô B100 chẳng hạn, theo độ lớn của vùng bạn định nhập dữ liệu. Mở hộp thoại Data – Validation, trong tab setting chọn Custom trong ô Allow, rồi điền công thức sau vào khung công thức:

    =AND(COUNTA($A$2:$A2)=ROW()-2,COUNTA($B$2:$B2)=ROW( )-2)

    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.

    Click here to enlarge

    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.

    Click here to enlarge

    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:[/
    Click here to enlarge

    Cheettit Old Man Click here to enlargeThánh tắc ngô bất năng, ngô học bất yếm nhi giáo bất quyện dã .


  10. Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    2,983
    Cảm ơn
    1,186
    Được cảm ơn 5,760 lần trong 2,348 bài viết
    Click here to enlarge

    Chiêu 42: Giảm danh sách xổ xuống của Validation, sau khi chọn 1.
    Rất hữu ích cho người dùng Excel khi bạn cho họ 1 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 1 mục trong danh sách, để khỏi phải lựa chọn trong 1 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 đó, copy đoạn code sau:


    Code:
    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.
    thay đổi nội dung bởi: TranThanhPhong, hôm nay lúc 10:48 AM
    Cheettit Old Man Click here to enlargeThánh tắc ngô bất năng, ngô học bất yếm nhi giáo bất quyện dã .


+ Trả Lời Ðề Tài
Trang 5/6
đầuđầu 1 2 3 4 5 6 cuốicuối

Thông tin về chủ đề này

Users Browsing this Thread

Hiện có 1 người đang xem đề tài này. (0 thành viên và 1 khách)

     

Quyền Sử Dụng Ở Diễn Ðàn

  • Bạn không thể đăng đề tài mới
  • Bạn không thể đăng trả lời
  • Bạn không thể đăng file đính kèm.
  • Bạn không thể sửa bài viết.