Justin có các số bộ phận mà anh ấy thường sử dụng trong một trang tính, chẳng hạn như 660501C016971. Anh ta muốn áp dụng định dạng tùy chỉnh cho ô và để số bộ phận tự động hiển thị với dấu gạch ngang ở vị trí thích hợp, chẳng hạn như 6605-01-C01-6971.

Rất tiếc, điều này không thể được thực hiện với một định dạng tùy chỉnh. Tại sao? Bởi vì các định dạng tùy chỉnh là để hiển thị số, không phải văn bản. Có một định dạng văn bản, được chỉ định bởi ký hiệu “at” (@), nhưng đó là nó; không có người khác và không có người khác có thể được xác định.

Vì không thể sử dụng các định dạng tùy chỉnh, nên còn lại một định dạng để tìm ra cách giải quyết. Một cách để thực hiện là kiểm tra số bộ phận của bạn và xem liệu phần văn bản của số có thể được loại bỏ và số bộ phận vẫn có thể sử dụng được hay không. Ví dụ, số của Justin là 660501C016971. Nếu định dạng cho số bộ phận luôn gọi chữ C tại cùng một điểm trong số bộ phận (và không có chữ cái nào khác có thể có ở đó), thì bạn chỉ cần xóa C và để lại số 660501016971. Vì nó là một số , bạn có thể phát triển một định dạng tùy chỉnh cho nó bao gồm dấu gạch ngang ở những vị trí thích hợp và chữ C ở vị trí thích hợp. Định dạng tùy chỉnh sẽ giống như sau:

0000-00-C00-0000

Với định dạng được áp dụng cho ô có chứa số 660501016971, bạn sẽ có một số bộ phận được định dạng chính xác được hiển thị:

6605-01-C01-6971. Tuy nhiên, cách tiếp cận này có những hạn chế. Hạn chế lớn nhất là nếu bạn muốn xuất các số bộ phận sang một chương trình khác, có lẽ dưới dạng tệp CSV, những gì kết thúc xuất là số gốc không có định dạng hoặc chữ C.

Một cách giải quyết khác là sử dụng công thức để hiển thị số bộ phận ở định dạng bạn muốn. Bạn có thể nhập chúng vào một ô không có dấu gạch ngang, sau đó sử dụng công thức để thêm dấu gạch ngang vào những vị trí thích hợp.

Khi đó, khi tạo báo cáo, bạn chỉ cần ẩn cột chứa số bộ phận mà không có dấu gạch ngang. Đây là một công thức sẽ hoạt động, miễn là số bộ phận không có dấu gạch ngang nằm trong ô A1:

=LEFT(A1,4) & "-" & MID(A1,5,2) & "-" & MID(A1,7,3) & "-" & RIGHT(A1,4)

Nếu bạn làm việc với số bộ phận khá ít, bạn có thể muốn một cách để thêm và xóa dấu gạch ngang một cách dễ dàng. Cách tốt nhất để làm điều này là sử dụng macro. Bạn có thể phát triển một macro cho phép bạn thêm và xóa dấu gạch ngang khỏi một số bộ phận trong một phạm vi ô đã chọn. Sau đây là một ví dụ về một macro như vậy.

Sub DashesIn()

DoDashes ("In")

End Sub
Sub DashesOut()

DoDashes ("Out")

End Sub
Private Sub DoDashes(What As String)

Dim c As Range     Dim J As Integer

For Each c In Selection.Cells         If c.Value <> "" Then             J = InStr(c.Value, "-")

Select Case What                 Case "Out"

While J > 0                         c.Value = Left(c.Value, J - 1) & _                           Mid(c.Value, J + 1, Len(c.Value))

J = InStr(c.Value, "-")

Wend                 Case "In"

If J = 0 Then                         c.Value = _                           Left(c.Value, 4) & "-" & _                           Mid(c.Value, 5, 2) & "-" & _                           Mid(c.Value, 7, 3) & "-" & _                           Right(c.Value, 4)

End If             End Select         End If     Next c End Sub

Lưu ý rằng thực tế có ba macro trong danh sách này. Dấu gạch ngang đầu tiên (DashesIn) thêm dấu gạch ngang vào một phần số, trong khi dấu gạch ngang thứ hai (dấu gạch ngang)

loại bỏ chúng. Đơn giản chỉ cần chọn các ô chứa số bộ phận và sau đó chạy macro sẽ thực hiện thao tác bạn muốn.

Cả DashIn và DashingOut đều gọi quy trình chung là DoDash, để thực hiện công việc. Macro kiểm tra tất cả các ô trong vùng chọn và sau đó thực hiện bất kỳ thao tác nào cần thực hiện trên nội dung của các ô đó.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (3231) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: