Як збільшити рядок, як AA до AB?


10

У мене є рядки в Excel, як AAабо XA.

Мені потрібно наростити їх так:

У AAкомірці A1 це буде ABв комірці B1, ACу комірці B2 тощо.

У XAкомірці A1 це буде XBв комірці B1, XCу комірці B2 тощо.

Я спробував популярний код, =CHAR(CODE(A1)+1)але він не працює після Z.

Будь-які підказки вітаються.


Does not work after Z? Ви маєте на увазі після AZабоZZ
Дейв

Привіт, Дейв, я спробував AB, і з тих пір шукаю B.
Енді К

Якщо це має щось спільне з тим, як Excel відноситься до клітин, подумайте про те, щоб уникнути цього, працюючи з RC-нотацією:File > Options > Formulas >R1C1 reference style
Дірк Хорстен

Вітаю, Дірк, дякую за пораду. Однак чому?
Енді К

1
Якщо ви, наприклад, планували використовувати отримані рядки у INDIRECTформулі, то коментар @ DirkHorsten, можливо, варто відзначити.
CallumDA

Відповіді:


11

Спробуйте це: помістіть "AA" в комірку A1 і введіть наступну формулу в комірку B1 і перетягніть поперек

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

Він збільшується наступним чином: AA, AB, AC, ..., AZ, BA, BB, BC .... тощо

Ви можете скоригувати цю формулу відповідно до вашої презентації. Зверніть увагу, що це не працюватиме "ZZ".

Оновлення: виправлена ​​помилка


1
= АБО (ВПРАВО (A1) = "Z", CHAR (КОД (ЛІВО (A1)) + 1), Вліво (A1)) & IF (ВПРАВО (A1) <> "Z", CHAR (КОД (ПРАВО (A1)) ) +1), CHAR (65))
користувач26631

3

Ми можемо використовувати електронну таблицю excel, щоб допомогти збільшити літери - приріст буде працювати з AдоXFC

Спочатку створіть посилання на комірку: INDIRECT(A1&"1")
Потім знайдіть адресу наступного стовпця в: ADDRESS(1,COLUMN(INDIRECT(A10&"1"))+1)

Тоді з $ ?? $ 1 дістаємо букви: 2 способи:

  1. Шукайте другий $ і обривайте текст між ними

    =MID(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2,FIND("$",ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2)-2)
    
  2. Замініть 1 і $ на нічого в рядку

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

Виберіть, який з них найкраще підходить


2
Ви можете уникнути «$» , які замінять, включивши додатковий третій аргумент 4в ADDRESSфункції , щоб зробити його повернути відносне посилання на комірку. Тоді вам просто потрібна формула:=SUBSTITUTE(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1,4),"1","")
Excellll

2

Інший приклад: введіть це в комірку A1, а потім скопіюйте формулу в будь-яку або всі комірки.

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

Розглянуто як приклад того, як можна думати про проблему.


2

Це значення буде скинуто на "A", коли воно досягне "Z"

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

Ви можете створити більше, ніж твердження, якщо заяви.

АБО

Я щойно написав цю формулу для чогось подібного:

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

В якості іншого рішення для цього з використанням ADDRESS():

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

Вище наведена формула повернеться AAв перший рядок, ABу другий ряд тощо.

Також з використанням математики формула така:

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

1

Я використовував цей код, щоб отримати адресу Cell

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

Цей приклад стосується AT17адреси комірок.

Збільшення ви визначаєте, скільки цифр ви будете збільшувати

Я написав цей код у комірці Ax17.

Пізніше я отримав значення AT17с

=INDIRECT(AX17)

Готово !!!

Тепер ви можете збільшувати стовпці замість рядків !!!


0

Ось моє рішення (клітинка A1 містить "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

Заповнюйте стовпчик А (з рядка 1) послідовними номерами, починаючи з 0 до 100 [або до вимоги]

Заповніть клітинку B1 формулою нижче

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

Скопіюйте формулу з B1 в інші рядки у стовпці B [до рядка, який ви заповнили стовпцем A]

Це працює для 3 символів від AAA до ZZZ

Формулу потрібно змінювати, як ні. потрібних символів (від AA до ZZ / AAAAA до ZZZZZ / тощо)


0

Я знаю, що це злегка від основного питання, але я думаю, що він відповідає на повне запитання ... Якщо у вас є лист в A1, і ви хочете, щоб він перейшов числом у B1, наступне комбо формули досягне його від одиночні листи до ЗЗ.

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

Скопіюйте його в стовпчик і результати є. Змініть номер B5 і результати змінюються.


-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
Чи можете ви додати трохи пояснень, продовжте свою відповідь
Ромео Нінов,

-1

Для стовпців нижче - правильне рішення.

= АБО (LEN (АДРЕС (1, КОЛІН ())) = 4, MID (АДРЕС (1, COLUMN ()), 2,1), MID (ADDRESS (1, COLUMN ()), 2,2))


3
Я не бачу, як ваша формула відповідає на питання "Як збільшити рядок типу AA до AB?".
Máté Juhász
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.