Làm thế nào để tăng chuỗi như AA đến AB?


10

Tôi có chuỗi trong Excel như AAhoặc XA.

Tôi cần tăng chúng như thế này:

Đối với AAô A1, nó sẽ ABở ô B1, ACtrong ô B2, v.v.

Đối với XAô A1, nó sẽ XBở ô B1, XCtrong ô B2, v.v.

Tôi đã thử mã phổ biến =CHAR(CODE(A1)+1)nhưng nó không hoạt động sau Z.

Bất kỳ gợi ý đều được chào đón.


Does not work after Z? Bạn có nghĩa là sau AZhoặcZZ
Dave

Xin chào Dave, tôi đã thử AB và nó đã tìm kiếm B kể từ đó.
Andy K

Nếu điều này có liên quan đến cách Excel đề cập đến các tế bào, hãy cân nhắc tránh nó bằng cách làm việc với ký hiệu RC:File > Options > Formulas >R1C1 reference style
Dirk Horsten

Xin chào Dirk, cảm ơn rất nhiều vì lời khuyên. Tuy nhiên tại sao?
Andy K

1
Nếu bạn dự định sử dụng các chuỗi kết quả trong một INDIRECTcông thức chẳng hạn, thì nhận xét của @ DirkHorsten có thể đáng chú ý.
CallumDA

Câu trả lời:


11

Hãy thử điều này: đặt "AA" vào ô A1 và nhập công thức sau vào ô B1 và kéo qua

=IF(RIGHT($A1,1)="Z", CHAR(CODE(LEFT(A1,1))+1),LEFT(A1,1))&CHAR(65+MOD(CODE(RIGHT(A1,1))+1-65,26))

Nó sẽ tăng như sau: AA, AB, AC, ..., AZ, BA, BB, BC .... vv

Bạn có thể muốn điều chỉnh công thức này cho phù hợp với bài thuyết trình cụ thể của mình. Xin lưu ý rằng điều này sẽ không hoạt động qua "ZZ".

Cập nhật: đã sửa lỗi


1
= IF (RIGHT (A1) = "Z", CHAR (CODE (LEFT (A1)) + 1), LEFT (A1)) & IF (RIGHT (A1) <> "Z", CHAR (CODE (RIGHT (A1) ) +1), CHAR (65))
dùng26631

3

Chúng ta có thể sử dụng chính bảng tính excel để giúp tăng các chữ cái - gia số sẽ hoạt động từ AđếnXFC

Đầu tiên tạo tham chiếu ô: INDIRECT(A1&"1")
Sau đó tìm địa chỉ của cột tiếp theo: ADDRESS(1,COLUMN(INDIRECT(A10&"1"))+1)

Sau đó, từ $ ?? $ 1, chúng tôi trích xuất các chữ cái: 2 cách:

  1. Tìm kiếm $ thứ hai và cắt văn bản giữa chúng

    =MID(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2,FIND("$",ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2)-2)
    
  2. Thay thế 1 và $ bằng không có gì trong chuỗi

    =SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),"$",""),"1","")
    

Chọn cái nào phù hợp nhất với bạn


2
Bạn có thể tránh thay thế "$" bằng cách đưa đối số thứ ba tùy chọn 4vào ADDRESShàm để làm cho nó trả về một tham chiếu ô tương đối. Sau đó, bạn chỉ cần công thức:=SUBSTITUTE(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1,4),"1","")
Xuất sắc

2

Một ví dụ khác: Nhập cái này vào ô A1, sau đó sao chép công thức vào bất kỳ hoặc tất cả các ô.

= CHAR (MOD (ROW (A1) -1; 26) +65) & CHAR (MOD (COLUMN (A1) -1; 26) +65)

Dự định là một ví dụ về cách người ta có thể nghĩ về vấn đề.


2

Điều này sẽ đặt lại thành "A" khi đạt đến "Z"

=IF(A1="Z", "A", CHAR(CODE(A1)+1))

Bạn có thể xây dựng vượt ra ngoài với nhiều câu lệnh if.

HOẶC LÀ

Tôi chỉ viết công thức này cho một cái gì đó tương tự:

IF(RIGHT(C2,1)="Z",IF(RIGHT(C2,2)="ZZ","A",CHAR(CODE(MID(C2,5,1))+1)),MID(C2,5,1))&IF(RIGHT(C2,1)="Z","A",CHAR(CODE(MID(C2,6,1))+1))

1

Như một giải pháp khác cho nó với việc sử dụng ADDRESS()là:

=MID(ADDRESS(1,26+ROW()),2,2)

Công thức trên sẽ trở lại AAở hàng đầu tiên và ABhàng thứ hai, v.v.

Ngoài ra với việc sử dụng toán học, công thức là:

=CONCATENATE(CHAR(INT(ROW()/26)+65),CHAR(MOD(ROW()-1,26)+65))

1

Tôi đã sử dụng mã này để lấy địa chỉ di động

=ADDRESS(ROW($AT$17),COLUMN($AT$17)+Increment,4,1)

Ví dụ này là cho AT17địa chỉ ô.

Tăng bạn xác định số lượng bạn sẽ tăng

Tôi đã viết mã này trong tế bào Ax17.

Sau này tôi đã nhận được giá trị của AT17với

=INDIRECT(AX17)

Làm xong !!!

Bây giờ bạn có thể tăng cột thay vì hàng !!!


0

Đây là giải pháp của tôi (ô A1 chứa "AA"):

=IF(CHAR(CODE(RIGHT(A2;1))+1)="[";CHAR(CODE(LEFT(A2;1))+1);CHAR(CODE(LEFT(A2;1))))&IF(CHAR(CODE(RIGHT(A2;1))+1)="[";CHAR(65);CHAR(CODE(RIGHT(A2;1))+1))

0

Điền vào Cột A (từ hàng 1) với các số liên tiếp bắt đầu bằng 0 đến 100 [hoặc cho đến khi yêu cầu]

Điền vào ô B1 với công thức dưới đây

=CONCATENATE(CHAR(MOD(QUOTIENT(A1,26*26),26)+65),CHAR(MOD(QUOTIENT(A1,26),26)+65),CHAR(MOD(A1,26)+65))

Sao chép công thức từ B1 sang các hàng khác trong Cột B [cho đến khi hàng bạn đã điền Cột A]

Điều này hoạt động cho 3 ký tự AAA đến ZZZ

Công thức cần phải được sửa đổi theo không. trong số các ký tự được yêu cầu (từ AA đến ZZ / AAAAA đến ZZZZZ / v.v.)


0

Tôi biết điều này hơi lạc lõng với câu hỏi chính, nhưng tôi nghĩ rằng nó trả lời câu hỏi đầy đủ hơn ... Nếu bạn có một chữ cái trong A1 và bạn muốn nó được viết bằng một số trong B1, kết hợp công thức sau sẽ đạt được nó từ các chữ cái đơn đến ZZ.

 =IF(LEN(A1)>1,IF((CODE(RIGHT(A1,1))+$B$1)>CODE("Z"),CHAR(CODE(LEFT(A1,1))+1)&CHAR(CODE(RIGHT(A1,1))-21),LEFT(A1,1)&CHAR(CODE(RIGHT(A1,1))+$B$1)),IF((CODE(A1)+$B$1)>CODE("Z"),"A"&CHAR(CODE(A1)-21),CHAR(CODE(A1)+$B$1)))

Sao chép nó xuống cột và kết quả là có. Thay đổi số B5 và kết quả thay đổi.


-1
=IF(AND(LEN(G1)=1,G1="Z"), "AA", IF(LEN(G1)=1, CHAR(CODE(G1)+1), IF(RIGHT(G1,1)<>"Z", LEFT(G1,1)&CHAR(CODE(RIGHT(G1,1))+1), CHAR(CODE(G1)+1)&"A")))

2
Bạn có thể vui lòng thêm một số giải thích, mở rộng câu trả lời của bạn
Romeo Ninov

-1

Đối với Cột, dưới đây là giải pháp phù hợp.

= IF (LEN (ĐỊA CHỈ (1, CỘT ())) = 4, TRUNG (ĐỊA CHỈ (1, CỘT ()), 2.1), TRUNG


3
Tôi không thấy công thức của bạn trả lời câu hỏi "Làm thế nào để tăng chuỗi như AA lên AB?".
Máté Juhász
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.