Как отразить текст в Excel

Обновлено: 21.11.2024

Инверсия строки может не иметь большого практического применения, особенно при работе с электронными таблицами. Поэтому в Excel вы не найдете для этого встроенной функции.

Но могут быть случаи, когда по какой-то причине вам нужно перевернуть строку. Может быть, вам нужно сгенерировать специальный код, может быть, вам нужно проверить, является ли строка палиндромом, или, может быть, вы просто хотите сделать это для развлечения.

Несмотря на то, что встроенных функций Excel для обращения строк нет, это можно сделать несколькими способами. Вы можете использовать либо формулу, либо скрипт, написанный на VBA.

В этом руководстве мы рассмотрим два способа инвертирования текстовой строки с помощью формулы. Если вам нравится использовать макросы, у нас также есть сценарий VBA, который поможет вам быстро изменить несколько строк.

Оглавление

Обратное преобразование текстовой строки с помощью текстовых формул

Давайте сначала разберемся с основным процессом, связанным с обращением строки.

Допустим, у вас есть одна ячейка с текстом, который вы хотите инвертировать.

Чтобы перевернуть строку «Привет» в ячейке A1, выполните следующие действия:

Теперь вы должны увидеть перевернутую строку "Hello" в ячейке B6.

Что здесь произошло?

Теперь давайте посмотрим, что делает формула.

Функция ДЛСТР($A$1) возвращает длину строки в ячейке A1. Мы не хотим, чтобы эта ссылка на ячейку менялась при копировании в ячейки ниже B1, поэтому мы заблокировали ссылку на ячейку, добавив к ней знаки «$». Длина строки «Привет» равна 5, поэтому эта функция вернет значение «5».

Функция ROW(B1) просто возвращает номер строки ячейки B1. С тем же успехом мы могли бы ввести «1» вместо «СТРОКА (B1)», но хотели, чтобы это значение менялось каждый раз, когда оно копировалось в новую ячейку. Поэтому, когда он копируется в ячейку B2, он изменяется на значение «2». При копировании в ячейку B3 оно изменилось на значение «3» и т. д.

Теперь LEN($A$1)-ROW(B1)+1 дает нам значение «5», которое является индексом последнего символа в «Hello».

Функция MID() возвращает символы с заданным индексом. Он принимает три параметра: строку или ссылку на строку, индекс и количество возвращаемых символов, начиная с этого индекса.

Здесь формула =MID($A$1,LEN($A$1)-ROW(B1)+1,1) принимает ссылку на ячейку A1 в качестве первого параметра, индекс, 5 в качестве второго параметра и число 1 в качестве третьего параметра. Таким образом, формула возвращает символ с индексом 5 ячейки A1. Это означает, что мы получаем значение «o» — последний символ строки.

Вот что происходит, когда вы разбиваете формулу:

  • =MID($A$1,LEN($A$1)-СТРОКА(B1)+1,1)
  • =MID($A$1, 5 – 1 + 1, 1)
  • =MID($A$1, 5, 1)
  • ="о"

Что происходит, когда формула копируется в ячейку B2?

В ячейке B2 формула изменится на:

Вот что происходит, когда вы разбиваете формулу:

  • =MID($A$1,LEN($A$1)-СТРОКА(B2)+1,1)
  • =MID($A$1, 5 – 2 + 1, 1)
  • =MID($A$1, 4, 1)
  • ="л"

Что происходит, когда формула копируется в ячейку B5?

В ячейке B5 формула изменится на:

Вот что происходит, когда вы разбиваете формулу:

  • =MID($A$1,LEN($A$1)-СТРОКА(B5)+1,1)
  • =MID($A$1, 5 – 5 + 1, 1)
  • =MID($A$1, 1, 1)
  • ="Н"

Таким образом, функция возвращает первый символ строки в A1.

Обратить текстовую строку в Excel с помощью формулы ТРАНСП

Хотя описанный выше метод отлично работает, он не очень практичен, так как вам потребуется задействовать большое количество ячеек на листе. Мы продемонстрировали описанный выше метод только для того, чтобы разобрать технику и упростить вам понимание того, что происходит.

Вот укороченная и более практичная версия описанной выше техники:

  1. В ячейке B1 введите формулу:
  2. Выделите всю формулу в строке формул и нажмите F9 на клавиатуре.
  3. Это должно отображать каждый символ вашей строки, перевернутый и разделенный запятыми. Все это также должно быть окружено фигурными скобками, что означает, что это массив: .
  4. Удалите открывающую и закрывающую фигурные скобки.
  5. Введите «СЦЕПИТЬ», а затем раскройте круглые скобки после знака равенства.
  6. Закройте круглые скобки после буквы "Н".
  7. Нажмите клавишу возврата.
  8. Теперь вы должны увидеть обратную сторону строки «Hello» в ячейке B1. Этот расчет был сделан напрямую и в одной ячейке.Таким образом, это гораздо более эффективный способ использования формулы для обращения строки.

    Однако есть несколько замечаний по поводу этой техники:

    • Перевернутая строка не изменится, если вы измените значение в ячейке A1. Вам нужно будет повторять этот процесс каждый раз при внесении изменений.
    • Этот метод удобен, если у вас есть несколько строк, которые вы хотите инвертировать, но если у вас есть целый список строк, которые нужно инвертировать, это может оказаться немного трудоемким. Это связано с тем, что вам нужно всегда повторять шаги со 2 по 7 для каждой строки.

    Из-за указанных выше двух недостатков мы рекомендуем использовать сценарий VBA для переворачивания текстовой строки в Excel.

    Перестановка символов текстовой строки в Excel с помощью макроса VBA

    Использование VBA может показаться немного пугающим, если вы никогда не использовали его раньше, но это может быть более простой способ инвертировать строки на вашем листе.

    Вот код VBA, который мы будем использовать для переворачивания строки в одной ячейке. Не стесняйтесь выбирать и копировать его.

    Выполните следующие действия:

    1. На ленте меню Разработчик выберите Visual Basic.
    2. Когда откроется окно VBA, нажмите Insert->Module. Теперь можно приступать к кодированию. Введите или скопируйте и вставьте приведенные выше строки кода в окно модуля. Теперь ваш код готов к запуску.
    3. Выделите одну ячейку, содержащую текст, который вы хотите перевернуть. Убедитесь, что ячейка по горизонтали рядом с ней пуста, потому что именно здесь макрос будет отображать перевернутую строку.
    4. Перейдите к Разработчик->Макросы->Reverse_String->Выполнить.
    5. Теперь вы увидите перевернутую строку рядом с выбранной ячейкой.

      Примечание. Если вы не видите ленту разработчика, в меню "Файл" выберите Параметры. Выберите Настроить ленту и установите флажок Разработчик на основных вкладках.

      Наконец, нажмите OK.

      Реверсирование списка строк в Excel с помощью VBScript

      Использование VBScript для реверсирования длинного списка строк тоже очень просто! Допустим, вы хотите поменять местами следующий набор имен:

      Вот код VBA, который мы будем использовать для перестановки всех строк в столбце. Выберите и скопируйте его.

      Выполните следующие действия:

      1. На ленте меню Разработчик выберите Visual Basic.
      2. Когда откроется окно VBA, нажмите Вставить->Модуль. Теперь можно приступать к кодированию. Введите или скопируйте и вставьте приведенные выше строки кода в окно модуля. Теперь ваш код готов к запуску.
      3. Выделите диапазон ячеек, содержащих текст, который вы хотите перевернуть. Убедитесь, что столбец рядом с ним пуст, потому что именно здесь макрос будет отображать перевернутые строки.
      4. Перейдите к Разработчик->Макросы->reverse_string_range->Выполнить.

      Теперь вы увидите перевернутые строки рядом с выбранным диапазоном ячеек.

      Не забудьте сохранить резервную копию своей таблицы, потому что результаты кода VBA обычно необратимы.

      Подводя итог, мы рассмотрели два способа инвертирования строк в Excel. В одном методе используется формула, а в другом — код VBA.

      Первый способ подойдет, если вам не очень удобно работать с кодом VBA. Но это полезно, только если у вас есть одна или несколько ячеек, которые вы хотите инвертировать.

      Если необходимо обратить больше ячеек, это может занять много времени.

      Вместо этого вы можете использовать второй метод (используя код VBA), так как он экономит время и всего несколькими щелчками мыши вы можете за один раз перевернуть весь список строк.

      Несмотря на то, что в Excel нет простых способов инвертировать текстовую строку, я надеюсь, что показанные здесь методы помогут вам легко это сделать.

      Можно ли запустить реверс при определенной длине символа (для определяемой пользователем функции или кода VBA)? Например, переверните значения ячейки A1, начиная с количества символов, равного значению B1. Таким образом, если B1 составляет 10 символов, реверс начнется с символов 11+ в A1..

      Я обнаружил, что оригинальный Sub выдавал результаты с дополнительным знаком в конце всех выбранных ячеек. Поэтому я исправил эту часть.
      For i = UBound(strList) To 0 Step -1
      Если i > 0 Then xOut = xOut & strList(i) & Sigh Else xOut = xOut & strList(i)
      Next < br />Rng.Value = xOut

      Можно перевернуть текст с помощью формулы, она повторяется и ограничена тем, насколько далеко вы готовы зайти, и зависит от количества символов, которое Excel позволяет использовать в строке формул.

      Максимальная длина текста – 30 символов, он находится в ячейке A1. Ячейка B1 будет выглядеть так:

      =ОТРЕЗАТЬ(СРЕДНЯЯ(СЛЕВА(A1&ПОВТОР(" ",31),31),30,1)&СРЕДН(СЛЕВА(A1&ПОВТОР(" ",31),31),29,1)&СРЕДН(СЛЕВА(A1&ПОВТОР( " ",31),31),28,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),27,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),26,1 )&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),25,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),24,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31) ,31),23,1)&СРЕДН(ЛЕВО(A1&ПОВТОР(" ",31),31),22,1)&СРЕДН(ЛЕВО(A1&ПОВТОР(" ",31),31),21,1)&СРЕДН(ЛЕВО( A1&ПОВТОР(" ",31),31),20,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),19,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),18 ,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),17,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),16,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ", 31),31),15,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),14,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),13,1)&СРЕДНИЙ( ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),12,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),11,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31) ,10,1)&СРЕДНЕЕ(ЛЕВО(A1&ПОВТОР(" ",31),31),9,1)&СРЕДНЕЕ(ЛЕВО(A1&ПОВТОР(" ",31),31),8,1)&СРЕДНЕЕ(ЛЕВО(A1&ПОВТОР(" ",31),31),7,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),6,1)&СРЕДНИЙ(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),5,1) &СРЕДНЯ(ЛЕВО(A1&ПОВТОР(" ",31),31),4,1)&СРЕДНЯ(ЛЕВО(A1&ПОВТОР(" ",31),31),3,1)&СРЕДНЯ(ЛЕВО(A1&ПОВТОР(" ",31),31),2,1)&СРЕДН(ЛЕВЫЙ(A1&ПОВТОР(" ",31),31),1,1))

      Результат: A1: Дункан Салливан-Шоу B1: wahS-navilluS nacnuD

      В основном ваш текст в ячейке A1 становится длиной 31 символ, если добавить достаточно пробелов, чтобы включить это, и каждый символ читается отдельно справа налево, пока вы не дойдете до первого символа. Это приведет к тому, что ваш перевернутый текст будет содержать начальные пробелы, которые команда TRIM удалит для вас. Чтобы уменьшить или увеличить длину, вы должны удалить или добавить каждое утверждение. Число в инструкции REPT должно быть на 1 больше максимальной длины, до которой вы работаете, и ваша первая инструкция MID начнется с максимальной длины, уменьшающейся до 1.

      У меня нет Kutools для реверсирования символа текста, если у кого-то есть эти инструменты и вы хотите мне помочь, отправьте мне электронное письмо, чтобы отправить вам мой файл для реверса.

      Пожалуйста, ознакомьтесь с инструкциями, предоставленными на веб-сайте офиса расширения, после поиска в Google по обратной строке в Excel.

      Это может показаться странной темой для обсуждения, но я всегда считал, что Excel очень полезен при манипулировании данными и часто быстрее, чем написание одноразовых скриптов.

      Одной из наиболее часто используемых функций является кнопка «Текст в столбцы» (находится на ленте «Данные» в Excel), которая разбивает файлы с разделителями табуляцией и запятыми на отдельные столбцы. Но иногда значения могут не иметь одинакового количества столбцов. Например, давайте посмотрим на следующий пример данных:

      CN=Computer1, OU=Пользователи настольных компьютеров, OU=BuildingA, DC=TEST, DC=LOCAL
      CN=Laptop2, OU=Путешествующие пользователи, OU=Finance, OU=BuildingC, DC=TEST , DC=МЕСТНЫЙ

      Представьте, что это двухстрочный образец из большого набора данных, и вы пытаетесь найти здание. Как видите, в первой строке здание находится в 3-м столбце, а во второй строке — в 4-м столбце. Однако здание является предпоследним столбцом с конца, поэтому, если мы реверсируем его, данные будут в столбце 3 для обеих строк.

      Давайте поместим наши данные в электронную таблицу Excel

      В Excel убедитесь, что вкладка "Разработчик" включена. Если нет, перейдите в «Файл» -> «Параметры» -> «Настроить ленту» и установите флажок «Разработчик» на правой панели.

      Перейдите на вкладку "Разработчик" и нажмите кнопку Visual Basic

      Щелкните правой кнопкой мыши на ThisWorkbook -> Вставить -> Модуль

      Скопируйте и вставьте приведенный ниже код в окно модуля, затем закройте окно Visual Basic, чтобы вернуться к электронной таблице

      В Excel теперь должна быть функция RevStr. В ячейке B1 введите =RevStr(A1) и заполните ячейку B2

      Теперь вы должны увидеть данные в зеркальном отображении. Скопируйте и вставьте столбец B в качестве значений. Это заменит формулу фактическим текстом, чтобы вы могли его проанализировать.

      Предполагая, что вы можете прочитать немного назад, вы увидите, что столбец C теперь содержит данные, содержащие здание. Чтобы вернуть данные в удобочитаемый вид, вставьте столбец и выполните еще одно действие =RevStr(C1)

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

      В этом руководстве мы покажем вам, как инвертировать текстовую строку в Excel.

      Обратите внимание, что на момент написания этой статьи такие функции, как TEXTJOIN и CONCAT, доступны только для подписчиков Excel 2019 и Microsoft 365.

      Синтаксис

      CONCAT-версия

      Версия TEXTJOIN

      Как это работает

      Обе функции CONCAT и TEXTJOIN могут объединять строки в массивы, что было невозможно с устаревшей функцией CONCATENATE в то время. Разница между каждой функцией заключается в способности TEXTJOIN добавлять разделитель между символами. Выберите любой из них в зависимости от ваших потребностей.

      TEXTJOIN(разделитель, ignore_empty, text1, [text2], …)

      Идея состоит в том, чтобы ввести символы в функцию слияния текста в обратном порядке. Это можно сделать, используя массив убывающих чисел до 1 (например, 5,4,3,2,1), используя функцию MID. Функция MID может анализировать строку из текстового значения. Все, что вам нужно, это указать порядковый номер символа, с которого вы хотите начать синтаксический анализ (start_num), и длину символов, которые вы хотите проанализировать (num_chars).

      Таким образом, аргумент start_num должен включать нисходящий массив. Функция ПОСЛЕДОВАТЕЛЬНОСТЬ может генерировать последовательность чисел в виде массива. Ему нужны размеры возвращаемого массива (строка, столбец), начальный номер (start_num) и приращение каждого шага между значениями (step).

      Последняя функция, которая вам понадобится, — это функция LEN, которая просто возвращает количество символов в заданной строке. Вам нужно знать количество символов, чтобы определить номер, с которого начинается нисходящая последовательность.

      Примеры

      Переворачивание текстовой строки без разделителей

      В следующем примере:

      1. LEN возвращает количество символов для строки «Charizard» = 10
      2. SEQUENCE возвращает массив убывающих чисел, начиная с 10 =
      3. Функция MID возвращает 1 символ для каждого числа в массиве =
      4. Наконец, CONCAT или TEXTJOIN объединяют символы в обратном порядке = rednamrahC

      Перестановка текстовой строки с разделителями

      Если вы хотите поместить символ(ы) разделителя между каждым символом исходного текста, вместо этого используйте функцию СОЕДИНЕНИЕ СОЕДИНЕНИЕМ и введите разделитель в первый аргумент. Например, в следующем примере каждый символ разделен точками (.).

      Бонус: пользовательская формула для обращения текстовой строки в Excel

      Функция LAMBDA позволяет создавать собственные функции с использованием других формул Excel. Как только вы добавите формулу в виде именованного диапазона, вы сможете начать использовать именованный диапазон в качестве пользовательской функции. Подробную информацию см. на странице LAMBDA: Функция: LAMBDA

      Упростите свои функции с помощью функции LET

      Кроме того, вы можете проверить функцию LET, чтобы ваши функции использовали один аргумент. Вы можете определить именованные диапазоны в формуле, чтобы заменить фактические ссылки в формуле. В следующих примерах именованный диапазон text определяется в функции LET для замены ссылок на ячейки:

      При копировании этой формулы необходимо изменить только одну ссылку вместо трех.

      Читайте также: