Sắp xếp không chuẩn (Microsoft Excel)
Không có gì lạ trong môi trường văn phòng khi làm việc với các tệp Excel do người khác tạo. Một số tệp này có thể khá khác với các tệp bạn có thể tạo. Ví dụ: bạn có thể kế thừa một tệp trong đó cột đầu tiên chứa tên của một người ở dòng đầu tiên, sau đó là họ của họ ở dòng thứ hai. (Người dùng nhấn Alt + Enter để tách tên đầu tiên khỏi tên thứ hai trong cùng một ô.) Điều gì sẽ xảy ra nếu bạn cần sắp xếp các hàng trong trang tính dựa trên họ của người đó?
Có lẽ cách tốt nhất để hoàn thành nhiệm vụ như vậy là chèn một cột mới vào trang tính — cột B. (Cột này có thể bị ẩn để nó không hiển thị khi làm việc bình thường với trang tính hoặc khi in nó ra.) sau đó công thức sẽ được đặt trong mỗi ô của cột B:
=RIGHT(A2,LEN(A2)-FIND(CHAR(10),A2))
Rõ ràng là các tham chiếu ô sẽ thay đổi khi được đặt trong cột B. Trong công thức này, phần FIND xác định vị trí của ký tự Alt + Enter (mã ký tự của ký tự này là 10). Hàm RIGHT trả về các ký tự trong ô bắt đầu từ ký tự theo sau ký tự Alt + Enter. Giải pháp này dẫn đến cột B chứa thông tin trên dòng thứ hai của cột đầu tiên. Sau đó, bạn có thể dễ dàng sắp xếp dựa trên thông tin trong cột B.
Có một giả thiết được đưa ra trong giải pháp này – rằng chỉ có hai dòng trong mỗi ô của cột A. Nếu có nhiều hơn hoặc ít hơn, thì giải pháp trở nên khó khăn hơn. Nếu đúng như vậy, giải pháp tốt nhất (và dễ nhất) có thể là định dạng lại trang tính để khóa sắp xếp nằm trong một cột. Nếu không thể (vì bất cứ lý do gì), thì có thể sử dụng hàm VBA do người dùng định nghĩa sau:
Function SecLine(x) As String Dim B1 As Integer Dim B2 As Integer B1 = InStr(x, Chr(10)) B2 = InStr(B1 + 1, x, Chr(10)) If (B1 + B2) > 0 Then If B2 > 0 Then SecLine = Mid(x, B1 + 1, B2 — B1 - 1) Else SecLine = Mid(x, B1 + 1) End If End If End Function
Để sử dụng quy trình này, chỉ cần thêm thông tin sau vào các ô trong cột B:
=SecLine(A2)
Bất kể có bao nhiêu dòng trong ô A2 (trong trường hợp này), hàm trả về một chuỗi đại diện cho giá trị của dòng thứ hai.
_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 (11925) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.