2

Я ищу простую универсальную формулу, которая позволяет выполнять простую математику для позиций столбцов, возвращая соответствующий буквенный код столбца. Например:

  • Для данного столбца A, установленного на +1, он должен вернуть B
  • Для данного столбца E, установленного на -2, он должен вернуть C
  • Для данного столбца Y, установленного на +3, должен возвращаться AB
  • Для данного столбца BAA, установленного в -1, он должен возвращать AZZ
  • Для данного столбца C, установленного на * 2, он должен возвращать F

Его должно быть просто изменить, чтобы он был относительно столбца, в котором он находится, или принял жестко закодированную букву столбца, или получил букву столбца из формулы.


Обратите внимание, что популярная формула =CHAR(CODE(A1)+1) не работает за пределами Z

2 ответа2

3

Вот лучшее, что я нашел до сих пор:

= ЗАМЕНА (АДРЕС (1, ( КОЛОННА () + 1 ), 4), 1, "")

Часть в середине, выделенная жирным шрифтом, является единственной частью, которая изменяется.

В этом примере он берет текущий столбец и добавляет 1, поэтому возвращает B если он находится в столбце A и AA если он находится в столбце Z


Примеры вариантов

Пример добавления в фиксированный столбец (добавление 2 к столбцу Z, возвращает "AB"):

= ЗАМЕНА (АДРЕС (1, ( КОЛОННА (Z1) + 2 ), 4), 1, "")

Пример чтения ячейки A1 которая содержит букву в виде текста, которая будет рассматриваться как буква столбца:

= ЗАМЕНА (АДРЕС (1, ( КОЛОННА (НЕПОСРЕДСТВЕННАЯ (A1 и 1)) + 1 ), 4), 1, "")

Пример читает ячейку A1 , который содержит номер , который будет рассматриваться как номер столбца (например , если он содержит 25, он будет возвращать AB):

= ЗАМЕНА (АДРЕС (1, ( КОЛОННА (НЕПОСРЕДСТВЕННАЯ (A1 и 1)) + 1 ), 4), 1, "")


Поиск клеток с indirect()

Если вашей целью является поиск ячейки, например, с использованием indirect() , вы можете пропустить substitute() и просто указать номер строки. Например, если вы хотите найти ячейку справа от текущей ячейки (таким образом, увеличивая букву ячейки на единицу и сохраняя строку одинаковой):

= НЕПРЯМОЙ (АДРЕС (ROW (), (COLUMN () + 1), 4))


Частично на основе этого есть удобная формула для транспонирования, чтобы получить столбец букв столбцов, увеличивая каждую строку.

1

Самый простой способ сделать это с INDIRECT и R1C1 стилем ссылки

Например, =INDIRECT("R[1]C[1]",0) будет ссылаться на +1 row и +1 column из текущей ячейки.

=INDIRECT("RC[3]",0) пойдет на три столбца вправо, где -3 три столбца влево.

Вы можете использовать concatenate или & для ссылки на ячейку для запуска или увеличения, если хотите:

A1 =INDIRECT("RC["&A2&"]",0)

A2 = 1

B1 = x

тогда A1 = x

Когда вы добавляете cell , row , column и address это становится более сложным, но эффект тот же.

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