10

У меня есть строки в Excel, такие как AA или XA .

Мне нужно увеличить их так:

Для AA в ячейке A1 это будет AB в ячейке B1, AC в ячейке B2 и так далее.

Для XA в ячейке A1 это будет XB в ячейке B1, XC в ячейке B2 и так далее.

Я пробовал популярный код =CHAR(CODE(A1)+1) но он не работает после Z.

Любые намеки приветствуются.

11 ответов11

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".

Обновление: исправлена ошибка

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

Другой пример: введите это в ячейку A1, затем скопируйте формулу в любую или все ячейки.

=CHAR(MOD(ROW(A1)-1;26)+65)&CHAR(MOD(COLUMN(A1)-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(ROW($AT$17),COLUMN($AT$17)+Increment,4,1)

Этот пример для адреса ячейки AT17 .

Увеличивая, вы определяете, сколько чисел вы будете увеличивать

Я написал этот код в ячейке Ax17 .

Позже я получил значение AT17 с

=INDIRECT(AX17)

Готово !!!

Теперь вы можете увеличивать столбцы вместо строк !!!

1

В качестве другого решения для этого с помощью ADDRESS() является:

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

Выше формула вернет AA в первом ряду и AB во втором ряду и так далее.

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

=CONCATENATE(CHAR(INT(ROW()/26)+65),CHAR(MOD(ROW()-1,26)+65))
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, и результаты изменятся.

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))
-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")))
-1

Для столбцов ниже приведено правильное решение.

= ЕСЛИ (LEN (АДРЕС (1, колонка ()))= 4, MID (АДРЕС (1, колонка ()), 2,1), MID (АДРЕС (1, колонка ()), 2,2))

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .