Tạo dãy ký tự tăng dần

Liên hệ QC

sonnguyen6

Thành viên mới
Tham gia
25/5/13
Bài viết
7
Được thích
0
Tại ô A1, mình có một dãy ký tự: 012214EMFAAA, tại các ô: A2, A3, ..., mình muốn dãy ký tự đó tư động tăng dần theo thứ tự như sau: 012214EMFAAB, 012214EMFAAC, ... cho đến: 012214EMFAAZ, và hơn thế nữa cho đến: 012214EMFABA, 012214EMFABB, ... Xin ACE vui lòng hướng dẫn cách làm. Cám ơn nhiều.
 
Tại ô A1, mình có một dãy ký tự: 012214EMFAAA, tại các ô: A2, A3, ..., mình muốn dãy ký tự đó tư động tăng dần theo thứ tự như sau: 012214EMFAAB, 012214EMFAAC, ... cho đến: 012214EMFAAZ, và hơn thế nữa cho đến: 012214EMFABA, 012214EMFABB, ... Xin ACE vui lòng hướng dẫn cách làm. Cám ơn nhiều.
Công thức ="012214EMF"&CHAR(64+MOD(CEILING(ROW()/(26^2);1)-1;26)+1)&CHAR(64+MOD(CEILING(ROW()/26;1)-1;26)+1)&CHAR(64+MOD(ROW()-1;26)+1)
 
Muốn tăng dần theo mẫu tự thì dùng công thức tính địa chỉ cột của Excel:
"AAA" tức là cột 703.
Ta cần cộng 703-2 cho số dòng (ví dụ bắt đầu từ dòng 2)
Dùng công thức SUBSTITUTE(ADDRESS(1,ROW()+701,4),"1","") thì sẽ ra "AAA", "AAB", ...
 
Muốn tăng dần theo mẫu tự thì dùng công thức tính địa chỉ cột của Excel:
"AAA" tức là cột 703.
Ta cần cộng 703-2 cho số dòng (ví dụ bắt đầu từ dòng 2)
Dùng công thức SUBSTITUTE(ADDRESS(1,ROW()+701,4),"1","") thì sẽ ra "AAA", "AAB", ...
Dùng công thức theo địa chỉ cũng được, nhưng chưa ổn lắm anh, nếu người ta dùng Excel 2003 thì làm sao?
Áp dụng công thức theo chỉ dẫn bài #2 hoặc bài #3 cho tổng quát.
 
Tại ô A1, mình có một dãy ký tự: 012214EMFAAA, tại các ô: A2, A3, ..., mình muốn dãy ký tự đó tư động tăng dần theo thứ tự như sau: 012214EMFAAB, 012214EMFAAC, ... cho đến: 012214EMFAAZ, và hơn thế nữa cho đến: 012214EMFABA, 012214EMFABB, ... Xin ACE vui lòng hướng dẫn cách làm. Cám ơn nhiều.

Công thức cho A1
Mã:
="012214EMF"&CHAR(65+MOD(INT((ROW()-1)/26^2);26))&CHAR(65+MOD(INT((ROW()-1)/26);26))&CHAR(65+MOD(ROW()-1;26))
 
Dùng công thức theo địa chỉ cũng được, nhưng chưa ổn lắm anh, nếu người ta dùng Excel 2003 thì làm sao?
Áp dụng công thức theo chỉ dẫn bài #2 hoặc bài #3 cho tổng quát.

Câu hỏi có giá trị 100 điểm:

"Microsoft ra những phiên bản Office 2007, 2010, 2013 để làm gì?. Và hàng triệu người cài những phiên bản đó để làm gì? Để làm vì?"

Cứ lúc cần viết công thức thì luôn chỉ dùng các hàm có trong 2003 vì sợ đối tác hay bạn hữu chỉ có thế. Nếu thế thì người cài chỉ cài làm vì. Và ông Microsoft ra các phiên bản tiếp theo là không cần thiết.

Nếu đã muốn giúp bất kỳ ai thì luôn phải đưa ra 2 công thức. Vì đưa công thức bài #2 hay #6 thì tôi là người dùng Excel 2007 tôi sẽ hỏi: "Tôi cài Excel 2007 làm quái gì khi mà những lúc phải viết công thức thì chỉ dùng hàm có trong Excel 2003 để công thức thỉnh thoảng dài lê thê?"

Đã đến lúc nói: Bắt đầu từ ngày xyz "những người giúp" sẽ không hỗ trợ Excel 2003 nữa? Tương tự như Microsoft đã từng nói: Không hỗ trợ Windows 95, 98, XP ...

Một công ty không có khả năng trang bị cho nhân viên phiên bản office phù hợp thì nên dọn đồ chơi thôi. Tôi không nói là cứ có phiên bản mới là tậu, nhưng khi có phiên bản vượt bậc thì phải tậu. Còn người dùng cá nhân thì khỏi bàn. Các ông mua đĩa ở ngoài góc phố thì không có lý gì các ông vẫn còn dùng 2003.
 
Lần chỉnh sửa cuối:
Dù sao trong trường hợp này công thức tổng quát vẫn tốt hơn. Biết đâu sau này chủ topic muốn tạo mã với 4 (hoặc hơn) ký tự cuối tăng dần thì còn biết đường mà chỉnh sửa công thức.
 
Số columns được giới hạn ở 16384.
Vì vậy dùng hàm address chỉ tăng được tới "XFD" là tới giới hạn rồi.
Chả cần phải sửa vì có sửa cũng chả được.

Vấn đề là trước mắt, nếu thấy nó chỉ vỏn vẹn vài ngàn dòng thì làm cho gọn êm, nếu muốn làm tới vài chục ngàn dòng thì chịu khó thiết kế giải thuật khác ngay từ đầu. Người có kinh nghiệm trước khi áp dụng hàm luôn luôn xét qua giới hạn phạm vi của dữ liệu.
 
Web KT

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

Back
Top Bottom