Как увеличить строку как 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 ссылается на Cells, попробуйте избежать этого, работая с 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
= ЕСЛИ (ПРАВЫЙ (А1) = "Z", СИМ (КОД (ЛЕВЫЙ (А1)) + 1) ЛЕВЫЙ (А1)) и IF (ПРАВЫЙ (А1) <> "Z", СИМ (КОД (ПРАВЫЙ (А1) ) +1), CHAR (65))
user26631

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, затем скопируйте формулу в любую или все ячейки.

= ЗНАК (MOD (СТРОКА (А1) -1; 26) +65) & СИМВОЛ (MOD (колонка (А1) -1; 26) +65)

Предназначен в качестве примера того, как можно думать о проблеме.


2

Это сбрасывается до «А», когда он достигает «Z»

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

Вы можете создать что-то большее с помощью операторов if.

ИЛИ

Я просто написал эту формулу для чего-то похожего:

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

Я использовал этот код, чтобы получить сотовый адрес

=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

Заполните столбец A (из строки 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

Я знаю, что это немного от основного вопроса, но я думаю, что он отвечает на более полный вопрос ... Если у вас есть буква в А1, и вы хотите, чтобы он был дополнен числом в В1, следующая комбинация формул достигнет этого из отдельные буквы в 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)))

Скопируйте его вниз по столбцу и результаты там. Измените номер 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, колонка ()), 2,1), MID (АДРЕС (1, колонка ()), 2,2))


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