Ciaran làm việc trong thư viện và thường xuyên phải làm việc với danh sách dài số ISBN trong Excel. Các số phải chứa 10 hoặc 13 chữ số, có thể chứa dấu gạch ngang và có thể có số 0 ở đầu. Anh ấy sử dụng định dạng văn bản cho các ô chứa ISBN để giữ chúng nguyên vẹn dưới dạng chuỗi văn bản. Đối với một số mục đích, các dấu gạch ngang trong ISBN phải được loại bỏ (anh ấy sử dụng Tìm và Thay thế cho việc này) và đó là nơi mà rắc rối bắt đầu.

0-241-95011-2 trở thành 241950112 (bây giờ nó giảm xuống còn 9 chữ số) và tệ hơn, 978-0-00-200784-9 trở thành 9,78E + 12 (ký hiệu khoa học). Ciaran không thể tìm thấy bất kỳ cách nào để giải quyết hai vấn đề này, bất kể anh ta làm gì với định dạng trước hoặc sau khi sử dụng Tìm và Thay thế để loại bỏ dấu gạch ngang.

Điều đang xảy ra là khi bạn chỉnh sửa ô, Excel sẽ phân tích cú pháp nội dung ô dưới dạng số thay vì văn bản. Trong trường hợp này, giải pháp tốt nhất là đảm bảo rằng nội dung ô của bạn được đặt trước bằng dấu nháy đơn trước khi bạn thực hiện Tìm và Thay thế để loại bỏ dấu gạch ngang.

Nếu bạn có một trang tính chứa nhiều mã số ISBN trong cột A, bạn có thể thêm dấu nháy đơn với công thức như sau:

= "'" & A1

Sau đó, bạn có thể sao chép kết quả của các công thức và sau đó sử dụng Dán Đặc biệt để dán các giá trị trở lại cột A. Mỗi giá trị trong cột A sau đó sẽ bao gồm dấu nháy đơn. Sau đó, khi bạn thực hiện Tìm và Thay thế, các số 0 ở đầu sẽ vẫn hiện diện và bạn sẽ không thử ký hiệu khoa học.

Lý do điều này hoạt động là vì dấu nháy đơn là một chỉ báo cho Excel rằng nội dung ô phải được coi là văn bản. Dấu nháy đơn không được hiển thị trong trang tính, nhưng nó là một phần của nội dung ô, như bạn có thể biết bằng cách nhìn vào thanh Công thức.

Một cách tiếp cận khác là bỏ qua bằng cách sử dụng Tìm và Thay thế để loại bỏ dấu gạch ngang. Thay vào đó, hãy sử dụng hàm SUBSTITUTE để xóa chúng, theo cách này:

=SUBSTITUTE(A1,"-","")

Hàm trang tính SUBSTITUTE trả về một giá trị văn bản, vì vậy mọi số 0 ở đầu đều được duy trì và Excel không cố chuyển đổi các số để sử dụng định dạng số.

Nếu bạn thường xuyên cần xóa các dấu gạch ngang khỏi một loạt các ô chứa ISBN, bạn có thể được phục vụ tốt hơn khi sử dụng macro để thực hiện thao tác. Macro sau hoạt động dựa trên bất kỳ ô nào bạn đã chọn trước khi chạy nó.

Sub RemoveDashes()

Dim c As Variant, sISBN As String

For Each c In Selection         sISBN = Application.Substitute(c, "-", "")

c.NumberFormat = "@"

c.Value = "'" & sISBN     Next End Sub

Về cơ bản, macro thực hiện ba việc: Nó loại bỏ các dấu gạch ngang, nó định dạng ô dưới dạng văn bản và nó đặt ISBN đã bị tước bỏ trở lại ô với dấu nháy đơn trước nó.

_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 (9927) á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: