Хитрости »
Основные понятия (22)Здесь собраны статьи, в которых разъясняются базовые понятия работы в Excel и VBA, а так же проблемы, с которыми сталкивается большинство начинающих
Сводные таблицы и анализ данных (5) Раздел поможет изучить сводные таблицы и научиться их использовать "на полную"
Графики и диаграммы (4) Раздел поможет научиться создавать диаграммы и графики в Excel, в том числе нестандартные
Работа с VB проектом (10) С помощью статей раздела вы научитесь создавать процедуры программно и выполнять различные операции с объектами самого VBA
Power BI и Power Query (5) Здесь собраны статьи, раскрывающие различные возможности мощнейшего инструмента для визуализаций бизнесс-процессов Power BI и надстройки для Excel Power Query
Условное форматирование (5) Этот раздел поможет поближе познакомиться с Условным форматированием на примерах различных ситуаций
Списки и диапазоны (5) Статьи, посвященные работе не только с выпадающими списками, но и с диапазонами и хитростями их применения в рабочих файлах
Макросы(VBA процедуры) (59) Статьи раздела направлены на изучение VBA с детальным разбором кодов. Множество статей с примерами кодов под всевозможные ситуации с комментариями и пояснениями
Разное (34) Собраны статьи, которые не подходят ни под одну из представленных выше категорий или входят сразу в несколько. Но эти статье не менее полезные!

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

 

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

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


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

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

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

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

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

  3. Сергей:

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

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

  5. Сергей:

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

Поделитесь своим мнением

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


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

Логин
Наши партнеры
Перейти
Перейти
Счетчики
Анализ сайта

Яндекс.Метрика
© 2016 Excel для всех  Войти