Программы для работы с электронными таблицами, такими как Excel, являются отличным инструментом для организации, хранения и оперирования данными. Вот некоторые приемы и парочка хитростей, которые сделают ваш ввод данных в электронную таблицу более удобным и быстрым.
1. Переход указателя к нужной ячейке во время ввода данных
Excel автоматически перемещает указатель в следующую ячейку вниз, когда вы нажимаете Enter после ввода данных в ячейку. Это отвлекает, особенно, если вы хотите добавить данные в следующий столбец в строке, а не ниже. Чтобы изменить это поведение, используйте окно настроек Excel.
Выберите: Файл -> Параметры -> Дополнительно -> Параметры правки. Поставьте флажок «Переход к другой ячейке после нажатия клавиши ВВОД» и в соответствующем раскрывающемся списке выберите то направление, которое вам больше подходит в данный момент.
Совет: При отключении флажка, клавиши со стрелками можно использовать для управления перемещением указателя. Например, если вы вводите данные в строке, нажмите клавишу со стрелкой вправо, а не Enter, чтобы перейти к следующей ячейке в той же строке.
2. Храните данные в таблицах данных:
Таблица Excel является сеткой из строк и столбцов. При добавлении данных в Excel, он интуитивно не использует таблицы данных. Однако таблицы данных Excel являются простым и мощным инструментом. Они помогают легко добавлять больше строк и столбцов, не беспокоясь об обновлении ссылок формул, опций, настроек фильтров и т.д. Таблицы данных сами позаботятся о форматировании.
Для добавления таблицы данных Excel, выберите диапазон ячеек, содержащих данные, и нажмите на кнопку Таблица, находящуюся во вкладке «Вставка» на ленте или нажмите сочетание клавиш «CTRL + T».
Несколько хитростей таблиц данных:
- Таблицы данных вставляются со своим собственным набором фильтров данных и параметром сортировки по умолчанию. Без таблиц данных Excel допускает только один набор фильтров на листе. Однако если рабочий лист имеет более одной таблицы, то каждая таблица может иметь свои собственные фильтры и параметры сортировки.
- Формулы внутри таблицы данных могут использовать осмысленные имена заголовков вместо использования ссылок на ячейки. Кроме того, при добавлении или удалении строк не нужно беспокоиться об обновлении ссылок.
- С помощью структурированных ссылок, вычисления внутри столбцов становятся очень простыми. Кроме того, Excel автоматически заполняет формулу внутри остальной части ячеек в столбце.
- Таблицы данных могут быть отформатированы одним кликом мыши по пункту «Стили» во вкладке «Конструктор».
- Повторяющиеся данные могут быть удалены из таблиц данных одним кликом мыши по пункту «Удалить дубликаты» во вкладке «Конструктор» на ленте.
- Таблицы данных могут быть преобразованы обратно в диапазон одним кликом мыши по кнопке «Преобразовать в диапазон» во вкладке «Конструктор».
- Таблицы данных могут быть экспортированы в список SharePoint так же одним кликом мыши по кнопке «Экспорт» во вкладке «Конструктор».
- Таблицы данных можно суммировать, добавив итоговую строку, поставив флажок в чек-боксе «Строка итогов» во вкладке «Конструктор».
Ввод данных с помощью форм
- После того, как Таблицы данных созданы на рабочем листе, формы обеспечивают возможность ввода данных в этих таблицах, используя специальное диалоговое окно. Для добавления кнопки формы на панели быстрого доступа, выполните следующие действия:
- Нажмите на кнопку Настройка панели быстрого доступа
Выберите из списка пункт Другие команды. Выберите Все команды из выпадающего списка. Чуть ниже найдите Форма в большом списке и выделите его
- Нажмите кнопку Добавить, и этот пункт должен добавиться в панель быстрого доступа после нажатия на кнопку ОК
- Для того, чтобы получить доступ к диалоговому окну форм, просто выберите таблицу данных на рабочем листе и нажмите на добавленную кнопку из панели быстрого доступа.
- В этом диалоговом окне есть следующие кнопки:
- Добавить: Добавляет новую запись в таблицу данных
- Удалить: Удаляет отображаемую запись из таблицы данных
- Вернуть: Восстановление изменений, внесенных в таблицу данных
- Назад / Далее: Находит записи, указанные в поле Критерии
- Критерии: Получение данных, которые удовлетворяют критериям набора
- Закрыть: Закрывает диалоговое окно
4. Проверка данных с помощью раскрывающегося списка:
Создание раскрывающегося списка и обеспечение ввода данных с его использованием гарантирует, что целостность данных всегда будет в порядке. Для создания раскрывающегося списка:
- Введите список элементов в диапазоне.
- Выделите ячейку, которая будет содержать выпадающий список
- Выберите вкладку Данные на ленте -> Работа с данными -> Проверка данных.
- В диалоговом окне Проверка вводимых значений, перейдите на вкладку Настройки.
- В раскрывающемся списке Тип данных, выберите Список.
- В поле Источник укажите диапазон, содержащий нужные вам элементы.
Совет: Если в раскрывающемся списке мало данных, то вы можете ввести значения непосредственно в поле Источник, разделенные запятыми.
5. Автозамены для ввода данных:
Автозамена по умолчанию подразумевает такие полезные вещи, как написание предложений с заглавной буквы, или исправление случайного нажатия Caps Lock. Кроме того, можно настроить Автозамену создавая сокращения для часто используемых слов или фраз. Например, ниже я использую аббревиатуру: «гос» для «государство».
Для того чтобы добраться до Параметров автозамены, нажмите на Файл -> Параметры -> Правописание -> Параметры автозамены. В качестве альтернативы можно воспользоваться сочетанием клавиш: ALT + T + Т.
Автозамена несколько хитростей:
- Чтобы добавить новую автозамену, введите заменяемый текст в поле Заменять и введите замещающий текст, который будет в поле На, а затем нажмите кнопку Добавить.
- Чтобы удалить автозамену найдите ее в списке автозамен и нажмите кнопку Удалить.
- Чтобы отменить сработавшую автозамену, нажмите CTRL + Z при вводе информации в ячейку.
- Для совместного использования автозамен с вашими друзьями или коллегами, просто найдите файл *.acl на своем компьютере и скопируйте его на компьютер друга или коллеги.
- Excel преобразует адрес электронной почты или записи веб URL в гиперссылки с использованием автозамены. Чтобы изменить автоматическое преобразование текста в гиперссылку, просто нажмите кнопку Отменить (или нажмите Ctrl + Z) после того, как вы вводите текст. Гиперссылка исчезнет, но текст, который вы ввели останется неизменным. Чтобы полностью отключить эту функцию, снова перейдите в раздел Параметры автозамены -> Нажмите на вкладку: Автоформат при вводе -> уберите флажок: «адреса Интернета и сетевые пути гиперссылками».
6. Автозаполнения для автоматизации ввода данных:
Функция автозаполнения в Excel позволяет легко вводить один и тот же текст в несколько ячеек. Просто введите первые несколько букв текста в ячейку и Excel автоматически завершит запись, основываясь на других записях, которые вы уже сделали в этом же столбце. Это помогает не только уменьшить процесс набора текста, но и согласует введение данных.
Автозаполнение несколько хитростей:
- Автозаполнение работает только на смежной ячейке, поэтому не оставляйте пустых строк, чтобы в полной мере использовать автозаполнение
- Автозаполнение изменяет регистр букв автоматически
- Если столбец содержит несколько вхождений записи, которые соответствуют первым нескольким вводимых вами символам, то автозаполнение не сработает пока ваша запись не станет соответствовать хотя бы одному из них полностью.
- Вы можете получить доступ к автозаполнению, кликнув правой кнопкой мыши по ячейке и выбрав пункт «Выбрать из раскрывающегося списка». Также вы можете получить доступ к этому же раскрывающемуся списку с помощью горячей клавиши: Shift + F10.
7. Аудиокоррекция (работает, к сожалению, только с английским текстом и числами)
Excel имеет удобный инструмент для преобразования текста в речь, который способен считывать содержимое ячейки по мере их ввода. Кроме того, он также может считывать определенный диапазон ячеек.
Чтобы добавить эту функцию на панель инструментов быстрого доступа, нажмите на кнопку Настройка панели быстрого доступа, выберите пункт Другие команды из списка, выберите Все команды из выпадающего списка. Добавьте все команды, начинающиеся с «Проговаривать», нажав на Добавить.
Чтобы прочесть диапазон ячеек, выберите нужный диапазон ячеек и нажмите на кнопку Проговорить ячейки. Вы можете изменить порядок чтения, нажав на «Проговаривать ячейки по строкам» или «Проговаривать ячейки по столбцам». Если вы хотите чтобы текст проговаривался по мере ввода, нажмите на кнопку «Проговаривать ячейки после ввода».
Источник: https://dvorkin.by/excel/
Как легко сделать автозаполнение в Excel
Параметр автозаполнения в Microsoft Excel будет автоматически заполнять данные при вводе. Вы можете отключить или включить автозаполнение в любое время.
Когда вы должны и не должны использовать автозаполнение?
Эта функция полезна при вводе данных в таблицу, которая содержит много дубликатов. Когда автозаполнение включено, когда вы начинаете печатать, он автоматически заполняет остальную информацию из окружающего контекста, чтобы ускорить ввод данных.
Допустим, вы вводите одно и то же имя, адрес или другую информацию в несколько ячеек. Без автозаполнения вам пришлось бы перепечатывать данные или копировать и вставлять их снова и снова, что тратит время.
Например, если вы набрали «Иван Петров» в первой ячейке, а затем много других в следующих, например «Света» и «Степан», вы можете снова набрать «Иван Петров» намного быстрее, просто набрав «И» и затем нажмите Enter, чтобы Excel автоматически набрал полное имя.
Тем не менее, автозаполнение не всегда хорошая функция. Если вам не нужно ничего дублировать, он все равно будет автоматически предлагать это каждый раз, когда вы начнете печатать что-то, что имеет ту же первую букву, что и предыдущие данные, что часто может быть скорее неприятностью, чем помощью.
- Включить / отключить автозаполнение в Excel
- Действия по включению или отключению автозаполнения в Microsoft Excel различаются в зависимости от используемой версии:
- В EXCEL 2019, 2016, 2013 И 2010
- Перейдите в меню «Файл» > «Параметры».
- В окне параметров Excel откройте Advanced слева.
- В разделе «Параметры редактирования» включите или отключите параметр «Включить автозаполнение» для значений ячеек в зависимости от того, хотите ли вы включить или отключить эту функцию.
- Нажмите OK, чтобы сохранить изменения и продолжить использование Excel.
-
Выберите «Параметры Excel», чтобы открыть диалоговое окно «Параметры Excel».
-
Выберите Advanced на панели слева.
-
Установите флажок рядом с полем « Включить автозаполнение для значений ячеек», чтобы включить или отключить эту функцию.
-
Выберите ОК, чтобы закрыть диалоговое окно и вернуться к рабочему листу.
-
Перейдите в Инструменты > Параметры в строке меню, чтобы открыть диалоговое окно Параметры .
-
Выберите вкладку «Редактировать ».
-
Включите / выключите автозаполнение с помощью флажка рядом с параметром Включить автозаполнение для значений ячеек.
-
Нажмите кнопку ОК, чтобы сохранить изменения и вернуться на рабочий лист.
Автозаполнение данных и формул
- Если ввести в ячейку A1 какое — либо число, подвести указатель мыши к маркеру заполнения (черный квадратик в нижнем правом углу ячейки) и удерживая левую кнопку мыши тянуть его вниз, то данные из ячейки A1 появятся на всем диапазоне, который Вы выделили маркером;
- Для того чтобы создать последовательность типа 1,2,3…. Надо ввести единицу, а затем тянуть за маркер автозаполнения удерживая не только левую кнопку мыши, но и клавишу CTRL;
- Введя в A1 – «1», а в A2 –«2», выделив их и перетягивая вниз за маркер заполнения мы получим последовательность 1,2,3,4,…, а дополнительно нажав на CTRL создадим чередующую последовательность
1,2,1,2….; - Если после автозаполнения нажать на иконку, которая появится в правом нижнем углу, то можно заполнить изменять вид наполнения ячеек (например: только форматирование без значений, или наоборот);
- Если при автозаполнении удерживать не левую, а правую клавишу, то откроется дополнительное меню в котором сможете более гибко настроить этот инструмент. Например, построить даты по рабочим дням;
- Заполнить одинаковыми данными целый столбец проще простого, если до этого уже создавался подобный столбец слева. (пусть даже с другими значениями).
Вводим значение в первую строку и дважды щелкаем левой кнопкой мыши по маркеру. Ячейки заполнятся самостоятельно ровно на столько же строк, сколько их в первом столбце;
- Для того, чтобы добавить n-ное количество строк, надо установить курсор на ячейку, под которой Вам необходимо пополнение. Подводим курсор мыши к маркеру автозаполнения. После этого нажимаем SHIFT, что преобразит маркер в фигуру с двумя направленными стрелками. Теперь удерживая левую кнопку мыши тянем курсор вниз, на то количество строк,
которое нам необходимо вставить (при этом не отпускайте клавишу SHIFT); - Все знают, что если выделить две ячейки с числами и тянуть их на другие ячейки, то выстроится вереница чисел в арифметической прогрессии.
Но оказывается, возможности эксель не ограничиваются одной только арифметической прогрессии. Можно довольно легко настроить нужную прогрессию.
Причем, достаточно будет ввести только первое значение, затем подвести курсор мыши к правому нижнему углу до образования черного крестика. (вообщем, всё то же самое что и при обычном заполнении). Но тянуть ячейки
вниз надо не левой, а правой кнопкой мыши!После этого появится контекстное меню, где надо выбрать последний пункт «прогрессия»
А в появившемся окне можно выбрать вид прогрессии (арифметическая, геометрическая) шаг, предельное значение и т.д.
- Если ввести слово «январь», то при помощи автозаполнения можно создать вереницу всех месяцев. Это же касается и дней недели;
- Для того чтобы создать собственный список, который в последствии может быть использован при автозаполнении, выберите на ленте – Файл – Параметры – Дополнительно – кнопка Изменить списки…;
- Если тянуть за маркер не сверху вниз, а снизу вверх, (или справа налево) то произойдет удаление данных.
Источник: https://comhub.ru/avtozapolnenie-microsoft-excel-tryuki/
Как оставить только первые буквы слов в Office
Иногда случается, что нужно преобразовать текст, сократить его, оставить только первые символы. Вот этим мы сегодня и займёмся, научимся быстро форматировать текст оставляя только нужное количество символов.
Итак, есть список людей с полными данными: фамилия, имя, отчество. Как же сократить имя и отчество до инициалов? А если таких строк тысячи?
Как в Office оставить только первые буквы слов
Разберём пример такого списка. Для начала превратим список в таблицу.
Выбирая разделитель нажмите клавишу пробела. Таким образом каждое слово будет в отдельном столбце и форматировать станет на порядок легче.
Вот, что у нас получилось из нашего списка. Далее переставляем столбцы так, в каком порядке нам нужно получить готовые данные.
Теперь подошли к самому интересному, будем использовать макрос. Переводим курсор перед первым словом и начинаем записывать макрос. О том, как это сделать, я подробно писал тут. Всё очень просто!
В примере курсор стоит перед буквой A в слове Александр.
+ значит то, что нажимаем клавиши одновременно. Например, Shift + ← означает что мы нажали одновременно Shift и стрелочку «назад»
Последовательность команд.
Что делаем | Для чего |
нажимаем → | Переводим курсор после первой буквы |
нажимаем Shift + End | Выделяем слово |
нажимаем Shift + ← | Выделяется слово без первой буквы |
нажимаем Del | Удаляем выделение |
нажимаем . | Добавляем точку |
нажимаем Tab | Переходим к следующему столбцу |
нажимаем Home | Переводим курсор в начало |
нажимаем → | Переводим курсор после первой буквы |
нажимаем Shift + End | Выделяем слово |
нажимаем Shift + ← | Выделяется слово без первой буквы |
нажимаем Del | Удаляем выделение |
нажимаем . | Добавляем точку |
нажимаем ↓ | Переходим к следующей строке |
нажимаем Home | Переводим курсор в начало ячейки |
нажимаем ← | Переводим курсор на первый столбец |
нажимаем Home | Переводим курсор в начало ячейки |
- Останавливаем запись макроса.
- Вот, что нам подсказывает Майкрософт по клавиатурным комбинациям Офиса.
- И что у нас получилось вы видите ниже.
- Теперь преобразовываем таблицу в текст и получим то, что мы хотели — краткий список.
При преобразовании можно использовать точку как разделитель. После преобразования у вам получатся по две точки, но через Найти и заменить (Ctrl+F ) мы превращаем .. в .
Итоговый список, который у нас получился. При большом количестве строк воспользуйтесь написанием цикла вместо исполнения макроса вручную.
Успешной вам офисной работы!
Источник: https://lassimarket.ru/2017/04/kak-ostavit-tolko-pervye-bukvy-slov-v-office/
Найти в ячейке любое слово из списка
Хитрости » 4 Январь 2016 Дмитрий 53708 просмотров
Как видно — в нашем каталоге только артикулы без наименований. У заказчика же помимо артикулов еще и название товара, т.е. много лишнего. И вам надо понять какие товары присутствуют в вашем каталоге, а какие нет:
Стандартных формул в Excel для подобного поиска и сравнения нет. Конечно, можно попробовать применить ВПР с подстановочными символами сначала к одной таблице, а затем к другой. Но если подобную операцию необходимо проделывать раз за разом, то прописывать по несколько формул к каждой таблице прямо скажем — не комильфо.
Поэтому я и решил сегодня продемонстрировать формулу, которая без всяких доп. манипуляций поможет такое сравнение сделать. Чтобы разобраться самостоятельно рекомендую скачать файл:
- Скачать файл:
- Tips_All_AnyoneOfArray.xls (49,5 KiB, 14 583 скачиваний)
На листе «Заказ» в этом файле таблица, полученная от заказчика, а на листе «Каталог» наши артикулы.
Сама формула на примере файла будет выглядеть так:
=ПРОСМОТР(2;1/ПОИСК(Каталог!$A$2:$A$11;A2);Каталог!$A$2:$A$11)
=LOOKUP(2,1/SEARCH(Каталог!$A$2:$A$11,A2),Каталог!$A$2:$A$11)
эта формула вернет название артикула, если в тексте есть хоть один артикул из каталога и #Н/Д(#N/A) если артикул не найден в каталоге.
Прежде чем облагородить эту формулу всякими дополнениями(вроде виде убирания ненужных #Н/Д) давайте разберемся как она работает.
Функция ПРОСМОТР(LOOKUP) ищет заданное значение(2) в указанном диапазоне(массиве — второй аргумент). В качестве диапазона обычно приводится массив ячеек, но функция ПРОСМОТР имеет первую нужную нам особенность — она старается преобразовать непосредственно в массив любое выражение, записанное вторым аргументом. Иными словами она вычисляет выражение в этом аргументе, чем мы и пользуемся, подставив в качестве второго аргумента выражение: 1/ПОИСК(Каталог!$A$2:$A$11;A2). Часть ПОИСК(Каталог!$A$2:$A$11;A2) ищет поочередно каждое значение из списка Каталога в ячейке A2(наименование из таблицы Заказчика). Если значение найдено, то возвращается номер позиции первого символа найденного значения. Если значение не найдено — возвращается значение ошибки #ЗНАЧ!(#VALUE!). Теперь вторая особенность: функция требует расположения данных в массиве в порядке возрастания. Если данные расположены иначе — функция будет просматривать массив до тех пор, пока не найдет значение больше искомого, но максимально к нему приближенное(хотя если данные позволяют — для более точного поиска все же лучше отсортировать список по возрастанию). Поэтому сначала мы 1 делим на выражение ПОИСК(Каталог!$A$2:$A$11;A2), чтобы получить массив вида:{0,0181818181818182:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!}
Ну а в качестве искомого значения мы подсовываем функции число 2 — заведомо большее число, чем может вообще встретиться в массиве(т.к. единица, поделенная на любое число будет меньше двух). И как результат мы получим позицию в массиве, в которой встречается последнее совпадение из каталога. После чего функция ПРОСМОТР запомнит эту позицию и вернет значение из массива Каталог!$A$2:$A$11(третий аргумент), записанное в этом массиве для этой позиции.
Вы можете просмотреть этапы вычисления функции самостоятельно для каждой ячейки, я здесь просто приведу этапы чуть в расширенном для понимания виде:
- =ПРОСМОТР(2;1/ПОИСК(Каталог!$A$2:$A$11;A2);Каталог!$A$2:$A$11)
- =ПРОСМОТР(2;
1/{55:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!};Каталог!$A$2:$A$11)
- =ПРОСМОТР(2;{0,0181818181818182:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!:#ЗНАЧ!};Каталог!$A$2:$A$11)
- =ПРОСМОТР(2;
1;{«FM2-3320″:»CV455689″:»Q5949X»:»CE321A»:»CE322A»:»CE323A»:»00064073″:»CX292708″:»CX292709″:»CX292710″})
- =»FM2-3320″
Теперь немного облагородим функцию и сделаем еще пару реализаций
Реализация 1:
Вместо артикулов и #Н/Д выведем для найденных позиций «Есть», а для отсутствующих «Не найден в каталоге»:
=ЕСЛИ(ЕНД(ПРОСМОТР(2;1/ПОИСК(Каталог!$A$2:$A$11;A2)));»Не найден в каталоге»;»Есть»)
=IF(ISNA(LOOKUP(2,1/SEARCH(Каталог!$A$2:$A$11,A2))),»Не найден в каталоге»,»Есть»)
работа функции проста — с ПРОСМОТР(LOOKUP) разобрались, поэтому остались только ЕНД и ЕСЛИ.
ЕНД(ISNA) возвращает ИСТИНА(TRUE) если выражение внутри неё возвращает значение ошибки #Н/Д(#N/A) и ЛОЖЬ(FALSE) если выражение внутри не возвращает значение этой ошибки.
ЕСЛИ(IF) возвращает то, что указано вторым аргументом если выражение в первом равно ИСТИНА(TRUE) и то, что указано третьим аргументом, если выражение первого аргумента ЛОЖЬ(FALSE).
Реализация 2:
Вместо #Н/Д выведем «Не найден в каталоге», но при этом если артикулы найдены — выведем названия этих артикулов:
=ЕСЛИОШИБКА(ПРОСМОТР(2;1/ПОИСК(Каталог!$A$2:$A$11;A2);Каталог!$A$2:$A$11);»Нет в каталоге»)
=IFERROR(LOOKUP(2,1/SEARCH(Каталог!$A$2:$A$11,A2),Каталог!$A$2:$A$11),»Нет в каталоге»)
Про функция ЕСЛИОШИБКА(IFERROR) я подробно рассказывал в этой статье: Как в ячейке с формулой вместо ошибки показать 0.
Если вкратце, то если выражение, заданное первым аргументом функции, возвращает значение любой ошибки, то функция вернет то, что записано вторым аргументом(в нашем случае это текст «Не найден в каталоге»). Если же выражение не возвращает ошибку, то функция ЕСЛИОШИБКА запишет то значение, которое было получено выражением в первом аргументе(в нашем случае это будет наименование артикула).
Реализация 3
Надо не просто определить какому артикулу соответствует, но и вывести цену для наименования по этому артикулу(сами цены должны быть расположены в столбце B листа Каталог):
=ЕСЛИОШИБКА(ПРОСМОТР(2;1/ПОИСК(Каталог!$A$2:$A$11;A2);Каталог!$B$2:$B$11);»»)
=IFERROR(LOOKUP(2,1/SEARCH(Каталог!$A$2:$A$11,A2),Каталог!$B$2:$B$11),»»)
Пара важных замечаний:
- данные на листе с артикулами не должны содержать пустых ячеек. Иначе с большой долей вероятности формула будет возвращать значение именно пустой ячейки, а не то, которое подходит под условия поиска
- формула осуществляет поиск таким образом, что ищется любое совпадение. Например, в качестве артикула записана цифра 1, а в строке наименований может встречаться помимо целой 1 еще и 123, 651123, FG1412NM и т.п. Для всех этих наименований может быть подобран артикул 1, т.к. он содержится в каждом наименовании. Как правило это может произойти, если артикул 1 расположен в конце списка
- Поэтому желательно перед использованием формулы отсортировать список по возрастанию(от меньшего к большему, от А до Я).
- В приложенном в начале статьи примере вы найдете все разобранные варианты.
- Если же вам понадобится выводить все наименования, то можно воспользоваться функцией СОДЕРЖИТ_ОДНО_ИЗ из моей надстройки MulTEx.
- Так же см.:
Сравнение текста по части предложения
Что такое формула массива
Как найти значение в другой таблице или сила ВПР
ВПР с поиском по нескольким листам
Статья помогла? Поделись ссылкой с друзьями!
Источник: https://www.excel-vba.ru/chto-umeet-excel/najti-v-yachejke-lyuboe-slovo-iz-spiska/
Выпадающий список с контекстным поиском
Я собираюсь вам рассказать о фантастически полезном и эффектном приёме. Это одна из самых интересных вещей, которую мне доводилось видеть в Excel. Кроме того, она достаточно легко реализуется. Если вы разберётесь, как она работает, то вы сразу узнаете об Excel необычно много. Я постараюсь рассказать всё максимально подробно, последовательно и внятно.
Итак, речь пойдёт о выпадающем списке (так называемый combo box), в который встроена возможность динамического поиска по подстроке, которую пользователь вводит с клавиатуры. Посмотрите пример, в котором мы имеем топ 300 крупнейших городов России.
На анимированной иллюстрации видно, как мы динамически сужаем список выбора, вводя подстроку «кр» или «ниж», экономя огромное количество времени.
Более того, список меняется после ввода каждого нового символа! Выглядит чрезвычайно привлекательно и профессионально, не так ли? Давайте разбираться, как это устроено.
Файл примера
Скачать
Пошаговая инструкция
Предварительные замечания
В файле примера выпадающий список с поиском реализован сразу в двух вариантах: для обычного диапазона (лист Range) и для умной таблицы (лист Table). Мы будим эти варианты обсуждать одновременно, отмечая их различия.
Шаг 1. Готовим таблицу для списка
Подготовьте таблицу с четырьмя колонками: Город (или то, что вам нужно), Статус, Индекс, Фильтр. Заполните столбец Город значениями. В остальных трёх колонках будут формулы, которые мы обсудим ниже. Я всем рекомендую использовать умную таблицу, так как это значительно проще.
Шаг 2. Формулы для столбца Статус
На примере ячейки F2 рассмотрим формулу, аналогичную для всего столбца Статус (столбец F). Из F2 формулу можно протягивать вниз до конца, а в случае умной таблицы Excel это сделает за вас. Это также относится ко всем формулам, которые мы будем обсуждать в этой статье.
$B$2 — ячейка, с которой будет связан выпадающий список (добавляется на шаге 6). Что значит связано? Всё, что вы введёте в выпадающий список, тут же отразится в ячейке B2.
Формула ПОИСК вернёт ошибку, если содержимое B2 не найдено в $E2. ЕОШИБКА перехватит ошибку и вернёт ИСТИНА, если действительно была ошибка, и — ЛОЖЬ, если строка таки была найдена. Функция НЕ делает из истины ложь и наоборот (инверсирует результат).
Таким образом, мы получим в этом столбце ИСТИНА, если подстрока найдена в текущем городе, и наоборот.
Обратите внимание, что пустая подстрока содержится в любой строке, поэтому все ячейки столбца Статус имеют значения ИСТИНА, когда мы не ввели ещё ничего в B2.
Обычный диапазон | Умная таблица |
или
=NOT( ISERROR( SEARCH( $B$2; $E2) ) ) |
или
=NOT( ISERROR( SEARCH( $B$2; [@Город]) ) )[@Город] — на языке структурных формул умных таблиц это ссылка на ячейку столбца Город в той же строке, в которой находится сама формула. Поскольку ссылка идёт внутри таблицы, то имя самой таблицы в формуле можно не использовать. В остальном всё — тоже самое. |
Шаг 3. Формула для столбца Индекс
Если B2 содержит подстроку поиска, то в столбце Статус не все ячейки примут значение ИСТИНА. Статус ИСТИНА будет только там, в чьи названия городов входит соответствующая подстрока. А в столбце Индекс мы рассчитываем номер по порядку для всех строк, которые содержат искомую подстроку.
Например, на рисунке ниже B2 содержит «ни», что заставляет столбец Статус быть истинным у строк с городами Нижний Новгород, Калининград, Магнитогорск и т.д., а в столбце Индекс мы начинаем считать факты срабатываний в F: Нижний Новгород — первое срабатывание, Калининград — второе и так далее.
Функция ЕСЛИ отсекает все значения в F, которые не равны ИСТИНА. Функция СЧЁТЕСЛИ подсчитывает количество значений ИСТИНА в F.
Обычный диапазон | Умная таблица |
или
=IF( $F2; COUNTIF( $F$2:$F2; TRUE ); «») |
или
=IF( [@Статус]; COUNTIF( $F$2:[@Статус]; TRUE ); «») |
Обратите внимание, что диапазон условия в СЧЁТЕСЛИ введен скользящий — вторая координата не закреплена — и во время протягивания она растёт пропорционально таблице. За счёт этого трюка мы получаем механизм подсчёта значения ИСТИНА.
Например, 6-я строка будет подсчитывать ИСТИНУ по диапазону $F$2:$F6 (там одно значение — от Нижнего Новгорода), а 41-я строка будет подсчитывать ИСТИНУ уже по диапазону $F$2:$F41 (а там уже 2 значения — от Нижнего Новгорода и от Калининграда). Вот суть механизма.
Это полезный приём, который стоит запомнить.
Шаг 4. Формула для столбца Фильтр
Теперь наша задача, опираясь на столбец Индекс, сформировать в столбце H отфильтрованный список городов, который необходимо показывать в выпадающем списке.
Обычный диапазон | Умная таблица |
или
=IFERROR( INDEX( стлГород; MATCH( ROWS($G$2:$G2); стлИндекс; 0) ); «» )Обратите внимание на динамический именованный диапазон стлГород и стлИндекс, которые мы вынуждены создавать для случая диапазона, чтобы придать решению должный уровень универсальности. Техника, по которой созданы эти именованные диапазоны разобрана тут. |
или
=IFERROR( INDEX( [Город]; MATCH( ROWS($G$2:[@Индекс]); [Индекс]; 0) ); «» )Не путайте: [Индекс] — ссылка на весь столбец, а [@Индекс] — ссылка на ячейку из этого столбца в текущей строке. Никакие дополнительные именованные диапазоны нам создавать нет никакой необходимости, так как мы пользуемся встроенным в умные таблицы сервисом при ссылке на столбцы. |
Формула ЧСТРОК($G$2:$G2) используется для генерации последовательных номеров от 1 (для второй строки) до N (в строке N+1), равному количеству найденных подстрок. Просто генерируется диапазон соответствующего размера, а формула ЧСТРОК возвращает его высоту в строках.
Формула ПОИСКПОЗ ищет номер реальной строки, содержащий соответствующий индекс. Например, в столбце Фильтр мы видим Магнитогорск на третьей позиции, но в реальности он взят из E45, так как в G45 стоит цифра 3, которую мы и нашли через ПОИСКПОЗ. То есть ПОИСКПОЗ сказал нам, что Магнитогорск находится в 45-й строке, а извлекли мы его оттуда уже при помощи формулы ИНДЕКС.
Если же при извлечении возникает ошибка (текущая строка находится ниже строки N+1), то формула возвращает пустую строку. За это отвечает ЕСЛИОШИБКА.
Шаг 5. Создание именованных диапазонов
Обычный диапазон | Умная таблица |
Именованный диапазон стлГород
=Range!$E$2:ИНДЕКС( Range!$E:$E; СЧЁТЗ(Range!$E:$E) )или =Range!$E$2:INDEX( Range!$E:$E; COUNTA(Range!$E:$E) )Именованный диапазон стлИндекс =Range!$G$2:ИНДЕКС( Range!$G:$G; СЧЁТЗ(Range!$G:$G) )или =Range!$G$2:INDEX( Range!$G:$G; COUNTA(Range!$G:$G) )Именованный диапазон стлФильтр =Range!$H$2:ИНДЕКС( Range!$H:$H; СЧЁТЗ(Range!$H:$H) )или =Range!$H$2:INDEX( Range!$H:$H; COUNTA(Range!$H:$H) )Именованный диапазон DDL_Range =Range!$H$2:ИНДЕКС( стлФильтр; МАКС(стлИндекс) )или =Range!$H$2:INDEX( стлФильтр; MAX(стлИндекс) ) |
Именованный диапазон DDL_Table
=Table!$H$2:ИНДЕКС( tblData[Фильтр]; МАКС(tblData[Индекс]) )или =Table!$H$2:INDEX( tblData[Фильтр]; MAX(tblData[Индекс]) )tblData — имя умной таблицы Именованный диапазон DDL_Fake =DDL_TableИменованный диапазон DDL_Fake, как видите, напрямую ссылается на DDL_Table и нужен для того, чтобы обмануть элемент управления ComboBox21, так как он не умеет работать с ИД, ссылающимися на умную таблицу. |
DDL_Range и DDL_Table это диапазоны, которые формируются на базе значений столбца Фильтр без пустых строк. Эти ИД указываются в свойствах ListFillRange выпадающих списков (DDL_Table — через DDL_Fake).
Шаг 6. Вставляем Combo box на лист
На ленте Разработчик в группе Элементы управления через кнопку Вставить выберите элемент управления ActiveX Поле со списком и вставьте его на лист.
Далее:
- Нажмите кнопку Режим конструктора (предварительно убедитесь, что вставленный элемент управления активен)
- Нажмите кнопку Свойства на ленте
- Отредактируйте свойства в соответствии с рисунком:
- Поле AutoWordSelect должно быть равно False
- Поле LinkedCell сделайте равным B2
- Поле ListFillRange должно быть либо DDL_Range для обычного диапазона (лист Range), либо DDL_Fake для умной таблицы (лист Table).
- Поле MatchEntry = 2 — fmMatchEntryNone
Шаг 7. Модификация события Change для элементов Поле со списком
Ну и изюминка нашего приёма, то, что заставляет Поле со списком показывать нам обновленный список выбора после каждого изменения строки ввода, — событие Change этого элемента управления, которое переприсваивает свойство ListFillRange и вызывает событие раскрытия списка DropDown.
Вот и всё!
P.S. К сожалению, не я придумал такую крутую штуку. Это сделал индийский товарищ Sumit Bansal, решение которого я лишь немного оптимизировал (исправил VBA событие — у него оно почему-то было привязано к GotFocus, что всё портило, и сократил формулы).
Источник: http://perfect-excel.ru/publ/excel/polzovatelskij_interfejs/vypadajushhij_spisok_s_kontekstnym_poiskom/8-1-0-78
Как в Excel использовать автоматическое завершение для автоматизации ввода данных — Трюки и приемы в Microsoft Excel
Функция автозавершения Excel позволяет легко вводить один и тот же текст в несколько ячеек.
Используя автозавершение, введите несколько первых букв вашей записи в ячейку, и Excel автоматически завершит ее на основе других записей, которые вы уже сделали в столбце.
В дополнение к уменьшению количества текста, который необходимо набирать, эта функция гарантирует, что ваши записи будут внесены правильно и согласованно.
Рассмотрим, как это работает. Предположим, вы вводите информацию о продукте в столбец. Один продукт называется «сахар-песок». Первый раз, когда вы вводите Сахар-песок в ячейку, Excel запоминает эту запись. Позже, когда вы начнете набирать слово Сахар в этом столбце, Excel распознает слово по нескольким первым буквам и завершит его ввод за вас. Просто нажмите Enter, и все готово.
Автозавершение также изменяет регистр букв автоматически. Если начать ввод со слова сахар (со строчной буквой «с») во второй записи, Excel сделает букву «с» прописной в соответствии с предыдущей записью в столбце.
Если столбец содержит несколько записей, которые соответствуют первым нескольким символам, Excel не отобразит предложение по автоматическому завершению, пока новая запись не будет соответствовать одной из старых однозначным образом. Например, если столбец также содержит продукт под названием «сахар-рафинад», автозавершение не будет реализовано, пока вы не введете либо первую букву слова «песок», либо первую букву слова «рафинад».
Вы также можете получить доступ к ориентированной на использование мыши версии автозавершения, щелкнув правой кнопкой мыши на ячейке и выбрав в контекстном меню пункт Выбрать из раскрывающегося списка. Excel отобразит список, в котором содержатся все записи в текущем столбце. Остается просто выбрать ту, которую вы хотите (рис. 32.1).
Рис. 32.1. Выбор пункта контекстного меню Выбрать из раскрывающегося списка позволяет отображать список записей в столбце
Вы даже можете получить доступ к списку с клавиатуры: нажмите Shift+F10 для отображения контекстного меню, а затем нажмите клавишу К (горячую клавишу для команды Выбрать из раскрывающегося списка). Используйте кнопки со стрелками, чтобы сделать свой выбор, и нажмите Enter.
Имейте в виду, что функция автозавершения работает только в пределах смежных столбцов ячеек. Если у вас есть, например, пустая строка, автозавершение будет анализировать только содержимое ячеек под пустой строкой.
Если функция автозавершения покажется вам отвлекающей, ее можно отключить в разделе Дополнительно диалогового окна Параметры Excel (выберите Файл ► Параметры).
Флажок Автозавершение значений ячеек находится в области Параметры правки.
Источник: http://excelexpert.ru/kak-v-excel-ispolzovat-avtomaticheskoe-zavershenie-dlya-avtomatizacii-vvoda-dannyx