Ký hiệu cột chữ cái (Microsoft Excel)
Bạn có thể dễ dàng xác định cột số của ô bằng cách sử dụng hàm COLUMN. Tất cả những gì bạn cần làm là đặt một công thức như thế này vào một ô và kết quả là một giá trị trong đó A = 1, B = 2, v.v.:
=COLUMN()
Điều gì xảy ra nếu bạn muốn một giá trị chữ cái thay vì một giá trị số? Điều này có thể được thực hiện theo một số cách khác nhau. Ví dụ: công thức sau sẽ hoạt động rất tốt cho 26 cột đầu tiên, từ A đến Z:
=CHAR(COLUMN()+64)
Điều này hoạt động vì các chữ cái từ A đến Z sử dụng mã ký tự từ 65 đến 90. Khi COLUMN trả về giá trị cho các cột từ A đến Z (1 đến 26), giá trị này có thể được thêm vào 64 để lấy các chữ cái của các cột đó, 65 đến 90.
Tất nhiên, giải pháp này sẽ không hoạt động nếu bạn muốn biết ký hiệu chữ cái của các cột ngoài Z. (Excel có thể sử dụng các cột cho đến hết IV.)
Công thức này sẽ hoạt động đối với các cột ký tự đơn và ký tự kép:
=IF(COLUMN()<27,CHAR(COLUMN()+64),CHAR((COLUMN()/26)+64)& CHAR(MOD(COLUMN(),26)+64))
Như bạn có thể nói, khi bạn nhập nhiều ký tự cho một cột, công thức sẽ dài ra khá nhanh. Tuy nhiên, bạn có thể rút ngắn công thức bằng cách sử dụng một hàm khác ngoài COLUMN. Hãy xem xét công thức này, chủ yếu dựa vào hàm ADDRESS:
=LEFT(ADDRESS(1,COLUMN(),4),(COLUMN()>26)+1)
Hàm ADDRESS trả về địa chỉ của một ô cụ thể. Trong trường hợp này, nó trả về địa chỉ cho ô trong hàng đầu tiên của cột hiện tại. Do đó, nếu công thức nằm trong ô BF27, nó sẽ trả về BF1.
Công thức sử dụng hàm LEFT để trả về số ký tự tận cùng bên trái trong địa chỉ, trừ đi số 1 cho hàng.
Một phiên bản ngắn hơn của công thức dựa trên hàm SUBSTITUTE thay vì hàm LEFT:
=SUBSTITUTE(ADDRESS(ROW(),COLUMN(),4),ROW(),"")
Phiên bản này sử dụng hàm ROW để kết hợp địa chỉ và sau đó loại bỏ giá trị ROW ra khỏi kết quả của hàm ADDRESS.
Tất nhiên, bạn cũng có thể sử dụng một giải pháp dựa trên macro, nếu bạn muốn. Macro sau sẽ hoạt động với bất kỳ cột nào trong trang tính của bạn:
Function AlphaCol() As String Dim J As Integer Dim K As Integer Dim iDiv As Integer Dim sTemp As String Application.Volatile J = Selection.Column iDiv = 26 ^ 2 sTemp = "" While J > 0 K = Int(J / iDiv) If K > 0 Then sTemp = sTemp & Chr(K + 64) J = J - (K * iDiv) iDiv = iDiv / 26 Wend AlphaCol = sTemp End Function
Macro là một hàm do người dùng định nghĩa, có nghĩa là bạn có thể sử dụng nó trong trang tính của mình bằng cách thêm nó vào bất kỳ ô nào:
=AlphaCol()
Một chuỗi văn bản được trả về, bao gồm ký hiệu cột.
_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 (3254) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm 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: