AA gibi dize AB'ye nasıl artırılır?


10

Excel'de AAveya gibi dizelerim var XA.

Onları şu şekilde artırmalıyım:

İçin AAA1 hücresine, öyle olacak AB, B1 hücresindeki ACB2 hücresindeki vb.

İçin XAA1 hücresine, öyle olacak XB, B1 hücresindeki XCB2 hücresindeki vb.

Popüler kodu denedim =CHAR(CODE(A1)+1)ama Z'den sonra çalışmıyor.

Herhangi bir ipucu bekliyoruz.


Does not work after Z? Şunu mu demek istediniz AZveyaZZ
Dave

Merhaba Dave, AB'yi denedim ve o zamandan beri B'yi arıyor.
Andy K

Bunun Excel'in Hücrelere gönderme şekliyle ilgisi varsa, RC gösterimi ile çalışarak bundan kaçınmayı düşünün:File > Options > Formulas >R1C1 reference style
Dirk Horsten

Merhaba Dirk, tavsiye için çok teşekkürler. Peki neden?
Andy K

1
Sonuçta elde edilen dizeleri bir INDIRECTformülde kullanmayı planlıyorsanız , @ DirkHorsten'ın yorumu kayda değer olabilir.
CallumDA

Yanıtlar:


11

Bunu deneyin: "AA" A1 hücresine koyun ve aşağıdaki formülü B1 hücresine girin ve

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

Aşağıdaki gibi artacaktır: AA, AB, AC, ..., AZ, BA, BB, BC .... vb

Bu formülü sunumunuza göre uyarlamak isteyebilirsiniz. Bunun "ZZ" yi geçmeyeceğini lütfen unutmayın.

Güncelleme: sabit hata


1
= EĞER (SAĞ (A-1) = "Z", CHAR (KOD (SOL (A1)) + 1), sol (A1)) (sağ (A1) <>, "Z", CHAR (KOD (SAĞ (A1) ) +1), CHAR (65))
user26631

3

Artım dan çalışacak - Biz yardım artışına mektup excel kendisi kullanabilir AetmekXFC

Önce hücre referansını oluşturun: INDIRECT(A1&"1")
Ardından, bir sonraki sütunun adresini şurada bulun: ADDRESS(1,COLUMN(INDIRECT(A10&"1"))+1)

Sonra $ ?? $ 1'den harfleri çıkarırız: 2 yol:

  1. İkinci $ 'ı bulun ve aralarındaki metni kesin

    =MID(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2,FIND("$",ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2)-2)
    
  2. 1 ve $ ifadesini dizede hiçbir şeyle değiştir

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

Hangisinin sizin için en uygun olduğunu seçin


2
Sen İsteğe bağlı üçüncü argüman dahil ederek yerine "$" önleyebilirsiniz 4içinde ADDRESSgöreli bir hücre başvurusu dönmelerini sağlamanın fonksiyonu. O zaman şu formüle ihtiyacınız var:=SUBSTITUTE(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1,4),"1","")
Excellll

2

Başka bir örnek: Bunu A1 hücresine yazın, ardından formülü herhangi bir hücreye veya tüm hücrelere kopyalayın.

= KAR (MOD (SIRA (A1) -1, 26) +65) ve CHAR (MOD (SÜTUN (A1) -1, 26) +65)

Kişinin sorun hakkında nasıl düşünebileceğinin bir örneği olarak amaçlanmıştır.


2

Bu, "Z" değerine ulaştığında "A" olarak sıfırlanır.

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

Daha fazla if ifadesiyle bunun ötesine geçebilirsiniz.

VEYA

Bu formülü benzer bir şey için yazdım:

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

Kullanarak bunun için başka bir çözüm ADDRESS()olarak:

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

Yukarıdaki formül AAilk sırada ve ABikinci sırada döner .

Ayrıca matematik kullanarak formül:

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

1

Hücre adresi almak için bu kodu kullandım

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

Bu örnek AT17hücre adresi içindir.

Arttırmak, kaç sayı artıracağınızı tanımlar

Bu kodu hücreye yazdım Ax17.

Daha sonra değerini elde AT17ile

=INDIRECT(AX17)

Yapıldı !!!

Artık satırlar yerine sütunları artırabilirsiniz !!!


0

İşte benim çözüm (A1 hücresi "AA" içerir):

=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

Sütun A'yı (satır 1'den) 0 ile 100 arasında başlayan (veya gereksinime kadar) ardışık sayılarla doldurun

B1 hücresini aşağıdaki formülle doldurun

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

Formülü B1'den B Sütunundaki diğer satırlara kopyalayın [A Sütununu doldurana kadar]

Bu AAA - ZZZ arasında 3 karakter için çalışır

Formülün no. karakter sayısı (AA - ZZ / AAAAA - ZZZZZ / vb.)


0

Bunun ana sorudan biraz uzakta olduğunu biliyorum , ama daha soruya cevap verdiğini düşünüyorum ... A1'de bir mektubunuz varsa ve B1'de bir sayı ile basamaklandırılmasını istiyorsanız, aşağıdaki formül kombinasyonu bunu başaracaktır. ZZ'ye tek harfler.

 =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)))

Sütunu aşağı kopyalayın ve sonuçlar var. B5 numarasını değiştirin ve sonuçlar değişir.


-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
Lütfen biraz açıklama ekleyebilir misin, cevabını uzat
Romeo Ninov

-1

Sütunlar için aşağıdakiler doğru çözümdür.

= EĞER (LEN (ADRES (1, KOLON ())) = 4, MID (ADRES (1, KOLON ()), 2,1), MID (ADRES (1, KOLON ()), 2,2))


3
Formülünüzün "AA gibi bir dizeyi AB'ye nasıl arttırabilirim?"
Máté Juhász
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.