Хитрости »
Основные понятия (22)
Сводные таблицы и анализ данных (7)
Графики и диаграммы (4)
Работа с VB проектом (10)
Power BI и Power Query (8)
Условное форматирование (5)
Списки и диапазоны (5)
Макросы(VBA процедуры) (61)
Разное (36)

Как перевернуть слово?

 

Возможно кому-то и пригодиться, а может кто-то уже и сталкивался с подобной проблемой. Нужно перевернуть слово. Т.е. расположить буквы слова в обратном порядке. Из "привет" сделать "тевирп".  Если честно, то я сам с трудом могу представить себе ситуацию, в которой это реально может пригодиться. Сам использовать лишь в случае, когда надо было перевернуть числовые значения с еще некоторыми манипуляциями. Но что-то я отвлекся. Переворачиваем слово. Сначала я хотел бы описать способы переворачивания слова именно средствами VBA, т.к. именно они кажутся мне наиболее рациональными.

Способ 1:
Через встроенную функцию VBA StrReverse(). Быстрый и короткий. Самый удобный. Но работает только начиная от Excel 2000 и выше.

Способ 2:
Более медленный, содержит больше строк кода, но работает во всех версиях:

Оба кода можно сделать функциями(читать подробнее про функции пользователя и их создание).

Способ 3: стандартными функциями.
Сразу хочу оговориться - стандартными формулами сделать это хоть и можно, но не совсем просто и совершенно неудобно. Для этого потребуется гораздо больше манипуляций, чем через VBA. Хотя для кого-то, возможно, способ формулами будет более прост, чем через VBA. Для начала необходимо будет включить итеративные вычисления в функциях:

  • Excel 2003: Сервис-Параметры-Вычисления-ставим галочку Итерации
  • Excel 2007: Меню-Параметры Excel-Формулы-Включить итеративные вычисления
  • Excel 2010: Файл-Параметры-Формулы-Включить итеративные вычисления

Устанавливаем предельное число итераций - 1. Допустим само слово у нас в ячейке А1. Тогда формула будет выглядеть следующим образом:
=ЕСЛИ(ДЛСТР(B1)>=ДЛСТР(A1);B1;ЕСЛИ(ДЛСТР(B1)=1;ПСТР(A1;ДЛСТР(A1);1);B1)&ПСТР(A1;ДЛСТР(A1)-ДЛСТР(B1);1))
Но это не все. При внесении формулы в ячейку она сразу не выдаст необходимый результат. Необходимо пересчитывать формулу до тех пор, пока все слово не перевернется(я просто нажал и удерживал клавишу F9). Лично я сделал формулу, как говорится, "из спортивного интереса". Но кому-то, возможно, будет гораздо проще так, чем через VBA. В приложенном файле помимо рассмотренных примеров есть еще один, который лично мне не нравится тем, что он "растягивается" на несколько ячеек. Это не очень удобно, но избавляет от необходимости включать итерации. Но это, пожалуй, единственный положительный момент в данном способе. Сама формула такова:
=ЕСЛИ(СТОЛБЕЦ(A1)>ДЛСТР($A2);"";B2&ПСТР($A2;ДЛСТР($A2)+1-СТОЛБЕЦ(A1);1))
Слово в ячейке $A2, B2 должна быть пустой, а уже с B3 начинается формула.

Скачать пример

  Tips_All_ReverseWord.xls (74,5 KiB, 2 239 скачиваний)

Так же см.:
Функция перемещения слова в строке
Надстройка для замены и перемещения слов/аббревиатур
Как перевернуть адрес


Статья помогла? Не держи в себе, поделись ссылкой с друзьями!

Поиск по меткам

Access Multex Outlook Power Query и Power BI VBA работа в редакторе VBA управление кодами Бесплатные надстройки Дата и время Диаграммы и графики Записки Защита данных Интернет Картинки и объекты Листы и книги Макросы и VBA Настройка Печать Поиск данных Почта Программы Работа с приложениями Работа с файлами Разработка приложений Сводные таблицы Списки Тренинги и вебинары Финансовые Форматирование Формулы и функции Функции Excel Функции VBA Ячейки и диапазоны акции MulTEx анализ данных ссылки
Обсуждение: 5 комментариев
  1. vl:

    конечно идея шикарная - лично мне пришлась кстати, хотя вначале посмотрел весьма обычно. Вот только вопросы возникли:
    - провозился полдня - так ничего и не понял, мало того, и коды вставлял и формулы, и тянул в разные стороны, и файл качал - и ничего (не помогает).
    Вообще ничего. Только есть - нули или по одной букве в ячейке - на том и все.
    Вот если не трудно - может все таки поможете страждущим))))
    - у меня есть столбец - в котором по возрастанию около 1000 слов увеличиваются по количеству букв, то есть 2-букв., затем 3-х и так далее - последнее 15 буквенное.
    Как мне перевернуть весь столбец, причем так, чтобы без лишних действий в 3,4,5 и так далее этапов, чтобы получить из первого столбца - второй и уже готовый и полностью перевернутый????
    Вот Вам вопрос - можете поможете?

    Рейтинг: 0
  2. Чем помочь-то страждущим? Я уже расписал все досконально в статье. Я даже пример со всеми описанными функциями выложил и даже макрос там создал, который перевернет быстро и без лишних движений ВСЕ слова в выделенном диапазоне. Вот Вам вопрос - у Вас макросы включены? У Вас не работает как? Что конкретно не получается?

    Рейтинг: 0
  3. Сергей:

    Здравствуйте!
    Возникла необходимость развернуть "слово" 8 байт таким образом -12345678 -78563412
    код ключей ТМ. Подскажите пожалуйста, каким образом это сделать?

    Рейтинг: 0
  4. Сергей, для обсуждения личных проблем есть форум. А Ваш вопрос к статье не имеет отношения, т.к. ни о каком перевороте слова речи не идет.

    Рейтинг: 0
  5. Сергей:

    Вот спасибо тебе за работу, дорогой друг! Массу времени сэкономил!

    Рейтинг: 0
Поделитесь своим мнением

Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме - добро пожаловать на Форум


Для оформления сообщений Вы можете использовать следующие тэги:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Тренинги

Заказать
Наши партнеры
Перейти
Перейти
Счетчики
Анализ сайта

Яндекс.Метрика
© 2017 Excel для всех  Войти
Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
captcha
Генерация пароля