+ 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

Hybrid View

  1. #1
    Tham gia ngày
    03 2007
    Nơi Cư Ngụ
    HCM
    Bài gởi
    1,392
    Cảm ơn
    1,572
    Được cảm ơn 7,869 lần trong 1,144 bài viết

    Smile

    Chiê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:



    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.



    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”



    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:




    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.



    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.



    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:



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


  2. #2
    Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    3,881
    Cảm ơn
    1,759
    Được cảm ơn 8,638 lần trong 3,360 bài viết

    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.


    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 Thánh tắc ngô bất năng, ngô học bất yếm nhi giáo bất quyện dã .


  3. #3
    Tham gia ngày
    03 2007
    Nơi Cư Ngụ
    HCM
    Bài gởi
    1,392
    Cảm ơn
    1,572
    Được cảm ơn 7,869 lần trong 1,144 bài viết

    Smile

    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:



    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)





    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.





    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


  4. #4
    Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    3,881
    Cảm ơn
    1,759
    Được cảm ơn 8,638 lần trong 3,360 bài viết

    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.


    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.


    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:[/

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


  5. #5
    Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    3,881
    Cảm ơn
    1,759
    Được cảm ơn 8,638 lần trong 3,360 bài viết


    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, 09-02-10 lúc 10:48 AM
    Cheettit Old Man Thánh tắc ngô bất năng, ngô học bất yếm nhi giáo bất quyện dã .


  6. #6
    Tham gia ngày
    03 2007
    Nơi Cư Ngụ
    HCM
    Bài gởi
    1,392
    Cảm ơn
    1,572
    Được cảm ơn 7,869 lần trong 1,144 bài viết

    Smile 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

    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ột danh sách để fill trong Excel thông qua Fill handle là việc làm rất hay để nhanh chóng nhập danh sách các chuỗi số hoặc chuỗi văn bản vào bảng tính. Excel đã xây dựng sẵn một số Custom List về các ngày trong tuần (Sun - Sat), danh sách các tháng (Jan – Dec) và các chuỗi số nhưng bạn cũng có thể tự tạo thêm các danh sách mới cho mình. Phần này sẽ hướng dẫn bạn các tạo thêm Custom List cho Fill Handle.

    Trước tiên, bạn cần nhập vào danh sách các phần tử cần đưa vào Custom List trên bảng tính. Ví dụ như bạn nhập và 26 chữ cái trong các ô A1:A26 trên Sheet1. Sau đó nhấn vào nút Office ➝ Excel Options ➝ Popular ➝ Edit Custom Lists (E2003: Tools ➝ Options ➝ Custom Lists). Nhấp chọn nút nằm bên trái nút Import và dùng chuột quét chọn vùng dữ liệu A1:A26. Sau đó nhấn nút Import và OK. Kể từ lúc này danh sách các chữ cái sẽ có thể sử dụng để fill trong tất cả bảng tính trên máy tính này.



    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:

    Code:
    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[/highlight]
    
    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:
    
    [highlight=VB]
    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

    Mời các bạn tham gia thảo luận các tuyệt chiêu tại đây

    Tập tin đính kèm
    thay đổi nội dung bởi: TranThanhPhong, 09-02-10 lúc 10:47 AM Lý do: đính chính


  7. #7
    Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    3,881
    Cảm ơn
    1,759
    Được cảm ơn 8,638 lần trong 3,360 bài viết

    Chiêu số 11: Tìm dữ liệu xuất hiện 2 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 shif và clickvào ô H100. Cần nhắc các bạn 1lần nữa, là phải làmđúng trìnhtự để cho ô chọn (activecell) là ô A1. Bây giờ vào tab Home, Conditional Formating, NewRule trong mục Style. Chọn [FONT=Birka]Use a Formula to determine which cells to format” và click chọn “Format values where this formula is true.” Đối với Excel 2003: Format, Conditional Formating, chọn 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 1 điều kiện, lần này công thức là: =COUNTIF($A$1:$H$100,A1)=3.
    Nhấn New Rule (trong Excel 2003 chọn vào điều kiện thứ 3), làm tiếp 1 đ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 1 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. Và: Excel 2003 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.


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


  8. #8
    Tham gia ngày
    07 2007
    Nơi Cư Ngụ
    Dalat
    Bài gởi
    4,829
    Cảm ơn
    3,677
    Được cảm ơn 12,831 lần trong 3,688 bài viết

    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 đã 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 This workbook trong khung Project. 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ấ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 đã đặ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 đ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 (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:
    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 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.

    Xin đính kèm theo đây bảng tính đã 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.
    Tập tin đính kèm
    thay đổi nội dung bởi: BNTT, 23-11-08 lúc 09:50 PM


  9. #9
    Tham gia ngày
    07 2007
    Nơi Cư Ngụ
    Dalat
    Bài gởi
    4,829
    Cảm ơn
    3,677
    Được cảm ơn 12,831 lần trong 3,688 bài viết

    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 việc đặ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.

    Giả sử bạn đã đặt tên cho dãy sẽ dùng làm quy tắc nhập liệu là MyRange. Bạn chọn ô (hoặc 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 đã 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 đại diện 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 tính 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. Để tạo một Dala-Validation, bạn cũng làm những bước như tôi đã 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, hoặc 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 đã 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 việc đặt tên cho dãy, là việc 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 việc 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 việc 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ỗ đã 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 (hoặc cột) ngay chỗ chứa Name, thì bạn phải điều chỉnh lại cho đúng...


    thay đổi nội dung bởi: BNTT, 23-11-08 lúc 09:52 PM


  10. #10
    Tham gia ngày
    11 2007
    Nơi Cư Ngụ
    Gò Vấp
    Bài gởi
    3,881
    Cảm ơn
    1,759
    Được cảm ơn 8,638 lần trong 3,360 bài viết


    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 Thá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ó 4 người đang xem đề tài này. (0 thành viên và 4 khách)

     

Bookmarks

Bookmarks

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.