Если строка данных очень широка и требует многократной горизонтальной прокрутки, рассмотрите возможность использования формы данных для добавления, изменения, поиска и удаления строк.
Общие сведения о форме данных
Форма данных обеспечивает удобный способ ввода и отображения строк данных из диапазонов или таблиц, при котором не нужна горизонтальная прокрутка. Использовать форму данных может быть проще, чем перемещаться между столбцами, когда их слишком много для одновременного отображения на экране. Форму данных можно применять тогда, когда достаточно простой формы с текстовыми полями, в качестве подписей которых используются заголовки столбцов, и когда не требуются сложные или пользовательские возможности, например списки и счетчики.
Microsoft Excel может автоматически создавать встроенные форма данных для диапазон или таблица. Такая форма представляет собой диалоговое окно, в котором все заголовки столбцов отображаются в виде подписей. Каждой подписи соответствует текстовое поле, в которое можно вводить данные для столбца (максимальное количество столбцов — 32). В форме данных можно вводить новые строки, искать строки с помощью навигации, а также (в зависимости от содержимого ячеек) обновлять строки или удалять их. Если ячейка содержит формула, ее результат отображается в форме данных, но саму формулу в форме данных изменить нельзя.
Примечание: Форму данных нельзя распечатать. Кроме того, поскольку эта форма является модальным диалоговым окном, то, пока она открыта, в Excel невозможно воспользоваться командой Печать и кнопкой Печать. При необходимости можно сделать снимок формы (с помощью клавиши Windows Print Screen) и скопировать его в Microsoft Paint или другую программу.
Добавление кнопки «Форма» на ленту
-
При необходимости добавьте заголовки во все столбцы диапазона или таблицы. На основе этих заголовков создаются подписи для всех полей формы.
Важно: Убедитесь, что в диапазоне данных нет пустых строк.
-
Щелкните ячейку в диапазоне или таблице, куда нужно добавить форму.
-
Чтобы добавить кнопку формы панели быстрого доступа, сделайте следующее:
-
Щелкните стрелку рядом с панелью быстрого доступа и выберите пункт Другие команды.
-
В поле «Выбор команд» щелкните «Все команды«, а затем нажмите кнопку «Форма в списке.
-
Нажмите кнопку Добавить, а затем — кнопку ОК.
-
-
На панели быстрого доступа нажмите кнопку «Форма » .
Важно: Если отображается сообщение «В форме данных слишком много полей», необходимо сократить число столбцов: в форме данных их должно быть не более 32. Один из способов решения этой проблемы (при работы с диапазоном столбцов) — вставить пустой столбец, разбив диапазон на два. Затем, если необходимо, создайте отдельную форму данных для столбцов справа от пустого столбца.
Использование формы данных
Форму данных можно использовать для добавления, поиска, изменения и удаления строк в диапазоне или таблице.
Добавление строки данных
-
В форме данных нажмите кнопку Добавить.
-
В открывшейся форме данных введите данные для новой строки в показанных полях.
Чтобы перейти к следующему полю в строке, нажмите клавишу TAB. Чтобы перейти к предыдущему полю, нажмите клавиши SHIFT+TAB.
-
Указав нужные данные, нажмите клавишу ВВОД, чтобы сохранить изменения и добавить строку в нижнюю часть диапазона или таблицы.
Важно: Если отображается сообщение «Невозможно расширить список или базу данных», это может означать, что существующие данные будут перезаписаны при продолжении. При добавлении строк с помощью формы данных таблицы и диапазоны расширяются вниз. Если при этом могут быть перезаписаны какие-либо данные, то появляется сообщение Невозможно расширить список или базу данных. Измените расположение данных так, чтобы диапазон или таблица могли расширяться вниз от последней строки.
Примечание: До нажатия клавиши ВВОД отменить любые изменения можно с помощью кнопки Вернуть на форме данных. При этом из полей удалятся все внесенные данные.
Поиск строки с помощью навигации
Выполните одно или несколько действий, указанных ниже.
-
Чтобы последовательно перейти от одной строки к другой, щелкните нужную стрелку на полосе прокрутки в форме данных.
-
Чтобы перейти сразу через десять строк, щелкните полосу прокрутки между стрелками.
-
Чтобы перейти к следующей строке в диапазоне или таблице, нажмите кнопку Далее.
-
Чтобы перейти к предыдущей строке в диапазоне или таблице, нажмите кнопку Назад.
Поиск строки по определенным условиям
-
Нажмите кнопку Критерии и введите в форму данных условие сравнения.
В форме остаются только те строки, содержимое которых начинается с указанных данных. Например, если в качестве условия сравнения ввести Ша, то будут найдены строки «Шабалин» и «Шашков». Чтобы найти текст, который содержит только определенные символы, в условиях сравнения можно использовать подстановочные знаки.
При создании условий сравнения для фильтров, а также при поиске и замене содержимого можно использовать указанные ниже подставочные знаки.
Подстановочный знак
Чтобы найти
? (вопросительный знак)
Любой символ (один)
Пример: условию «стро?а» соответствуют результаты «строфа» и «строка»* (звездочка)
Любое количество символов
Пример: условию «*-восток» соответствуют результаты «северо-восток» и «юго-восток»~ (тильда), за которой следует ?, * или ~
Вопросительный знак, звездочку или тильду
Пример: условию «ан91~?» соответствует результат «ан91?» -
Чтобы найти соответствующие условиям строки, нажмите кнопку Далее или Назад.
-
Чтобы продолжить добавление, изменение или удаление строк в форме данных, нажмите кнопку Правка.
Изменение данных в строке
-
Найдите строку, которую нужно изменить.
-
Измените данные в строке.
Чтобы перейти к следующему полю в строке, нажмите клавишу TAB. Чтобы перейти к предыдущему полю, нажмите клавиши SHIFT+TAB.
-
Изменив данные, нажмите кнопку ВВОД. Строка будет обновлена.
Переход к следующей строке производится автоматически.
Примечание: До нажатия клавиши ВВОД отменить любые изменения можно с помощью кнопки Вернуть.
Удаление строки
-
Найдите в форме данных строку, которую нужно удалить.
-
Нажмите кнопку Удалить.
Предупреждение: Откроется диалоговое окно для подтверждения операции. После подтверждения отменить удаление строки невозможно.
Закрытие формы данных
Чтобы закрыть форму данных и вернуться к листу, нажмите в ней кнопку Закрыть.
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
См. также
Общие сведения о формах, элементах управления формы и элементах ActiveX на листе
Выпадающий список с быстрым поиском
Классический выпадающий список в ячейке листа Excel, сделанный через Данные — Проверка (Data — Validation) — простая и удобная штука, которую ежедневно применяют очень многие пользователи. Однако, у этого списка есть один весьма серьезный недостаток — в нём нет быстрого поиска по первым символам, т.е. фильтрации (отбора) только тех значений, куда введённый фрагмент входит как подстрока. Это серьезно ухудшает удобство пользования даже если в списке всего пара-тройка десятков позиций, а при нескольких сотнях убивает юзабилити напрочь.
Давайте рассмотрим как всё же реализовать подобный трюк. В качестве подопытного кролика возьмём список 250 лучших фильмов по версии IMDb:
Конечная цель — создать выпадающий список (ячейка G3), в котором можно будет быстро находить нужные фильмы, введя только жанр, год или фрагмент названия, например «гамп».
Шаг 1. Определяем, кто нам нужен
Сначала нам нужно понять, какие из исходных ячеек нужно показывать в списке, т.е. определить содержится ли введённый в выпадающем списке текст (например, жанр «детектив») в названии фильма. Для этого добавим слева от исходных данных еще один столбец с функцией ПОИСК (SEARCH), которая ищет заданную подстроку в тексте и выдает либо порядковый номер символа, где он был обнаружен, либо ошибку, если его там нет:
Теперь завернем нашу формулу в функцию проверки ЕЧИСЛО (ISNUMBER), которая превратит числа в логическую ИСТИНУ (TRUE), а ошибки — в ЛОЖЬ (FALSE):
Теперь сделаем так, чтобы ЛОЖЬ превратилась в 0, а вместо ИСТИНА в столбце появились последовательно возрастающие индексы-числа 1,2,3… и т.д. Это можно сделать с помощью добавления к нашей же формуле ещё парочки функций:
Здесь функция ЕСЛИ (IF) проверяет что мы имеем (ИСТИНУ или ЛОЖЬ), и
- если была ИСТИНА, то выводит максимальное значение из всех вышестоящих чисел + 1
- если была ЛОЖЬ, то выводит 0
Шаг 2. Отбираем в отдельный список
Дальше — проще. Теперь банальной функцией ВПР (VLOOKUP) просто выведём все найденные названия (я добавил столбец с порядковыми номерами для удобства):
После этого можно поиграться, вводя в жёлтую ячейку G2 разные слова и фразы и понаблюдать за тем, как наши формулы отбирают только подходящие фильмы:
Шаг 3. Создаем именованный диапазон
Теперь создадим именованный диапазон, который будет ссылаться на отобранные фильмы. Для этого выбрем на вкладке Формулы команды Диспетчер имен — Создать (Formulas — Name Manager — Create):
Имя диапазона может быть любым (например, Фильмы), а самое главное — это функция СМЕЩ (OFFSET), которая и делает всю работу. Напомню её синтаксис, если вы подзабыли:
=СМЕЩ(начальная_ячейка; сдвиг_вниз; сдвиг_вправо; высота; ширина)
У нас:
- В качестве начальной ячейки задаём первую ячейку списка отобранных элементов (E2).
- Сдвиги вниз и вправо у нас отсутствуют, т.е. равны нулю.
- Высота диапазона у нас соответствует максимальному значению индекса из столбца А.
- Ширина диапазона — 1 столбец.
Осталось сделать выпадающий список.
Шаг 4. Создаем выпадающий список
Выделим жёлтую ячейку (G2) и выберем на вкладке Данные команду Проверка данных (Data — Validation). В открывшемся окне выбрем Список (List) в поле Тип данных (Allow), а в качестве источника введем имя нашего созданного диапазона со знаком равно перед ним:
Чтобы Excel не ругался при вводе на неточное совпадение наших фраз с исходным списком, на вкладке Сообщение об ошибке (Error Alert) в этом окне нужно выключить флажок Выводить сообщение об ошибке (Show error alert):
Вот и всё. Можно жать на ОК и наслаждаться результатом:
Для пущего удобства при вводе с клавиатуры можно использовать Ctrl+Enter вместо Enter после ввода текста (так активная ячейка не уходит вниз) и сочетание клавиш Alt+стрелка вниз, чтобы развернуть выпадающий список без мыши.
P.S.
В принципе, можно было бы и не продолжать, но недавно Microsoft выкатила обновление вычислительного движка Excel, который теперь поддерживает динамические массивы и имеет специальные функции для работы с ними. Большинству пользователей они станут доступны в ближайшие месяцы, но даже если пока этих возможностей в вашем Excel нет — грех не показать как элементарно с их помощью решается наша задача.
Всё, что мы делали на Шагах 1-3 заменяется одной(!) формулой, где новая функция ФИЛЬТР (FILTER) отбирает из исходного диапазона A2:A251 только те фильмы, которые содержат заданную подстроку.
А дальше останется при создании выпадающего списка указать в качестве источника первую ячейку диапазона отобранных фильмов (C2) и добавить к ней знак #, чтобы получить ссылку на весь динамический массив:
И всё. Никаких именованных диапазонов и медленных СМЕЩ, никаких танцев с дополнительными столбцами и формулами. Песня!
Ссылки по теме
- Что такое динамические массивы в Excel
- Разбор трех основных функций динамических массивов: СОРТ, ФИЛЬТР и УНИК
- 4 способа создать выпадающий список на листе Excel
Форма поиска c выводом результатов по всей книге |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
124 / 3 / 0 Регистрация: 29.07.2013 Сообщений: 249 |
|
1 |
|
01.08.2013, 12:06. Показов 19198. Ответов 48
Всем хорошего настроения! Есть таблица, сделал форму для ввода данных. Необходимо чтобы при вводе данных в TextBox1 происходил поиск из первого столбца и после соответствия выводил в Textbox2 и TextBox3 значения этой строки соответственно из столбца 2 и 3, но не просто, а для редактирования. При нажатии кнопки Cange Record данные в искомой строке должны измениться.
1 |
124 / 3 / 0 Регистрация: 29.07.2013 Сообщений: 249 |
|
02.08.2013, 10:57 [ТС] |
2 |
Предложили неплохой вариант по поиску. http://www.planetaexcel.ru/?PA… sage416815 Теперь надо чтобы редактированные данные попали на свое место. Добавлено через 20 часов 36 минут
0 |
5590 / 1580 / 406 Регистрация: 23.12.2010 Сообщений: 2,366 Записей в блоге: 1 |
|
02.08.2013, 15:45 |
3 |
Тут идеи не нужны. Тут нужно воплощение идей.
3 |
124 / 3 / 0 Регистрация: 29.07.2013 Сообщений: 249 |
|
02.08.2013, 20:49 [ТС] |
4 |
KoGG, я оценил вложенный Вами труд детального понимания вопроса и подхода к его решению. Оч круто!!
0 |
6875 / 2807 / 533 Регистрация: 19.10.2012 Сообщений: 8,562 |
|
02.08.2013, 23:12 |
5 |
Как-то мне не нравится, что можно добавить уже существующий номер ещё раз. Но уже нельзя его изменить (т.к. выше есть такой же).
0 |
KoGG 5590 / 1580 / 406 Регистрация: 23.12.2010 Сообщений: 2,366 Записей в блоге: 1 |
||||
03.08.2013, 17:57 |
6 |
|||
To Hugo121 (полезно и ac1-caesar),
2 |
124 / 3 / 0 Регистрация: 29.07.2013 Сообщений: 249 |
|
03.08.2013, 23:08 [ТС] |
7 |
Понял, отработаю и эту часть вопроса. Просто в моем случае процессы работают отдельно: — добавление новой записи и редактирование старой не пересекаются.
0 |
0 / 0 / 0 Регистрация: 24.03.2015 Сообщений: 1 |
|
24.03.2015, 10:55 |
8 |
Прошу помощи!!!!!!!
0 |
7 / 5 / 0 Регистрация: 15.05.2015 Сообщений: 342 |
|
19.10.2015, 13:36 |
9 |
Сделал табель учета рабочего времени в Excel, все считается отлично, но т.к. имеем дело с вводом времени в формате «НН:ММ» — неудобно, попросили создать форму… — При выборе Работника и Дня — не обновляется значения в соответствующих ComBox-ах, хотя при введении новых данных, все меняем без проблем — как реализовать?
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,930 |
|
19.10.2015, 13:40 |
10 |
покажите ваши наработки.
0 |
mostApi 7 / 5 / 0 Регистрация: 15.05.2015 Сообщений: 342 |
||||
19.10.2015, 14:08 |
11 |
|||
Попутно спрошу, при объявлении выпадающего списка в ComboBox нельзя указать диапазон по строке?
— или циклом заводить?
0 |
dzug 695 / 236 / 18 Регистрация: 17.01.2011 Сообщений: 583 Записей в блоге: 1 |
||||
19.10.2015, 14:26 |
12 |
|||
попробуйте так
0 |
7 / 5 / 0 Регистрация: 15.05.2015 Сообщений: 342 |
|
19.10.2015, 14:31 |
13 |
Не ругается, но вы водит только первую ячейку из диапазона… Диапазон: [D10:AH10], т.е. D10 E10 F10 и т.д. по строке…
0 |
dzug 695 / 236 / 18 Регистрация: 17.01.2011 Сообщений: 583 Записей в блоге: 1 |
||||
19.10.2015, 14:53 |
14 |
|||
Да, это работает для столбца. Для строки сейчас посмотрю. Добавлено через 12 минут
1 |
7 / 5 / 0 Регистрация: 15.05.2015 Сообщений: 342 |
|
19.10.2015, 15:03 |
15 |
dzug, да, циклом работает… спасибо!
0 |
Vlad999 3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,930 |
||||
19.10.2015, 15:08 |
16 |
|||
можно так
1 |
695 / 236 / 18 Регистрация: 17.01.2011 Сообщений: 583 Записей в блоге: 1 |
|
19.10.2015, 15:19 |
17 |
Смотри Эксель — вложение к 3 посту, там есть обновление.
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
19.10.2015, 15:22 |
18 |
|||
У ComboBox/ListBox есть ещё свойство Column, которое позволит осуществить желаемое, причём без цикла и транспонирования
1 |
7 / 5 / 0 Регистрация: 15.05.2015 Сообщений: 342 |
|
19.10.2015, 15:34 |
19 |
dzug, pashulka, — посмотрел код, вроде как нашел где и как.., не могу понять как применить…
0 |
pashulka 4131 / 2235 / 940 Регистрация: 01.12.2010 Сообщений: 4,624 |
||||
19.10.2015, 17:11 |
20 |
|||
mostApi, Конкретно для Вашей таблицы ( только заполнение TextBox/ComboBox)
1 |
Нажмите вкладку, чтобы перейти от поля к полю. Выберите Новый, чтобы добавить запись на лист и очистить поля для второй записи.
Добавьте вторую запись на лист:
- StudentID : SA267-211
- Фамилия : Уильямс
- Начальная буква J.
- Возраст : 19
- Программа : Наука
Выберите Новый, когда вы закончите добавлять запись.
При вводе похожих данных, таких как идентификационные номера учащихся (отличаются только цифры после тире), используйте копирование и вставку, чтобы ускорить ввод данных.
Для того, чтобы добавить оставшиеся записи в обучающую базу данных, используйте форму для ввода данных , показанных на изображении ниже , в клетки А4 до E11 .
Используйте инструменты данных формы
По мере добавления большего количества записей на лист, важно поддерживать целостность данных. Поддерживайте актуальность и актуальность данных, исправляя ошибки данных, обновляя записи, удаляя устаревшие записи и удаляя дубликаты записей.
Форма ввода данных содержит несколько инструментов, которые облегчают поиск, исправление и удаление записей из базы данных. Эти инструменты находятся в правой части формы и включают в себя:
- Найти Пред. И Найти След . Прокрутите вперед и назад по листу одну запись за раз.
- Удалить : удалить записи с листа.
- Восстановление : отменить изменения в записи. Восстановление работает, когда запись отображается в форме. При обращении к другой записи или закрытии формы Восстановление становится неактивным.
- Критерии : Поиск в таблице для записей на основе определенных критериев, таких как имя, возраст или программа.
Поиск записей с использованием одного имени поля
Ниже описано, как использовать форму ввода данных для поиска в базе данных записей с использованием одного заголовка столбца, например «Фамилия», «Возраст» или «Программа».
-
В форме ввода данных выберите Критерии .
Когда вы выбираете Критерии , поля формы удаляются из формы; записи не удаляются с листа.
-
Поместите курсор в текстовое поле « Программа» и введите « Arts», чтобы найти всех учащихся, зачисленных в программу «Arts».
-
Выберите Найти следующий
-
Данные для первой записи, соответствующей критериям поиска, появятся в форме.
Чтобы внести изменения в запись, удалите существующий текст и введите правильные данные.
-
Выберите « Найти далее», чтобы отобразить дополнительные записи, соответствующие критериям поиска.
Поиск записей с использованием нескольких имен полей
Форма также может быть использована для поиска записей по нескольким критериям. Например, для поиска студентов, которым исполнилось 18 лет и которые зачислены в программу искусств. В форме отображаются только записи, соответствующие обоим критериям.
-
Выберите Критерии .
-
Поместите курсор в текстовое поле Возраст и введите 18 .
-
Поместите курсор в текстовое поле Program и введите Arts .
-
Выберите Find Next .
-
Данные для первой записи, соответствующей критериям поиска, появятся в форме.
-
Выберите « Найти далее», чтобы отобразить дополнительные записи, соответствующие критериям поиска.