Написать программу, которая для
заданного
символа
определяет
его
порядковый номер, а также указывает два
предыдущих символа.
как написать эту программу в экселе
Задача понятна. Ниже оба варианта реализации в Excel: для современных версий (с UNICODE/UNICHAR) и для старых версий (CODE/CHAR), чтобы можно было выбрать подходящий способ.
Исходные данные
- Введите искомый символ в ячейку A2.
Вариант А. Современные версии Excel (Unicode)
1) Определяем код символа:
- B2: =UNICODE(A2)
2) Два предыдущих символа (имmediate previous и второй previous):
- C2 (предыдущий символ): =IF(B2>=1, UNICHAR(B2-1), "")
- D2 (первый за ним): =IF(B2>=2, UNICHAR(B2-2), "")
Пример: если A2 = "D", то B2 = 68, C2 = "C", D2 = "B".
Дополнительно
- Чтобы получить их вместе: E2 = C2 & D2 или =TEXTJOIN("", TRUE, C2, D2)
Вариант B. Старые версии Excel (ASCII/ANSI, CODE/CHAR)
1) Определяем код символа:
- B2: =CODE(A2)
2) Два предыдущих символа:
- C2 (предыдущий): =IF(B2>=1, CHAR(B2-1), "")
- D2 (первый за ним): =IF(B2>=2, CHAR(B2-2), "")
Пример: если A2 = "D", то B2 = 68, C2 = "C", D2 = "B".
Примечание: CHAR работает только с кодами 0–255. Для не-ASCII символов в старых версиях Excel результат может быть неопределён.
Пояснения по сути
- Мы сначала берём код заданного символа (UNICODE или CODE).
- Затем вычитаем 1 и 2 из этого кода и преобразуем обратно в символы (UNICHAR или CHAR).
- Если коду меньше чем 1 или 2, выводим пустую строку, чтобы избежать ошибок.
Полезные вариации
- Если хочешь увидеть и сам код, и оба предшествующих символа в одном месте, можно добавить дополнительные ячейки:
- F2: =B2 (код)
- G2: =C2 (предыдущий)
- H2: =D2 (второй предыдущий)
- Можно сделать проверку на пустой ввод:
- В любом случае можно использовать: =IF(A2="","", UNICODE(A2)) и т.д.
Если хочешь, могу адаптировать формулы под конкретную версию Excel, или переключиться на макрос (VBA), чтобы выводить результат в более компактной форме или с кнопкой запуска.