Cách nào chuyển số 1, 2, 3, 4... sang chữ cái A, B, C, D? (4 người xem)

  • Thread starter Thread starter Trojan
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

Trojan

Thành viên hoạt động
Tham gia
13/3/08
Bài viết
162
Được thích
78
Chào các anh chị. Do công việc tôi có nhu cầu chuyển từ 1 cột có giá trị 1, 2, 3, 4, 5... sang tương ứng thành chữ A, B, C,... đến Z rồi tiếp theo là AA, AB..... Nếu không dùng hàm riêng viết bằng VBA thì có cách nào không ạ? Xin chân thành cảm ơn.
 
Chào các anh chị. Do công việc tôi có nhu cầu chuyển từ 1 cột có giá trị 1, 2, 3, 4, 5... sang tương ứng thành chữ A, B, C,... đến Z rồi tiếp theo là AA, AB..... Nếu không dùng hàm riêng viết bằng VBA thì có cách nào không ạ? Xin chân thành cảm ơn.
có phân biệt chữ hoa hay chữ thường không?
 
Chào các anh chị. Do công việc tôi có nhu cầu chuyển từ 1 cột có giá trị 1, 2, 3, 4, 5... sang tương ứng thành chữ A, B, C,... đến Z rồi tiếp theo là AA, AB..... Nếu không dùng hàm riêng viết bằng VBA thì có cách nào không ạ? Xin chân thành cảm ơn.


=SUBSTITUTE(ADDRESS(1,SoBanCanChuyen,4),"1","")
 
Chào các anh chị. Do công việc tôi có nhu cầu chuyển từ 1 cột có giá trị 1, 2, 3, 4, 5... sang tương ứng thành chữ A, B, C,... đến Z rồi tiếp theo là AA, AB..... Nếu không dùng hàm riêng viết bằng VBA thì có cách nào không ạ? Xin chân thành cảm ơn.
Chẳng hiểu bạn hỏi tiêu đề của cột hay dữ liệu trong cột.
Nếu là dữ liệu thì bạn làm 1 cái danh mục rồi dùng hàm tra thì sẽ đỡ suy nghĩ.
 
Lần chỉnh sửa cuối:
Thử 1 phát xem sao:
=IF(A1<27,"",CHAR(INT((A1-1)/26)+64))&CHAR(MOD(A1-1,26)+1+64)

Untitled.png
 
Chào các anh chị. Do công việc tôi có nhu cầu chuyển từ 1 cột có giá trị 1, 2, 3, 4, 5... sang tương ứng thành chữ A, B, C,... đến Z rồi tiếp theo là AA, AB..... Nếu không dùng hàm riêng viết bằng VBA thì có cách nào không ạ? Xin chân thành cảm ơn.
  • Cách bài #6:
    Mã:
    =IF(ROW(A1)<27,"",CHAR(INT((ROW(A1)-1)/26)+64))&CHAR(MOD(ROW(A1)-1,26)+65)
    bạn có thể gán STT đến 702
  • Cách bài #3:
    Mã:
    =SUBSTITUTE(ADDRESS(1,SoBanCanChuyen,4),"1","")
    bạn có thể gán STT đến 16384 (tương ứng với 16384 cột của 1 sheet excel cho phép)
  • Góp vui thêm cách không bị giới hạn:
    Mã:
    =IF(ROW(A1)<27,CHAR(64+ROW(A1)),OFFSET($A$2,INT((ROW(A1)-27)/26),)&OFFSET($A$2,MOD((ROW(A1)-27),26),))
    Tôi có thử đến dòng 23.000 và còn có thể tiếp tục khi copy xuống dưới.
Xem file kèm. hihi ^o^
 

File đính kèm

  • Cách bài #6:
    Mã:
    =IF(ROW(A1)<27,"",CHAR(INT((ROW(A1)-1)/26)+64))&CHAR(MOD(ROW(A1)-1,26)+65)
    bạn có thể gán STT đến 702
  • Cách bài #3:
    Mã:
    =SUBSTITUTE(ADDRESS(1,SoBanCanChuyen,4),"1","")
    bạn có thể gán STT đến 16384 (tương ứng với 16384 cột của 1 sheet excel cho phép)
  • Góp vui thêm cách không bị giới hạn:
    Mã:
    =IF(ROW(A1)<27,CHAR(64+ROW(A1)),OFFSET($A$2,INT((ROW(A1)-27)/26),)&OFFSET($A$2,MOD((ROW(A1)-27),26),))
    Tôi có thử đến dòng 23.000 và còn có thể tiếp tục khi copy xuống dưới.
Xem file kèm. hihi ^o^
Rút gọn công thức lại được không :p
 
  • Góp vui thêm cách không bị giới hạn:
    Mã:
    =IF(ROW(A1)<27,CHAR(64+ROW(A1)),OFFSET($A$2,INT((ROW(A1)-27)/26),)&OFFSET($A$2,MOD((ROW(A1)-27),26),))
    Tôi có thử đến dòng 23.000 và còn có thể tiếp tục khi copy xuống dưới.
Xem file kèm. hihi ^o^
Công thức này chỉ đúng khi dữ liệu liên tục và đúng thứ tự tăng dần 1. Nếu dũ liệu có 3 dòng mang giá trị 3, 43, 1057 thì phải xài công thức bài 3
(Sai ngay khi điền 27 vào dòng đầu tiên của dữ liệu, huhu^o^)
 
Lần chỉnh sửa cuối:
Rút gọn công thức lại được không :p
Chắc chỉ bớt được chút híu à anh @HieuCD! hihi ^o^
Mã:
=IF(ROW(A1)<27,CHAR(ROW(65)),OFFSET($A$2,INT((ROW(A1)-27)/26),)&OFFSET($A$2,MOD((ROW(A1)-27),26),))
Công thức này chỉ đúng khi dữ liệu liên tục và đúng thứ tự tăng dần 1. Nếu dũ liệu có 3 dòng mang giá trị 3, 43, 1057 thì phải xài công thức bài 3.
(Sai ngay khi điền 27 vào dòng đầu tiên của dữ liệu, huhu^o^)
Cũng may số thứ tự nào cũng bắt đầu từ số 1, và tuần tự tăng 1 số chứ nếu không thì công thức này không có chỗ dụng võ rồi! hihi ^o^
Trước nay, làm công thức chạm đến ngưỡng quá cột cho phép của excel liền nghĩ đến: chỉ còn dựa vào VBA, nay bạo gan làm thử xem có vượt được hay không! thời may "Tổ đãi" để có thể nhìn được thứ tự quy đổi của dòng tận cùng 1.048.576 là BGQCV.
Dĩ nhiên, nếu nói đến toàn mỹ thì mỗi cách đều lộ nhược điểm, và còn xét đến sự tiện dùng hay không nữa!
Tôi cũng giống anh thích cách bài #3: gọn và tiện dùng. Nhưng vượt qua được cái tới hạn của công thức trong vấn đề này thì thấy "đã đã", nên chia sẻ "Góp vui" với anh em mới là chính yếu.
hihi ^o^.
 
Chắc chỉ bớt được chút híu à anh @HieuCD! hihi ^o^
Mã:
=IF(ROW(A1)<27,CHAR(ROW(65)),OFFSET($A$2,INT((ROW(A1)-27)/26),)&OFFSET($A$2,MOD((ROW(A1)-27),26),))

Cũng may số thứ tự nào cũng bắt đầu từ số 1, và tuần tự tăng 1 số chứ nếu không thì công thức này không có chỗ dụng võ rồi! hihi ^o^
Trước nay, làm công thức chạm đến ngưỡng quá cột cho phép của excel liền nghĩ đến: chỉ còn dựa vào VBA, nay bạo gan làm thử xem có vượt được hay không! thời may "Tổ đãi" để có thể nhìn được thứ tự quy đổi của dòng tận cùng 1.048.576 là BGQCV.
Dĩ nhiên, nếu nói đến toàn mỹ thì mỗi cách đều lộ nhược điểm, và còn xét đến sự tiện dùng hay không nữa!
Tôi cũng giống anh thích cách bài #3: gọn và tiện dùng. Nhưng vượt qua được cái tới hạn của công thức trong vấn đề này thì thấy "đã đã", nên chia sẻ "Góp vui" với anh em mới là chính yếu.
hihi ^o^.
Ô A1 trống, bỏ được hàm if, từ đó bỏ thêm 1 hàm offset, công thức ngắn hơn nhiều :)
 
Khà khà khà!

Đã ngu "triền miên", nay mới phát hiện mình có thêm 1 tội ngu "đột xuất" nữa!
Vậy nhờ anh ra luôn công thức, đi anh!
/-*+//-*+//-*+/
Khà khà, tại mấy cái mảng khủng ám ảnh nên cái gì cũng nghỉ cao siêu :plane:
Khả năng tư duy của mình không bằng bạn nên nghỉ đơn giản hơn /-*+//-*+//-*+/
Mã:
A2 =OFFSET($A$2,INT((ROW(A1)-27)/26),)&CHAR(65+MOD((ROW(A1)-27),26))
 

File đính kèm

Khà khà, tại mấy cái mảng khủng ám ảnh nên cái gì cũng nghỉ cao siêu :plane:
Khả năng tư duy của mình không bằng bạn nên nghỉ đơn giản hơn /-*+//-*+//-*+/
Mã:
A2 =OFFSET($A$2,INT((ROW(A1)-27)/26),)&CHAR(65+MOD((ROW(A1)-27),26))
Hay cho cách thay thế cái Offset() chuyên cung cấp vòng lặp ký tự A,B,C..... bằng: CHAR(65+MOD((ROW(A27)-27),26)) :clap::clap2::<>
Gọn bưng anh hén!
/-*+//-*+//-*+/
 

Khà khà khà!

Đã ngu "triền miên", nay mới phát hiện mình có thêm 1 tội ngu "đột xuất" nữa!
Vậy nhờ anh ra luôn công thức, đi anh!
/-*+//-*+//-*+/

Mộng Thường 2001 hôm nay chắc đang nhậu gụ với xoài hay sao mà cười nghe đã quá. Còn đâu cái duyên dáng của người phụ nữ VN???
hihi ^o^
 
Web KT

Bài viết mới nhất

Back
Top Bottom