Как сделать инверсию в excel?

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

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

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

Sub Reverse_Word() On Error Resume Next ActiveCell.Value = StrReverse(ActiveCell.Value) End Sub

Чтобы применить этот код необходимо слегка погрузиться в мир Visual Basic for Applications: переходим в редактор VBA( Alt+F11 ) —InsertModule. Вставляем туда приведенный выше код. Выделяем ячейку с любым словом — Alt + F8 -Reverse_Word -Выполнить. Слово в активной ячейке будет перевернуто.

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

Sub Reverse_Word() Dim sWord As String, sReverseWord As String Dim li As Long sWord = ActiveCell.Value For li = Len(sWord) To 1 Step -1 sReverseWord = sReverseWord & Mid(sWord, li, 1) Next li ActiveCell.Value = sReverseWord End Sub

Код применяется точно так же, как и первый.

Оба эти кода можно сделать функциями пользователя, чтобы вызывать их с листа Excel как любую другую функцию:

‘ Функция работает с версиями Excel, начиная с 2000 Function Reverse_Word(sWord As String) Reverse_Word = StrReverse(sWord) End Function ‘ Функция работает со всеми версиями Excel Function Reverse_Word_All(sWord As String) Dim sReverseWord As String Dim li As Long For li = Len(sWord) To 1 Step -1 sReverseWord = sReverseWord & Mid(sWord, li, 1) Next li Reverse_Word_All = sReverseWord End Function

Чтобы правильно использовать приведенные выше коды, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: необходимо скопировать текст кода выше, перейти в редактор VBA( Alt+F11 ) -создать стандартный модуль(InsertModule) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций, отыскав её в категории Определенные пользователем (User Defined Functions) .

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

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

Функция для Excel 2016 и выше
А для счастливых обладателей Excel 2016, 365 и выше можно использовать простую и гибкую формулу массива:
=ОБЪЕДИНИТЬ(«»;0;ЕСЛИОШИБКА(ПСТР( A1 ;ДЛСТР( A1 )-СТРОКА( A1:A999 )+1;1);»»))
=TEXTJOIN(«»,0,IFERROR(MID(A1,LEN(A1)-ROW(A1:A50000)+1,1),»»))
Если текст слишком длинный необходимо лишь расширить диапазон A1:A999 с чуть большим запасом, например: A1:A50000 . 50 000 букв точно хватит 🙂
Никаких макросов и итераций — все же Microsoft думает о нас, о пользователях и внедряет всякие новые плюшки.

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

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

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

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

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

Читать еще:  Поиск по листам в excel как сделать

Спасибо, Дмитрий. Все работает супер. (использую функцию Reverse_Word_All)
Данная задача мне необходима для поиска символа в тексте с конца.

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

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

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

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

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

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

Использование MS Excel при изучении математической логики

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

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

В данной работе рассматривается применение табличного процессора MS Excel при изучении основ логики.

Существует множество задач, в которых исходные и результатные данные должны быть представлены в табличной форме. Электронные таблицы представляют собой удобный инструмент для автоматизации таких вычислений. Решения многих вычислительных задач на ЭВМ, которые раньше можно было осуществить только путем программирования, стало возможно реализовать. Использование математических формул в электронных таблицах позволяет представить взаимосвязь между различными параметрами некоторой реальной системы. Основное свойство электронных таблиц – мгновенный пересчет формул при изменении значений входящих в них операндов. Благодаря этому свойству, таблица представляет собой удобный инструмент для организации численного эксперимента:

  • подбор параметров,
  • прогноз поведения моделируемой системы,
  • анализ зависимостей,
  • планирование.

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

В процессе изучения алгебры логики учащиеся знакомятся с такими понятиями как: высказывание, таблицы истинности, логические функции и логические операции. Алгебра логики является разделом математической логики, в которой изучаются методы доказательства истинности (1) или ложности (0) сложных логических конструкций, составленных из простых высказываний, на основе истинности или ложности последних. Для закрепления полученных знаний возможно использование табличного процессора MS Excel и его функций.

Для реализации функций булевой алгебры используются логические функции: ЕСЛИ, И, ИЛИ, НЕ, ИСТИНА и ЛОЖЬ. При работе с функциями в MS Excel используется мастер функций (Вставка Функция…), в котором отображается имя функции, ее описание и аргументы.

Рисунок 1. Окно мастера функций

Первоначально следует создать таблицу основных логических операций:

Рисунок 2. Таблица истинности основных логических операций

При составлении таблицы истинности используются следующие формулы:

  1. Инверсия: =ЕСЛИ(A2=1;0;1);
  2. Дизъюнкция: =ЕСЛИ(ИЛИ(A2=1;B2=1);1;0);
  3. Конъюнкция: =ЕСЛИ(И(A2=1;B2=1);1;0);
  4. Импликация: =ЕСЛИ(И(A2=1;B2=0);0;1);
  5. Эквивалентность: =ЕСЛИ(A2=B2;1;0).

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

Учащимся может быть предложена следующая работа.

Задание: Построить таблицу истинности для формулы (A B C) A, используя MS Excel.

Алгоритм:

  1. Определить количество наборов входных переменных, по формуле: Q = 2 n , где n – количество переменных. Q = 2 3 = 8.
  2. Внести в таблицу все наборы входных переменных:

Рисунок 3. Исходные данные

  1. Определить количество логических операций и порядок их выполнения:
  • B
  • A B
  • A B C
  • (A B C) A
  1. Заполнить столбцы результатами выполнения логических операций в обозначенной последовательности.

Для этого в ячейку D2 ввести формулу: =ЕСЛИ(B2=1;0;1);

в E2: =ЕСЛИ(И(A2=1;D2=1);1;0);

в F2: =ЕСЛИ(И(E2=1;C2=0);0;1);

в G2: =ЕСЛИ(F2=A2;1;0).

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

Рисунок 4. Результат выполнения работы

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

Задачи для самостоятельного решения

Определить с помощью таблиц истинности равносильность формул.

Определить являются ли формулы тавтологиями.

ИнтеллигенцияX

Excel: как «перевернуть»… таблицу

При выполнении расчетов в MS Excel иногда нужно поменять строки и колонки таблицы местами.


Причем речь идет не только о сугубо математических вычислениях.

При обработке экономических или бухгалтерских отчетов такая задача возникает сплошь и рядом!

Обычными формулами или копированием ячеек это делать очень неудобно.

Возникает вопрос: что можно предпринять в подобной ситуации? Но для начала определимся с терминологией.

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

В Excel (любой версии!) такую операцию можно сделать, как минимум, двумя способами.

Операция несложная, можно обойтись и без рисунков.

Способ 1. Транспонирование данных через специальную вставку.

1) Выделите участок таблицы, которую хотите транспонировать.
2) Скопируйте данные в буфер (комбинации «Ctrl+C» или «Ctrl+Ins»).
3) Поставьте указатель активной ячейки в начало блока, где должна находиться транспонированная таблица.
4) В программе Excel 2003 вызовите «Правка Специальная вставка» (в MS Excel 2010-2016 щелкните левой кнопкой (ЛКМ) по небольшому треугольнику под иконкой «Вставить»). Откроется окно параметров специальной вставки.
5) В этом окне включите флажок «Транспонировать».
6) Нажмите «ОК».

Читать еще:  Авторизация в excel как сделать

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

Заметьте, что содержимое транспонированной таблицы не изменилось!

Важно! Транспонирование через функцию специальной вставки не связывает исходные данные и результат.

После специальной вставки обе таблицы будут автономны.

В этом и заключается основной недостаток первого способа.

Для устранения этого недостатка можно задействовать другой метод решения задачи, – применить формулу-массив. Вот как это сделать.

Способ 2. Транспонирование данных через формулу массив.

1) На свободном участке листа выделите диапазон ячеек для будущей транспонированной таблицы.
2) Не снимая выделения (!) в первую ячейку диапазона запишите формулу «=Трансп(блок)». В качестве параметра «блок» введите диапазон исходной таблицы. Указать диапазон можно, выделив его прямо на рабочем листе.
3) Когда формула готова, нажмите «Ctrl+Shift+Enter». Это важно, т.к. нам нужно не обычное выражение, а формула-массив.

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

Все изменения появятся в транспонированной таблице.

Важно! Транспонирование таблиц через функцию «=Трансп()» устанавливает связь между источником данных и результатом.

В завершение темы пара замечаний по второму способу.

1) Вставить функцию «=Трансп()» вы можете с помощью Мастера функций, выбирать адреса ячеек можно прямо по рабочему листу. Но есть одна тонкость. После того, как в окне работы с Мастером формула готова, не нажимайте кнопку «ОК» – иначе вы получите обычную формулу, а она для решения задачи не годится. Не закрывая окно Мастера, нажмите комбинацию «Ctrl+Shift+Enter», программа MS Excel вставит на рабочий лист формулу-массив.
2) Диапазон ячеек для транспонированной таблицы желательно выбрать с учетом размеров исходной таблицы. Например, если исходные данные занимали 4 строки и 3 колонки, то диапазон для транспонированной таблицы должен занимать 3 колонки и 4 строки. Если это требование не соблюдать, а диапазон указать «с запасом», ничего страшного не произойдет. Просто в «лишних» ячейках транспонированной таблицы вы увидите значения «#Н/Д». Это означает, что для соответствующих ячеек функция «=Трансп()» не обнаружила данных.

Важно! Стереть значения «#Н/Д» клавишей «Del» не удастся. Excel запрещает удалять элементы формулы-массива.

Чтобы устранить это ограничение, сделайте так.

1) Выделите транспонированную таблицу.
2) Скопируйте ее в буфер обмена.
3) Не снимая выделения, вызовите «Правка Специальная вставка» (в MS Excel 2013-2016 щелкните ЛКМ по треугольнику под иконкой «Вставить»).
4) В окне параметров специальной вставки включите флажок «Значения».
5) Нажмите клавишу «ОК».

С этого момента участок рабочего листа с формулой-массивом превратился в обычные значения.

Вы сможете выделить ненужные ячейки и стереть их обычным способом (например, клавишей «Del»).

Минидиаграммы в ячейках

Очередной способ визуализации данных – это использование гистограмм в условном форматировании.

1. Для этого выделяем таблицу с цифрами и в разделе «Условное форматирование» применяем «Гистограммы», где можно выбрать сплошную или градиентную заливку. Положительным моментом является то, что гистограмма находится в самой ячейке и для её применения не нужно использовать дополнительные ячейки. При исправлении цифр она изменится автоматически.

При наличии значений меньше нуля, гистограмма также автоматически примет другую форму

2. Также можно воспользоваться текстовой функцией ПОВТОР, которая выводит в ячейку любой заданный символ нужное количество раз. Для этого вводим в соседнюю от цифр ячейку формулу =ПОВТОР(«|»;B2) и нажимаем «Enter», при шрифте Arial Cyr получится так:

3. Для вывода нестандартных символов (заранее зная код) можно использовать функцию СИМВОЛ. Например, символ с кодом 103 — черный прямоугольник шрифта Webdings, вводим в соседнюю ячейку формулу =ПОВТОР(СИМВОЛ(103);C2:C8) и нажимаем «Enter». Поэтому предварительно установите этот шрифт для ячеек C2:C8.

Также можно использовать символы других шрифтов, например символ с кодом 110 из шрифта Wingdings.

4. Остался применить последний способ – это стрелки в разделе «наборы значков», здесь имеется большой выбор разных элементов, которые также отображаются в самой ячейке.

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

Имеющиеся символы в шрифтах Webdings и Wingdings можно посмотреть в разделе «Вставка» — «Символы»

И в конце предлагаю оценить какая минидиаграмма самая интересная

Читать еще:  Как сделать чтобы в ячейке excel был виден весь текст?

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

Подписка. Посмотрел другие посты про Ексель- автор молодец.
Эксель — это простейший, крутейший инструмент в умелых руках.
Сделай обзор на формулы ВПР (vlookup) и Если(IF)

Жизнь многих офисных сотрудников, не знающих их, никогда не станет прежней)))

Спасибо)) В планах это уже есть и ещё многое другое)

вы часто ей пользуетесь?

Подскажите пожалуйста — есть столбик где появляется или «0» в ячеках или «1» в какой нибудь одной. Какой формулой найти номер ячейки в формате «B1» где выскочила эта «1»? У меня пока так: =ПОИСКПОЗ(1;O1:O67;0) тут выдается номер строки. Других вариантов нет?

Ну и еще — такие вложения — можно ли как то уменьшить? А то они и длиннее бывают 🙂 Имеется в виду вложение ЕСЛИ

=ЕСЛИ(‘Ввод Данных’!E55=»»;ЕСЛИ(‘Ввод Данных’!D54<>«Услуга (в руб.)»;ЕСЛИ(‘Ввод Данных’!D55<>«руб.»;ЕСЛИ(‘Ввод Данных’!D55<>«рублей»;’Ввод Данных’!B55*’Ввод Данных’!$F$35;’Ввод Данных’!B55);’Ввод Данных’!B55);’Ввод Данных’!B55);(‘Ввод Данных’!E55/100)*(ЕСЛИ(‘Ввод Данных’!D54<>«Услуга (в руб.)»;ЕСЛИ(‘Ввод Данных’!D55<>«руб.»;ЕСЛИ(‘Ввод Данных’!D55<>«рублей»;’Ввод Данных’!B55*’Ввод Данных’!$F$35;’Ввод Данных’!B55);’Ввод Данных’!B55);’Ввод Данных’!B55)))

Не совсем понятно.

Т.е. есть поле, примерно такое

И нужен адрес ячейки, в которой стоит 1? она всегда одна?

По второму вопросу — как вариант «раскидать» формулу по нескольким ячейкам, если хотите уменьшить вложенность, либо использовать именованные диапазоны, тогда вместо какого нибудь ‘Ввод Данных’!D54 будет имя диапазона, например InsData.

Да. единица может быть в любом или все равны «0» нужно точно знать ячейку

Да вложенность и удобство отслеживания переходов. Так и мучаюсь — сначала напишу в ряд (разложу) потом соединяю вместе ) 🙂 . замучился с этим ЕСЛИ — Думал может есть какая нибудь полегче формула, или с большим кол-вом параметров чтобы все в одной ЕСЛИ прописать для удобства написания программы 🙂 По диапазонам — какие это формулы назовите? почитаю про них.. Спасибо.

ну смотрите, если у вас столбец всегда один то можно просто написать =сцепить(«O»;ПОИСКПОЗ(1;O1:O67;0)) и все дела.

Если у вас двумерный массив то получить адрес несколько сложнее. Но если надо то можно заморочиться. Будет либо сложная формула, либо макрос. Смотрите, если вариант выше не устроит, в свободное время могу попробовать нарисовать.

По именованным диапазонам, в 2016 офисе это делается так, как на скриншоте. Такое именование сильно упрощает чтение громоздких формул, особенно если в формуле присутствуют ссылки на другие листы.

смотрит в диапазоне A1:G14, искомое значение должно быть в J1. Саму формулу запихать в любую свободную ячейку

Заработало 🙂 Спасибо — интересная формула получилась, буду применять. Я правда в 2003 офисе сижу. Под новое оформление никак не перелезу половину того, что мне нужно в новом меню найти не могу 🙂 Старый наверное стал 🙂 Поэтому некоторые формулы не работают. Посмотрю где у меня в 2003 именованные диапазоны сидят и как с ними работать. Понял что это буду искать. 🙂 Еще раз спасибо.

2003 офис сильно устарел, в новых офисах заметно много разных фич добавилось, и не только в экселе. Не так давно ощутил на себе, насколько неудобно работать в офисе ниже 2010, когда мне на работе решили с какого-то перепугу понизить версию с 2010 до 2007) Быстро вернули обратно)

В отличие от ВПР (который ищет по первому столбцу), связкой индекс + поискпоз можно искать в любой строке и любом столбце. Но значения в искомом столбце (строке) должны быть уникальными, иначе ексель возьмет первое попавшееся значение. Также при использовании поискпоз можно указать не точное совпадение, а значение больше или меньше искомого.

Я, возможно, непонятно объяснил, наверное, надо пример какой-то?

ВПР ищет только по строкам, ГПР — только по столбцам. С индекс и поискпоз можно возвращать значение ячейки, находящейся на пересечении искомых значений столбца и строки.

Здравствуйте! Вижу, что Вы неплохо разбираетесь в тонкостях Excel, давно есть пара вопросов для такого специалиста)

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

2. Получилось ли у Вас определить максимально возможную производительность самого Excel, после которой дальнейший апгрейд ПК не ускоряет работу? Провожу вычисления, которые затрагивают много миллионов ячеек разом, для чего поставил себе 10-ти ядерный Xeon. Прирост по сравнению со средними i7 был существенный. Обрадовался результату, купил двухсокетную плату, соответственно, поставил 2 десятиядерника. Прироста производительности практически не заметил.

Честно говоря мне по работе нет необходимости использовать много формул в одном файле и такого большого массива информации тоже не обрабатываю, поэтому, к сожалению, ничего по вашим вопросам сказать не могу

Ссылка на основную публикацию
Adblock
detector