Showing posts with label Tin học văn phòng. Show all posts
Showing posts with label Tin học văn phòng. Show all posts

Wednesday, April 25, 2012

Hàm Offset và Validation

File đính kèm download tại đây

Kỳ 1: Giới thiệu hàm Offset


Công dụng:
Trả về tham chiếu đến một vùng nào đó, cách một ô hoặc một dãy ô một khoảng cách với số dòng hoặc số cột được chỉ định trước. Chúng ta có thể chỉ định số dòng, số cột của vùng tham chiếu trả về.


Cú pháp:
=OFFSET(reference, rows, cols, height, width)

Trong đó:

  • reference: là vùng tham chiếu làm cơ sở cho hàm (làm điểm xuất phát) để tạo vùng tham chiếu mới. reference phải chỉ đến một ô hoặc một dãy ô liên tục, nếu không hàm sẽ trả về lỗi #VALUE!.
  • rows: là số dòng bên trên hoặc bên dưới reference, tính từ ô đầu tiên (ô ở góc trên bên trái) của reference. Ví dụ nếu rows là 3, sẽ có 3 dòng trả về và nằm bên dưới reference. Khi rows là số dương thì các dòng trả về nằm bên dưới reference, khi rows là số âm thì các dòng trả về nằm bên trên reference.
  • cols: là số cột bên trái hoặc bên phải reference, tính từ ô đầu tiên (ô ở góc trên bên trái) của reference. Ví dụ nếu cols là 4 sẽ có 4 cột trả về và nằm bên phải của reference. Khi cols là số dương thì các cột trả về nằm bên phải reference, khi cols là số âm thì các cột trả về nằm bên trái reference.
  • height: là số dòng của vùng tham chiếu cần trả về. Height phải là số dương.
  • width: là số cột của vùng tham chiếu cần trả về. Width phải là số dương.

Lưu ý:

  • Nếu rows và cols làm cho tham chiếu trả về vượt ra ngoài phạm vi của một worksheet, hàm Offset sẽ báo lỗi #REF!
  • Nếu bỏ qua height và width, thì height và width sẽ có kích thước mặc định là height và width của reference.
  • Offset thật sự không di chuyển bất cứ ô nào, cũng không thay đổi bất kỳ phần chọn nào, nó chỉ trả về tham chiếu mà thôi. Chúng ta có thể sử dụng Offset với bất kỳ hàm nào cần đối số là một tham chiếu. Ví dụ, công thức Sum(Offset(C10,1,2,3,1)) sẽ tính tổng các giá trị của một dãy gồm ba dòng, một cột; đây là dãy nằm bên dưới ô C10 một dòng và bên phải ô này hai cột.





Các ví dụ

 

Kỳ 2: Offset và Validation List

a. Có bao giờ bạn muốn tạo một Validation List mà nội dung của nó thay đổi theo sự thay đổi của một List khác (danh sách). Bài viết này sẽ hướng dẫn từng bước cách làm:

Giả sử bạn có danh sách gồm 2 cột: OS (hệ điều hành) và Versions (Phiên bản) (Xem file đính kèm). Bây giờ bạn muốn tạo một Validation List để khi tại ô G3 ta chọn một OS nào đó thì danh sách trong ô H3 sẽ chỉ hiển thị các Versions của OS mà ta đang chọn (xem hình 6).



Qui trình thực hiện:

B1. Tạo một danh sách A1:B34 (xem file đính kèm), với 2 cột OS và Versions. Lưu ý một OS có thể có nhiều Version.

B2. Đặt tên cho vùng A2:A34 với tên là "OS". Bạn quét chọn vùng A2:A34 | nhấn tổ hợp <Ctrl+F3> | Chọn New… gõ OS vào hộp Name, chọn Scope là Worksheet Offset2 hoặc Workbook đều được và tại Refers to gõ vào =A2:A34 | Nhấn nút OK (Excel 2007). Nếu dùng các phiên bản Excel trước thì sau khi nhấn <Ctrl+F3> là có thể khai báo việc đặt tên vùng và sao đó nhấn nút Add để hoàn thành.



B3. Tạo một danh sách chứa tên các hệ điều hành được trích ra từ cột OS (danh sách này không trùng lặp). Bạn quét chọn các ô D2:D34 dùng để chứa danh sách kết quả trích lọc không trùng | nhập vào công thức mảng trích lọc sau:

=IF(ISERR(INDEX(OS,SMALL(IF(MATCH(OS,OS,0)=ROW(IND IRECT("1:"&ROWS(OS))), MATCH(OS,OS,0),""),ROW(INDIRECT("1:"&ROWS(OS)))))) ,"",
INDEX(OS,SMALL(IF(MATCH(OS,OS,0)=ROW(INDIRECT("1:" &ROWS(OS))), MATCH(OS,OS,0),""),ROW(INDIRECT("1:"&ROWS(OS))))))

Kết thúc công thức bằng tổ hợp phím <Ctrl+Shift+Enter>. Công thức trên sẽ trích ra các loại hệ điều hành (OS) và mỗi loại chỉ lấy một lần, các dòng trùng sẽ thay bằng "".



B4. Sau khi đã có danh sách các OS duy nhất, bạn hãy đặt tên cho danh sách này. Lưu ý, có khả năng có những loại OS khác do vậy ở đây khi đặt tên là dùng hàm Offset để tham chiếu đến vùng dữ liệu động.

Bạn nhấn <Ctrl+F3> | Chọn New… | đặt tên cho vùng là OSValList tại Name | tại Refers to nhập vào công thức sau;
=OFFSET(Offset2!$D$2,0,0,COUNTA(Offset2!$D$2:$D$34 )-COUNTIF(Offset2!$D$2:$D$34,""),1)

Công thức trên giúp trả về vùng tham chiếu các OS duy nhất một cách động.



B5. Tạo bảng nhỏ như hình bên dưới. Chọn ô G3 và đặt tên là Val1Cell, chọn ô H3 đặt tên là Val2Cell (theo cách đặt tên nêu trên hoặc có thể đặt tên bằng cách gõ trực tiếp vào Name Box).



B6. Đây là bước quan trọng giúp cho danh sách chọn tại H3 sẽ thay đổi phụ thuộc vào tùy chọn tại G3. Bạn đặt tên cho vùng Versions với tham chiếu trả về thay đổi theo tùy chọn của G3 như sau:

Nhấn <Ctrl+F3> | chọn New… | tại hộp Name nhập vào tên là Versions | tại Refers to nhập vào công thức sau;

=OFFSET(INDIRECT(ADDRESS(MATCH(Val1Cell,OS,0)+1,2, ,,)),0,0,COUNTIF(OS,Val1Cell),1)

Công thức này giúp chọn ra vùng Versions tương ứng với việc chọn OS tại ô G3.

B7. Áp Validation cho 2 ô G3 và H3:

Chọn ô G3 | vào Data | Data Validation | Settings | chọn List | tại Source nhập vào =OSValList | nhấn nút Ok hoàn tất.

Chọn ô H3 | vào Data | Data Validation | Settings | chọn List | tại Source nhập vào =Versions | nhấn nút Ok hoàn tất.



Các bước đã hoàn tất, các bạn hãy chọn thử một OS nào đó tại G3 và qua ô H3 xem danh sách Version tương ứng.

Các cải tiến cho công cụ này chúng ta có thể tiếp tục thảo luận trên GPE.

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

Chiêu 42: Giảm danh sách xổ xuống của Validation, sau khi chọn 1.


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.

 

Chiêu 41: Bẫy lỗi để trống dữ liệu


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

 

 

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:



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



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

 

Chiêu 38: Thêm dữ liệu vào danh sách Validation một cách tự động

Chiêu 38: Thêm dữ liệu vào danh sách Validation một cách tự động

Nếu bạn đã từng sử dụng 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.

Chiêu 37: Chuyển đổi các hàm và công thức trong Excel thành giá trị.


Chiêu 37: Chuyển đổi các hàm và công thức trong Excel thành giá trị.

Hầu hết các bảng tính Excel đều chứa các công thức. Thỉnh thoảng bạn chỉ muốn hiện lên kết quả của một công thức trong một ô, thay vì để công thức ở đó, vì nó sẽ thay đổi khi dữ liệu mà nó tham chiếu đến thay đổi.

Bạn có thể làm điều này bằng tay theo hai cách 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.

 

Chiêu thứ 36: Làm nổi các Subtotal của Excel

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:

Chiêu 35: Tự tạo danh sách để fill


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:


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.


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ả:




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:



 

Chiêu 34: Tăng thêm số lần Undo cho Excel


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.

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



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.



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.


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.

 

Chiêu 33: Tạo các định dạng số cho riêng bạn


Chiêu 33: Tạo các định dạng số cho riêng bạn


Excel đã có những định dạng số của riêng nó nhưng thỉnh thoảng bạn cần sử dụng một định dạng số không có sẵn trong Excel. Sử dụng chiêu này, bạn có thể tạo ra các định dạng số mà bạn có thể điều chỉnh cho nhu cầu riêng của bạn.

Trước khi bạn thử những chiêu này, sẽ có ích cho bạn nếu bạn hiểu được làm thế nào Excel nhận biết được các định dạng của ô. Excel nhận biết một định dạng của ô khi có 4 phần sau (từ trái sang phải): số dương, số âm, giá trị 0, và giá trị chuỗi. Mỗi phần được ngăn cách bởi một dấu chấm phẩy (;).

Khi bạn tạo ra một định dạng số cho riêng bạn, bạn không cần phải định dạng tất cả 4 phần này. Nói cách khác, nếu định dạng của bạn chỉ có hai phần thì phần đầu tiên được sử dụng cho cả các số dương và các giá trị 0, trong khi phần thứ 2 sẽ được sử dụng cho số âm.

Nếu định dạng của bạn chỉ bao gồm một phần, tất cả các loại số sẽ dùng một định dạng. Chuỗi bị ảnh hưởng bởi các định dạng riêng chỉ khi bạn sử dụng tất cả 4 phần, phần cuối sẽ sử dụng cho chuỗi .

Đừng cho rằng những định dạng riêng chỉ áp dụng chỉ cho các dữ liệu kiểu số. Các định dạng số cũng áp dụng cho các dữ liệu kiểu chữ.

Định dạng riêng cho số được hiển thị ở hình 2-18 là định dạng tiền tệ chuẩn của Excel, nó chỉ ra số tiền âm là màu đỏ.


Nếu bạn gõ một số dương tương ứng với một giá trị tiền tệ, Excel sẽ định dạng nó ngay lập tức bao gồm dấu phẩy (,) ngăn cách hàng ngàn, theo sau hai số lẻ thập phân.

Excel sẽ định dạng tương tự cho giá trị âm, ngoại trừ số âm được hiển thị là màu đỏ. Bất kỳ giá trị 0 nào cũng sẽ không có ký hiệu tiền tệ và sẽ được hiển thị hai số lẻ thập phân (0.00). Nếu bạn gõ một chuỗi vào một ô, Excel sẽ hiển thị dòng chữ "Chuỗi hiển thị," bất kể giá trị thật sự của chuỗi bạn gõ vào là gì.

Điều quan trọng là phải chú ý, việc định dạng một giá trị của ô không ảnh hưởng đến giá trị đích thực của ô.

Ví dụ, gõ bất kỳ số nào vào ô A1. Nhấn chuột phải và chọn Format Cells
Number Custom, và sử dụng bất kỳ định dạng nào ngay tại con trỏ chuột đầu tiên (trong hộp "Type), gõ "Hello" (với dấu ngoặc kép ("")). Sau đó nhấn OK.

Mặc dù ô hiển thị từ "Hello" nhưng bạn có thể thấy giá trị thật sự của ô bằng cách chọn ô và xem trên thanh công thức (Formula bar), hoặc nhấn F2. Nếu bạn tham chiếu ô này trong một công thức - ví dụ, =A1+20 - kết quả của ô sẽ dẫn đến định dạng lúc nãy, nghĩa là sẽ trả về kết quả là "Hello" (bạn hãy làm thử, bạn sẽ thấy kết quả ngay tức khắc!)

Nếu bạn đã tham chiếu ô A1 cùng với những ô khác mà có bất kỳ định dạng chuẩn Excel nào - ví dụ, =Sum(A1:A10)- kết quả trả về sẽ vẫn theo định dạng riêng của ô A1.

Excel đưa ra một giả thiết đã được thiết lập trước rằng bạn muốn kết quả của ô đã được định dạng giống như cách tham chiếu đến một hay nhiều ô. Nếu các ô tham chiếu chứa nhiều hơn một loại định dạng thì bất cứ định dạng riêng nào cũng sẽ được ưu tiên trước.

Điều này có nghĩa là, bạn phải luôn luôn nhớ rằng Excel sử dụng một giá trị thật sự của ô để tính toán, và sẽ không lấy giá trị thể hiện của nó.

Điều này có thể tạo ra ngạc nhiên khi Excel tính toán dựa trên các ô đã được định dạng không có số lẻ thập phân hoặc có một vài số lẻ thập phân, thí dụ:

Để thấy được điều này, bạn gõ 1.4 vào ô A1 và 1.4 vào ô A2, định dạng cho cả hai ô là không có số lẻ thập phân theo sau bằng cách bạn chọn vùng A1:A2, click chuột phải, chọn Format Cells
Number, trong khung "decimal places" chọn 0. Sau đó gõ công thức =A1+A2 vào một ô khác. Dĩ nhiên kết quả trả về sẽ là 3 vì Excel đã làm tròn.

Excel có một lựa chọn được gọi là "Precision as Displayed", bạn có thể tìm thấy bằng cách chọn Office button
Excel Options Advanced (Với phiên bản trước Excel 2007, chọn Tools Options Calculation), nhưng bạn nên biết rằng định dạng này sẽ thay đổi vĩnh viễn các giá trị trong các ô từ đầy đủ các số lẻ thập phân (gồm 15 ký số) đến bất kỳ định dạng nào, bao gồm các số lẻ thập phân, được thể hiện. Nói cách khác, khi bạn đánh dấu chọn "Precision as Displayed" và nhấn OK thì nó sẽ không trả lại kết quả ban đầu. (Bạn có thể thử nhưng các thông tin về các số lẽ thập phân mở rộng sẽ bị mất đi.)


Ghi chú thêm: để hiểu thêm điều này, bạn làm ví dụ như sau ô A1 bạn gõ 1.53, A2: 2.75, A3: 5.68, A4: 3.25, A5: sum(A1:A4). Kết quả bạn thấy được ở ô A5 là 13.21. Giờ bạn vào Office button
Excel Options Advanced và chọn "Set precision as display". Chọn vùng A1:A4, bạn nhấn nút Decrease Decimal , bạn sẽ thấy phần thập phân bị làm tròn dần lên. Khi còn 1 số thập phân thì tổng là 13.30; khi không còn chữ số thập phân nào nữa thì tổng là 14. Bây giờ, bạn lại dùng nút Increase Decimal, bạn sẽ thấy phần số lẻ ở sau các số ban đầu bạn gõ vào đã trở thành sô 0 hết. Đây là điều bạn nên chú ý khi lựa chọn tùy chọn này. Tuy nhiên nếu ở các ô A1:A4 là công thức thì dữ liệu ban đầu của bạn vẫn còn nguyên. Ví dụ, thay vì gõ trực tiếp ô A1 là 1.53, bạn gõ =1.53 và tương tự như thế cho các ô khác và làm theo các bước hồi nãy và kiểm tra kết quả bạn sẽ thấy có sự khác biệt.

Định dạng mặc định cho tất cả các ô trong Excel là General. Nếu bạn gõ một con số vào một ô, Excel thường sẽ đoán định dạng số nào là phù hợp nhất. Ví dụ, nếu bạn gõ 10% vào một ô, Excel sẽ định dạng ô đó là kiểu Percentage. Trong hầu hết các trường hợp thì Excel đoán khá chính xác nhưng thỉnh thoảng bạn cần thay đổi lại.

Khi sử dụng định dạng cho các ô, hãy tránh việc bị cám dỗ để định dạng canh trái, canh phải hay canh giữa. Theo mặc định các số sẽ được canh phải và chuỗi sẽ được canh trái. Nếu bạn bỏ điều này, bạn có thể nhận biết thoáng qua dù cho ô đó là chuỗi hay số vì trong trường hợp ví dụ trước, ô A1 bạn thấy là chuỗi ("Hello") nhưng thực sự nó là một số.

Mỗi phần của một định dạng được đưa ra sử dụng những mã định dạng riêng của nó. Các mã này ảnh hưởng đến Excel trong việc thể hiện dữ liệu theo cách mà bạn muốn. Vì vậy, thí dụ, giả sử bạn muốn số âm xuât hiện trong ngoặc đơn(), và tất cả các số, số dương, số âm và số 0 đều hiển thị 2 số lẻ thập phân.

Để làm điều này, bạn click chuột phải chọn Format Cells, tab Number mục Custom, ở khung Type bạn gõ: 0.00_ ;(-0.00)

Nếu bạn muốn số âm màu đỏ, bạn làm tương tự như trên nhưng trong khung Type bạn gõ: 0.00_ ;[Red](-0.00)

Chú ý là hãy sử dụng dấu ngoặc vuông ([]) trước code. Code sử dụng cho định dạng nói cho Excel biết để tạo ra số màu đỏ. Bạn có thể sử dụng nhiều code định dạng khác nhau trong các mục ở Format cells/number/custom.

Bảng 2-1 đến bảng 2-5 được lấy từ tài liệu của Microsoft đã giải thích những code này.

Bảng 2.1: các mã về định dạng số:

Mã số

Mô tả

 

General

Định dạng số chung (gõ như thế nào thấy như thế ấy)

 

0 (số 0)

Ký hiệu 0 đóng vai trò như số thế chổ cho một ký hiệu số. Ký hiệu 0 chỉ ra rằng nếu số được định dạng không có nhiều ký tự số như số 0 trong mã định dạng thì số 0 sẽ thế chổ số đó. Thí dụ nếu mã định dạng là 0000.000 thì số 123.45 mà bạn gõ vào sẽ được hiển thị là 0123.450

 

#

Ký hiệu # đóng vai trò như ký hiệu 0 chỉ khác là nó không buộc một ký số phải thế chổ nếu không có số nào tương ứng. Ví dụ nếu mã định dạng là #,###.## thì số 1234.5 sẽ được hiển thị là 1,234.5.

 

?

Ký hiệu này cũng giống ký hiệu 0 chí có khác là nếu trống chổ thì nó thay bằng một khoản trắng chứ không phải là số 0. Điều này hữu ích nếu bạn muốn canh thẳng đấu phân cách thập phân trong bảng. Ngoài ra ký hiệu ? trong cũng được sử dụng trong phần định dạng phân số. Ví dụ: # ???/??? thì số được thể hiện sẽ đuợc trình bày chính xác đến 3 con số và nếu có thể giản ước tốt thì nó hiện ra đến mức dưới 3 và có thêm khoản trắng.

 

%

Nếu bạn sử dụng ký hiệu này thì khi hiển thi số Excel sẽ tự động nhân số đó với 100 và thêm dấu này đằng sau.

 

,(dấu phẩy)

Dấu phân cách hàng ngàn.

 

E+, E-,e+,e-

Thể hiện một số dưới dạng scientific thí dụ: mã là 0.00E+00 thì số 12345.56 được thể hiên 1.23E+04

 


Bảng 2.2: Các mã định dạng chuỗi

Mã chuỗi

Mô tả

 

%,-,+,/,:,(),khoảng trắng

Các ký hiệu này được thể hiện trong mã định dạng thì sẽ được thể hiện trong phần hiển thị cúa số đó. Các ký hiệu khác muốn được thể hiện ra thì bạn phải tham khảo ký tự \ bên dưới

 

\

Đây là ký hiệu đặc biệt không thể hiện trong định dạng nhưng nó bắt buộc Excel thể hiện ký tự tiếp theo sau nó dù ký tự đó là ký tự gì ví dụ: \" thì dấu " sẽ được thể hiện. Nếu bạn muốn thể hiện dấu \ thì bạn phải ghi trong mã \\

 

"text"

Trong trường hợp bạn muốn thể hiện một chuổi ký tự sau hay trước một số thì bạn bỏ chuỗi ký tự đó trong dấu ngoặc kép như thế này."VND" #,##0.00 thì một số bất kỳ sẽ được thêm vào đằng trước "VND"

 

*

Giống như ký hiệu \ nhưng khác một điều là Excel sẽ hiện ra ký tự sau nó chiếm đến hết ô

 

_ (dấu gạch dưới)

Ký hiệu này thường được dùng là _), nó nhắc nhở Excel chèn một khoảng trắng vào vị trí của nó. Ví dụ: trong một định dạng có dấu ngoặc bao quanh số âm, dấu chấm thập phân của một số dương không được canh thẳng hàng với dấu chấm thập phân của số âm, bởi vì số âm sẽ mất nhiều vị trí hơn bên phải dấu thập phân vì phải thể hiện dấu đóng ngoặc. Trong trường hợp này bạn dùng một dấu _ tại cuối phần định dạng của số dương để Excel dành một khoảng trắng sau số dương: một khoảng trắng tương đương với vị trí dấu đóng ngoặc trong số âm. Ví dụ: #,##0_);(#,##0).

 

@

Ký hiệu @ dùng để chỉ chuổi ký tự đã được nhập vào ô. Trong ví dụ ở phần trên ký hiệu @ thể hiện những gì đã nhập vào ô.

 


Bảng 2.3: Các mã về định dạng ngày tháng năm

Mã ngày

Mô tả

 

M

Chỉ ra số tháng mà không có số 0 ở đầu với số tháng có một chữ số. Ví dụ: 1, 2,...12.

 

Mm

Chỉ ra số tháng và có số 0 ở đầu với số tháng có một chữ số. Ví dụ: 01, 02,03...12

 

Mmm

Chỉ tháng nhưng là với 3 chữ đầu của tháng (theo tiếng Anh) thí dụ tháng 1 = Jan

 

Mmmm

Chỉ tháng và hiện đầy đủ tên tháng thíí dụ tháng 1 = January

 

D

Chỉ ngày với 1 chữ số đối với số nhỏ hơn 10

 

Dd

Chỉ ngày vơi 2 chữ số đối với số nhỏ hơn 10 ví dụ ngày 8 thành 08

 

Ddd

Chỉ thứ trong tuần với 3 ký tự thí dụ thứ Hai = Mon, thứ Ba = Tue

 

Dddd

Chỉ thứ trong tuần với đầy đủ các ký tự. Thí dụ: Monday, Tuesday, Wednesday...

 

Yy

Chỉ năm với 2 số cuối của năm. Ví dụ: năm 2008 = 08, năm 2009 = 09...

 

Yyyy

Chỉ năm vơi đủ 4 số của năm. Ví dụ: 2008, 2009, 2010....

 


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

Mã ngày

Mô tả

 

H

Chỉ giờ với 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.