Мне нужно взять следующее значение из списка, который я создал ранее. Пользовательский список - это алфавит 'A, B, C ....AA, AB, AC ...». Когда я применяю его из B52:G52, и я пишу 'C' в B52 и перетаскиваю ячейку в G52, список применяется так: C52 = D, D52 = E ....

Как я могу знать, что является следующим значением с формулой. Если у меня есть «C» в B52, какова формула, что в C52 должно быть «D».

Пока у меня есть ячейка P1, содержащая букву «B», и ячейка B52 = P1, и у меня есть формула в C52 = IF(C45; B52 + 1; «»), которая применяется, когда ячейка C45 не пуста (пуста).

К настоящему времени, если я напишу 'C' в P1, он автоматически копируется в B52. Когда я пишу что-то на С45, ячейка С52 должна стать 'D'. Но часть 'B52+1' не та.

Спасибо за вашу помощь.

1 ответ1

0

Использование B52+1 было бы хорошо, если вы имеете дело с числами, но, поскольку вы используете буквы, вам нужно использовать функции CHAR() и CODE() , а также просто ссылаться на ячейку C45 в вашем логическом тесте, не определяя тест, который вы хотите выполнить. применить к ячейке C45 не даст никаких результатов. Чтобы проверить, не является ли ячейка C45 пустой, вам нужен логический тест C45<>""

Если вы собираетесь перейти с AZ, вам нужно изменить формулу в ячейке C52 на

=IF(C45<>"",CHAR(CODE(B52)+1),"")

Проблема для вас с этой формулой состоит в том, что если вы использовали эту формулу и прошли мимо Z следующая ячейка вернула бы [ поскольку она использует набор символов ASCII

Если вы хотите пойти дальше и перейти от Z к AA вам понадобится более сложная формула с использованием функций LEN(), LEFT() и RIGHT() .

Поэтому формула в ячейке C52 должна быть

=IF(C45<>"",IF(B52="Z","AA",IF(LEN(B52)=1,CHAR(CODE(B52)+1),(IF(RIGHT(B52)="Z",CHAR(CODE(LEFT(B52))+1)&"A",LEFT(B52)&CHAR(CODE(RIGHT(B52))+1))))),"")

Это перейти от A до Z , шаг от Z до AA то даст AA для ZZ

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