Содержание
- 1 Шаг первый. Создай список уникальных значений
- 2 Шаг второй. Привязать справочник к исходной таблице
- 3 Шаблон телефонного справочника
- 4 Как пользоваться справочником
- 5 Как сопоставить два списка в Excel
- 6 Создаем простой выпадающий список
- 7 Добавляем значения в выпадающий список – динамический список
- 8 Выпадающий список со значениями с другого листа
- 9 Создаем зависимые выпадающие списки
Тема справочников должна идти флагманской темой для любого аналитика и предпринимателя, который ведет свой учет в электронных таблицах. Ведь справочники помогут:
↑ не поддаваться панике! Держи все под контролем.
Для примера рассмотрим любую таблицу с данными, например, таблица по закупкам спортивных товаров. Если ты ведешь такую таблицу в Экселе, то тебе наверняка захочется через некоторое время узнать:
- сколько товаров из категории «Мячи» закуплено в течение последних трех месяцев,
- сколько денег ты должен каждому поставщику просто и в разрезе товарных групп
- и так далее. Придумай сам!
Механизм очень прост. Он состоит всего из двух шагов. Если тебе лень читать, просто посмотри это видео про справочники в Google Docs, и все поймешь:
↑ качай пример в файле «
Птички…
» и пробуй сделать то же сам.
Пример из видео упрощен. Он предполагает, что ты начинаешь с нуля. Далее я расскажу, как сделать справочник к уже существующей таблице с данными посредством Excel.
Шаг первый. Создай список уникальных значений
В Экселе для того, чтобы создать список уникальных значений, проще всего использовать сводную таблицу.
- Выдели диапазон, в котором находится список ВСЕХ значений
- Иди в меню Данные (в последних версиях Excel — Вставка) > Сводная Таблица
- В появившемся диалоге сводной таблицы нажми ОК
- Создастся макет Сводной таблицы на новом листе. В список значений (Строк) перемести название поля, которое ты выбрал.
↑ Перетащи свое Поле в область СТРОКИ
- Готово! У тебя должен получиться список всех уникальных значений.
Теперь скопируй его и вставь как значения. Это и будет твоим справочником. Иногда еще необходимо очистить свою таблицу от дублей. Например, категории товаров «Мячи» и «Мячи » (с пробелом в конце) компьютер засчитает как 2 различных значения. В этом случае тебе нужно вернуться на таблицу с данными и Все «Мячи » с пробелом заменить на «Мячи» без пробела. Чтобы это сделать:
- Нажми сочетание клавиш Ctrl + H — найти и заменить
- В поле Найти: напиши «Мячи » с пробелом
- В поле Заменить на: введи «Мячи» без пробела
- Жми на кнопку Заменить все!
Таким образом, ты почистишь свою базу от ненужных повторов. Тогда ты можешь удалить их и из справочника. Ты уже на половине пути. Теперь необходимо привязать свой справочник к исходной таблице
Шаг второй. Привязать справочник к исходной таблице
Тебе нужно выделить всю колонку в исходной таблице, в которой ты вносишь категорию из справочника. И далее всего пару кликов мыши:
- Идешь в меню Данные > Проверка данных
- Откроется диалоговое окно. Выбери Тип дынных > Список
- Появится возможность выбора Источника данных. Стань в него и выбери диапазон из справочника
- Совет: выбери диапазон длиннее, чем просто все данные из справочника. Например, если был диапазон А2:А30, то исправь его на А2:А3000. Тогда ты сможешь вносить новые строки в справочник и они попадут в исходник.
Последнее. Проверь работу своего справочника. Попробуй внести значения из выпадающего списка., попробуй так же внести неверное значение. Компьютер должен запретить ввод любых значений, которых нет в справочнике.
И ура! Надеюсь, по моим подсказкам, ты смог настроить себе один или несколько справочников в исходной таблице с данными. Ты сделал огромный шаг на пути к автоматизации своего бизнеса. Если возникнут проблемы, пиши об этом в комментариях.
Excel удобно использовать для создания телефонных справочников. Причем информация не просто надежно хранится там, но и ее всегда может использоваться для выполнения различных манипуляций, сопоставления с другими списками и т.п.
Чтобы впоследствии справочник стал действительно полезным массивом, нужно правильно его создать.
Шаблон телефонного справочника
Как сделать справочник в Excel? Для создания телефонного справочника нужны, минимум, два столбца: имя человека или организации и, собственно, номер телефона. Но можно сразу сделать список более информативным, добавив дополнительные строки.
Шаблон готов. Шапка может быть другой, какие-то столбцы должны быть добавлены, какие-то исключены. Осталось только заполнить справочник информацией.
Дополнительно можно провести еще одну манипуляцию: определить формат ячеек. По умолчанию формат каждой ячейки значится как ОБЩИЙ. Можно оставить все как есть, но для столбца с номером телефона можно задать специальный формат. Для этого надо выделить ячейки из этого столбца, правой кнопкой вызвать меню, выбрать ФОРМАТ ЯЧЕЕК.
Среди предоставленных вариантов выбрать ДОПОЛНИТЕЛЬНЫЙ. Справа откроется мини-список, среди которых можно будет выбрать НОМЕР ТЕЛЕФОНА.
Как пользоваться справочником
Любой справочник нужен для того, чтобы по одному критерию можно было легко узнать остальные. Так, в телефонном справочнике мы можем ввести необходимую фамилию и узнать номер телефона этого человека. В Excel сделать это помогают функции ИНДЕКС и ПОИСКПОЗ.
Имеем небольшой справочник. В действительности, в фирмах обычно более длинные списки, поэтому и искать в них информацию вручную сложно. Составим заготовку, в которой будет значиться вся информация. А появляться она будет по заданному критерию – фамилия, поэтому сделаем этот пункт в виде выпадающего списка (ДАННЫЕ – ПРОВЕРКА ДАННЫХ – ТИП ДАННЫХ – СПИСОК).
Нужно сделать так, чтобы при выборе какой-то фамилии, в остальных ячейках автоматически проставлялись соответствующие данные. Ячейки с телефоном выделили зеленым, потому что это самая важная информация.
В ячейку J6 (там, где ИМЯ) вводим команду =ИНДЕКС и начинаем заполнять аргументы.
- Массив: выделяем всю таблицу заказов вместе с шапкой. Делаем его абсолютным, фиксируя клавишей F4.
- Номер строки: сюда вводим ПОИСКПОЗ и заполняем уже аргументы этой функции. Искомым значением будет ячейка с выпадающим списком – J6 (плюс F4). Просматриваемым массивом является столбец с фамилиями (вместе с шапкой): A1:A13 (плюс F4). Тип сопоставления: точное совпадение, т.е. 0.
- Номер столбца: снова нужен ПОИСКПОЗ. Искомое значение: I7. Просматриваемый массив: шапка массива, т.е. А1:Н1 (плюс F4). Тип сопоставления: 0.
Получили следующее. Формула универсальна, ее можно протянуть и на остальные строки в заготовке. Теперь, при выборе фамилии, будет выпадать вся остальная информация. В том числе и номер телефона.
Получается, что команда ИНДЕКС при задании критерия из массива, выдает нам номер его строки и столбца. Но т.к. критерий плавающий, и мы постоянно будем менять фамилии, чтобы узнавать номера телефонов людей, мы дополнительно воспользовались функцией ПОИСКПОЗ. Она помогает искать позиции нужных нам строки и столбца.
Работа со списками в Excel подразумевает их сопоставление. Т.е. сравнивание данных, нахождение одинаковых или уникальных позиций. Попробуем для примера сопоставить два простых списка.
Имеется информация по двум складам. Задача: проверить, каких позиций нет на том и другом складе, чтобы в будущем сделать заказ и довезти недостающие продукты.
Выделим оба списка (без шапок) с помощью клавиши CTRL. Свободное место между списками (т.е. столбец B) нам не нужно. Затем на вкладке ГЛАВНАЯ выбираем УСЛОВНОЕ ФОРМАТИРОВАНИЕ – ПРАВИЛА ВЫДЕЛЕНИЯ ЯЧЕЕК – ПОВТОРЯЮЩИЕСЯ ЗНАЧЕНИЯ.
Появится небольшое окно, где можно выбрать, чтобы команда показывала повторяющиеся или уникальные значения. Выберем УНИКАЛЬНЫЕ. Они подсветятся цветом, который можно выбрать справа. У нас это красный.
Скачать телефонный справочник шаблон в Excel
Теперь можно скопировать все красные ячейки из левого столбца и добавить их в правый и наоборот. Получатся два равнозначных списка.
Если Вы заполняете таблицу в Excel, и данные в столбце могут иногда повторяться, например, название товара, или имя сотрудника, то, чтобы не вводить нужный параметр каждый раз, проще и легче один раз создать выпадающий список и выбирать из него значение.
В статье мы рассмотрим, как сделать выпадающие списки различного вида в таблице Эксель.
Создаем простой выпадающий список
Для этого, в ячейки А1:А7 вписываем данные, которые будут отображаться в списке. Теперь выделим ячейку, в которой создадим выпадающий список – В2.
Переходим на вкладку «Данные» и кликаем по кнопочке «Проверка данных».
На вкладке «Параметры» в поле «Тип данных» выбираем «Список». В поле «Источник» можно ввести значения различными способами:
1 – вводим значения для списка вручную, через точку с запятой;
2 – указываем диапазон ячеек, в которые введены данные для выпадающего списка;
3 – выделяем ячейки с именами, кликаем по ним правой кнопкой мыши и выбираем из меню «Присвоить имя».
Дальше впишите «Имя» для выделенных данных.
Выделяем ячейку В2 и в поле «Источник» ставим «=», затем пишем созданное имя.
Таким образом, мы создали простой выпадающий список в Excel.
Если у Вас есть заголовок для столбца, и значениями нужно заполнять каждую строку, то выделите не одну ячейку, а диапазон ячеек – В2:В9. Тогда можно будет выбирать из выпадающего списка нужное значение в каждой ячейке.
Добавляем значения в выпадающий список – динамический список
При этом мы будем дописывать значения в нужный диапазон, а они будут автоматически добавляться в выпадающий список.
Выделяем диапазон ячеек – D1:D8, затем на вкладке «Главная» нажимаем «Форматировать как таблицу» и выбираем любой стиль.
Подтверждаем расположение данных и ставим галочку в поле «Таблица с заголовками».
Вверху пишем заголовок таблицы – «Сотрудники», и заполняем ее данными.
Выделяем ячейку, в которой будет выпадающий список и кликаем по кнопочке «Проверка данных». В следующем окне, в поле «Источник», пишем следующее: =ДВССЫЛ(«Таблица1»). У меня одна таблица на листе, поэтому пишу «Таблица1», если будет вторая – «Таблица2», и так далее.
Теперь добавим новое имя сотрудника в наш список: Ира. В выпадающем списке оно появилось. Если мы удалим любое имя из таблицы, из списка оно тоже удалится.
Выпадающий список со значениями с другого листа
Если таблица с выпадающими списками находится на одном листе, а данные для этих списков – на другом, то данная функция нам очень поможет.
На Листе 2, выделяем одну ячейку или диапазон ячеек, затем кликаем по кнопочке «Проверка данных».
Переходим на Лист 1, ставим курсор в поле «Источник» и выделяем нужный диапазон ячеек.
Теперь можно дописывать имена на Листе 1, они будут добавляться в выпадающие списки на Листе 2.
Создаем зависимые выпадающие списки
Предположим, у нас есть три диапазона: имена, фамилии и отчества сотрудников. Для каждого, нужно присвоить имя. Выделяем ячейки оного диапазона, можно и пустые – в них со временем можно будет добавлять данные, которые будут появляться в выпадающем списке. Кликаем по ним правой кнопкой мыши и выбираем из списка «Присвоить имя».
Первый называем «Имя», второй – «Фамилия», третий – «Отч».
Сделаем еще один диапазон, в котором будут прописаны присвоенные имена. Назовем его «Сотрудники».
Делаем первый выпадающий список, который будет состоять из названия диапазонов. Выделяем ячейку Е1 и на вкладке «Данные» выбираем «Проверка данных».
В поле «Тип данных» выберите «Список», в поле источник – или введите «=Сотрудники», или выделите диапазон ячеек, которому присвоено имя.
Первый выпадающий список создан. Теперь в ячейке F2 создадим второй список, который должен зависеть от первого. Если в первом выберем «Имя», во втором отобразится список имен, если выберем «Фамилия» – список фамилий.
Выделяем ячейку и кликаем по кнопочке «Проверка данных». В поле «Тип данных» выбираем «Список», в поле источник прописываем следующее: =ДВССЫЛ($Е$1). Здесь Е1 – это ячейка с первым выпадающим списком.
По такому принципу можно делать зависимые выпадающие списки.
Если в дальнейшем, нужно будет вписать значения в диапазон, которому задано имя, например, «Фамилия». Перейдите на вкладку «Формулы» и кликните «Диспетчер имен». Теперь в имени диапазона выбираем «Фамилия», и внизу, вместо последней ячейки С3, напишите С10. Нажмите галочку. После этого диапазон увеличится, и в него можно будет дописывать данные, которые автоматически будут появляться в выпадающем списке.
Теперь Вы знаете, как сделать раскрывающийся список в Excel.
Поделитесь статьёй с друзьями:
Как создать выпадающий список, состоящий сразу из нескольких ячеек (скажем чтобы наименование было со стоимостью)
Спасибо, всё получилось.
Огромное спасибо автору за «зависимые выпадающие списки». Сам бился два дня, а ваша статья очень помогла. Всё работает на разных листах. Получил как раз то, что и хотел.
Автору спасибо за хорошую статью! Как оказалось, есть масса возможностей их создания!
Выпадающий список со значениями с другого листа не работает, так как окно когда открыто проверка данных не дает работать с другими окнами, тем более с другим листом!
Справочник состоит из двух таблиц: справочной таблицы, в строках которой содержатся подробные записи о некоторых объектах (сотрудниках, товарах, банковских реквизитах и пр.) и таблицы, в которую заносятся данные связанные с этими объектами. Указав в ячейке лишь ключевое слово, например, фамилию сотрудника или код товара, можно вывести в смежных ячейках дополнительную информацию из справочной таблицы. Другими словами, структура Справочник снижает количество ручного ввода и уменьшает количество опечаток.
Создадим
Справочник
на примере заполнения накладной.
В накладной будем выбирать наименование товара, а цена, единица измерения и НДС, будут подставляться в нужные ячейки автоматически из справочной таблицы
Товары
, содержащей перечень товаров с указанием, соответственно, цены, единицы измерения, НДС.
Таблица
Товары
Эту таблицу создадим на листе
Товары
с помощью меню
, т.е. в
формате EXCEL 2007
(см.
файл примера
). По умолчанию новой таблице EXCEL присвоит стандартное
имя
Таблица1
. Измените его на имя
Товары
, например, через Диспетчер имен (
)
К таблице
Товары
, как к справочной таблице, предъявляется одно жесткое требование: наличие поля с
неповторяющимися
значениями. Это поле называется
ключевым
. В нашем случае, ключевым будет поле, содержащее наименования Товара. Именно по этому полю будут выбираться остальные значения из справочной таблицы для подстановки в накладную.
Для гарантированного обеспечения
уникальности
наименований товаров используем
Проверку данных
(
):
-
выделим диапазон
А2:А9
на листе
Товары
; -
вызовем
Проверку данных
; -
в поле
Тип данных
выберем
Другой
и введем формулу, проверяющую вводимое значение на уникальность:
=ПОИСКПОЗ(A2;$A:$A;0)=СТРОКА(A2)
При создании новых записей о товарах (например, в ячейке
А10
), EXCEL автоматически скопирует правило
Проверки данных
из ячейки
А9
– в этом проявляется одно преимуществ таблиц, созданных
в формате Excel 2007
, по сравнению с обычными диапазонами ячеек.
Проверка данных
срабатывает, если после ввода значения в ячейку нажата клавиша
ENTER
. Если значение скопировано из
Буфера обмена
или скопировано через
Маркер заполнения
, то
Проверка данных
не срабатывает, а лишь помечает ячейку маленьким зеленым треугольником в левом верхнем углу ячейке.
Через меню
можно получить информацию о наличии данных, которые были введены с нарушением требований
Проверки данных
.
Для контроля уникальности также можно использовать
Условное форматирование
(см. статью
Выделение повторяющихся значений
).
Теперь, создадим
Именованный диапазон
Список_Товаров,
содержащий все наименования товаров
:
-
выделите диапазон
А2:А9
; - вызовите меню
-
в поле Имя введите
Список_Товаров
; -
убедитесь, что в поле
Диапазон
введена формула
=Товары[Наименование]
- нажмите ОК.
Таблица
Накладная
К таблице
Накладная
, также, предъявляется одно жесткое требование: все значения в столбце (поле)
Товар
должны содержаться в ключевом поле таблицы
Товары
. Другими словами, в накладную можно вводить только те товары, которые имеются в справочной таблице
Товаров
, иначе, смысл создания
Справочника
пропадает. Для формирования
Выпадающего (раскрывающегося) списка
для ввода названий товаров используем
Проверку данных
:
-
выделите диапазон
C
4:
C
14
; -
вызовите
Проверку данных
; -
в поле
Тип данных
выберите
Список;
-
в качестве формулы введите ссылку на ранее созданный Именованный диапазон
Список_товаров
, т.е.
=Список_Товаров
.
Теперь товары в накладной можно будет вводить только из таблицы
Товары
.
Теперь заполним формулами столбцы накладной
Ед.изм., Цена
и
НДС
. Для этого используем функцию
ВПР()
:
=ЕСЛИОШИБКА(ВПР(C4;Товары;2;ЛОЖЬ);»»)
или аналогичную ей формулу
=ИНДЕКС(Товары;ПОИСКПОЗ(C4;Список_Товаров;0);2)
Преимущество этой формулы перед функцией
ВПР()
состоит в том, что ключевой столбец
Наименование
в таблице
Товары
не обязан быть самым левым в таблице, как в случае использования
ВПР()
.
В столбцах
Цена
и
НДС
введите соответственно формулы:
=ЕСЛИОШИБКА(ВПР(C4;Товары;3;ЛОЖЬ);»») =ЕСЛИОШИБКА(ВПР(C4;Товары;4;ЛОЖЬ);»»)
Теперь в накладной при выборе наименования товара автоматически будут подставляться его единица измерения, цена и НДС.
Использование справочников
Содержание |
---|
Поиск в одномерном справочнике |
Поиск в двумерном справочнике |
Использование справочников для создания пользовательского интерфейса |
При построении сложных экономических моделей обычно имеется набор данных, используемых в нескольких таблицах как в качестве параметров расчетов, так и для построения отчетных форм. Создание и использование отдельных таблиц-справочников позволяет ускорить процесс разработки модели, повышает надежность расчетов, а также дает возможность применять специальные средства интерфейса Microsoft Excel.
В прилагаемом примере рассматривается модель с использованием двух типов справочников:
- Одномерный — продукты с наименованием и единицей измерения
- Двумерный — прайс-листы с различными ценами по продуктам и периодам.
Поиск в одномерном справочнике
На первом этапе (лист «Пример1») добавим в прайс-листы по продуктам формулу для поиска единицы измерения каждого продукта. Если продукты в прайс-листе располагаются в той же последовательности, что и в справочнике, то очевидно, что формула может использовать простую ссылку на справочник.
Для формирования денежной единицы измерения используем строковую операцию конкатенации (соединения частей текста).
Пример1!B10:
Для добавления единицы измерения в таблицу продаж прямая ссылка на справочник приведет к некопируемой формуле. Чтобы избежать этого, используем функцию поиска ВПР.
Пример1!D17:
=VLOOKUP(B17;$A$3:$B$6;2;0)
Функция ВПР ищет значение по определенному номеру столбца (в примере – второй столбец) в прямоугольном диапазоне ячеек. Последний параметр (0 или ЛОЖЬ) используется для указания искать ли ближайшее значение (ИСТИНА), либо точное совпадение (ЛОЖЬ). Первый вариант редко используется на практике, так как требует предварительно отсортированного диапазона поиска. Важное замечание по параметру «столбец». Это не номер столбца во всей электронной таблице, а номер столбца в диапазоне поиска. Для аналойного поиска по горизонтальному массиву используется функция ГПР (HLOOKUP).
Поиск в двумерном справочнике
Сложный случай поиска по двум условиям реализован в формулах выбора цены из прайс-листа для таблицы продажи.
Необходимо выбрать значение из ячейки на пересечении строки покупателя и столбца месяца. Реализация такого алгоритма напрямую приводит к формуле с использованием функций вычисляемых ссылок:
Пример1!E17:
=OFFSET($A$9;MATCH(B17;$A$10:$A$13;0);MATCH(DATE(YEAR(A17);MONTH(A17);1);$C$9:$E$9;0)+1)
Функция ПОИСКПОЗ (MATCH) ищет и возвращает порядковый номер элемента в списке (работает аналогично ВПР). Функция СМЕЩ (OFFSET) возвращает значение по относительной ссылке от определенной ячейки – в примере, от верхнего левого угла таблицы прайс-листов. Функция преобразования даты ДАТА (DATE) превращает дату в из таблицы продаж в дату, используемую в прайс-листе – первое число месяца.
Более простой вариант решения задачи использован в нижних ячейках таблицы продаж. Здесь использована формула обработки массива. Причем суммирование ведется по двумерному массиву:
Пример1!E22:
{=SUM(IF(B22=$A$10:$A$13;IF(MONTH(A22)=MONTH($C$9:$E$9);$C$10:$E$13)))}
Функция суммирования в данном случае не осуществляет никаких операций кроме поиска, так как значение выбирается на пересечении строк и столбцов.
Для лучшего понимания формулы, разложим ее в виде структуры и заменим диапазоны на значения (через нажатие F9 на выделенном диапазоне). Получим следующую картину:
=SUM( IF("Продукт4"={"Продукт1":"Продукт2":"Продукт3":"Продукт4"}; IF(3={1;2;3}; { 2;2,1;2,2: 3;2,9;3,05: 1299;1280;1350: 6,4;6,9;6,7 } ) ) )
Первое условие на продукт возвращает массив {6,4;6,9;6,7}, второе условие выбирает из этого массива последнее значение.
В принципе обе формулы являются копируемыми и можно использовать ту, которая легче для восприятия. В части производительности вероятно первый вариант будет работать быстрее. Но это заметно только на очень больших объемах данных.
Использование справочников для создания пользовательского интерфейса
Обратите внимание на выпадающий список для выбора элементов справочника на листе «Пример2», таблицы «Продажи» (Пример2!B17).
Организация подобных выпадающих списков возможна через опцию «Проверка». Доступ в Excel до 2007 через меню ДанныеПроверка (DataValidation), в Excel 2007 и старше – лента ДанныеРабота с даннымиПроверка данных (DataData ToolsData Validation).
При выборе данного пункта меню появляется диалог, позволяющий организовать проверку вводимых в ячейку данных. Одной из возможностей такой проверки является выбор значений из списка.
Интерфейс с организацией выпадающего списка существенно снижает риск ошибок при вводе строковых значений в ячейку электронной таблицы.
Одной из проблем организации списка через функцию проверки является невозможность использования явной ссылки на диапазон данных, находящихся вне текущего листа (попробуйте и получите сообщение об ошибке). Для сложных экономических моделей – это может быть важным ограничением.
К счастью, имеется обходной путь для решения этой проблемы. Проверки не допускает прямых ссылок на другие листы, но нормально понимает именованные диапазоны.
Обратите внимание на описание проверки в ячейке Пример2!B18. Здесь вместо ссылки на лист «Пример1» задана формула
Имя listProducts задано в примере как диапазон Пример1!$A$3:$A$6. Очевидно, что использование такого именованного диапазона делает более прозрачным смысл заданного условия проверки, а также снижает риск ошибки в формуле.
Кроме выбора из списка, можно добавить проверку данных на вводе. Причем в полях условий можно вводить формулы.
Смотри также
» Фильтр по многоуровневым группам
Еще один пример, расширяющий грани возможного в Excel.Требуется создать фильтр, отбирающий записи в таблице сгруппированных по…
» Динамический источник данных сводной таблицы
При работе со сводными таблицами несколько раз сталкивался с проблемой, когда новые данные не попадали в отчет. Сводная таблица была…
» Списки выбора
Показано три варианта реализации списков для выбора значения.
Вся обрабатываемая
инф-ция принята делиться на:
-
Выходная
-
Входная
-
Справочная-это
та которая остается неизменной в
течении длительного времени -
Оперативная-
меняется по истечению определённого
времени
-
Под
справочной инф-ей подразумевается
таблица содержащая не менее 2 строк и
столбцов. Про создании справочника
самый крайний левый столбец задаётся
ключевым столбцом. С помощью которого
происходит поиск нужной инф-ции.
Столбец
ключевой ,если его значение не повторяется
т.е. каждое значение уникально и
однозначно определяет конкретную
запись справочника.
20. Фильтрация данных в табличном процессоре ms Excel
Фильтрация данных
– это наиболее частые действия,
производимые со списком или базой
данных. Фильтрация
производится
на основе задаваемых пользователем
критериев
– требований,
налагаемых на информацию. Результатом
фильтрации является временное скрытие
записей, не удовлетворяющих заданным
критериям.
Для фильтрации
списков в Excel
существует две команды :
Автофильтр
обеспечивает
простой и быстрый способ скрытия лишних
записей, оставляя на экране только те,
что удовлетворяют критериям.
Расширенный
фильтр
позволяет накладывать более сложные
условия отбора, которые могут включать
вычисляемые критерии.
19. Табличный процессор ms Excel: работа с эт как с базой данных.
При работе с
таблицами большую помощь могут оказать
содержащиеся в Excel
средства работы с базой данных.
Таблица в Excel
представляет собой однотабличную
базу
данных.
В Excel
базы данных называются списками.
Список
– определенным образом сформированный
на рабочем листе Excel
массив данных со столбцами и строками.
Список может
использоваться как база данных, в
которой строки выступают в качестве
записей,
а столбцы являются полями.
Первая строка списка при этом содержит
названия столбцов. Список должен быть
организован так, чтобы в каждом столбце
содержалась однотипная информация.
Пустые ячейки недопустимы.
Фильтрация данных
– это наиболее частые действия,
производимые со списком или базой
данных. Фильтрация
производится
на основе задаваемых пользователем
критериев
– требований,
налагаемых на информацию. Результатом
фильтрации является временное скрытие
записей, не удовлетворяющих заданным
критериям.
Для фильтрации
списков в Excel
существует две команды :
-
Автофильтр
-
Расширенный
фильтр
Синтаксис:
Функция
(база данных; поле; диапазон условий),
где
база
данных
– интервал ячеек, формирующих базу
данных;
поле
— имя столбца (поля) базы данных;
диапазон
условий
– ссылка на интервал ячеек, задающих
условия для функции.
Наиболее
часто используемые функции: БДСУММ,
БСЧЕТ,
ДМАКС,
ДМИН,
ДСРЗНАЧ.
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
- #
Автор: Сергей Талалаев
Для меня слово справочник прочно асcоциировано со школьными таблицами Брадиса (кто-нибудь еще помнит такие или я последний из могикан?) и это воспоминание непременно вызывает улыбку и светлые чувства.
Но могу предположить, в том числе и из собственного опыта, что тестирование задач завязанное на справочную информацию (особенно большого объема) вызывает прямо противоположные чувства. Поэтому, если данная статья поможет высушить хотя бы одну слезинку тестировщика — я буду считать, что цель достигнута
1. Введение
Приступая к написанию очередной статьи, хотелось бы выразить свое восхищение моим коллегам, работающим в области тестирования систем принятия решений, страхования, налогообложения и т.д. и т.п.
Всем тем, кому приходится кропотливо перебирать информацию из справочников, скрупулезно высчитывать бесконечные формулы и пытаться сопоставить магию требований с не менее искусной магией реализованного функционала.
2. Справочники и с чем их едят
Каждый, даже людям далеким от IT сферы приходится ежедневно сталкиваться с данной функциональностью ежедневно. Не верите — тогда небольшой тест. Есть ли у вас затруднения с пониманием следующих фраз?
— Основная валюта USA – это USD
— КГБ и ДМБ хоть и звучат похоже, но страшно далеки друг от друга
— DE, FR, IT, AU – кто-то здесь не из EU
Уверен, что проблем с прочтением и пониманием ни у кого не возникло. Что собственно и говорит о том, что справочники прочно вошли в нашу повседневную жизнь, выйдя за рамки узкоспециализированной области. Если же все-таки трудности возникли, то они легко разрешимы с помощью следующей таблицы:
которая собственно и является типичным представителем семейства ”справочниковых”.
То есть в общем случае справочник – это таблица, из которой по значению выделенного столбца (код) можно однозначно извлечь соотвествующие ему данные.
Если начать копать глубже в сторону БД, что мы увидим, что там без справочников просто нельзя и шагу ступить. Но тема нашей статьи не теория реляционных БД, а практика работы с Eхcel, поэтому предлагаю в очередной раз посмотреть, что же мы можем сделать, имея в руках только молоток и гвозди Microsoft Office и светлую голову.
3. Чем может порадовать Excel?
Как я говорил в своей предыдущей статье Excel – это конечно не полноценная БД, но все-таки некоторые “базовские” функции присутствуют. Для работы со справочниками есть целый набор функций, доступный для выбранной категории “Lookup & Reference”
Нас с вами будут интересовать 2-е из них – VLOOKUP и HLOOKUP. Эти функции в целом схожи и различаются лишь направлением поиска (вертикальным и горизонтальным соответственно). Для большинства из нас более естественным является горизонтальное расположение строк и вертикальное – столбцов, поэтому все примеры будут основаны на использовании функции VLOOKUP, реализующей работу именно с таким вариантом.
4. Варианты реализации
Для начала обрисуем себе цель нашей авантюры, то есть что же мы хотим получить в обмен на наши мучения.
В качестве примера я выбрал реализацию обработки кода штата в адресе компании с показом полного названия в соседней ячейке. В данном случае я использовал валидацию вводимых кодов, о реализации которой вы можете прочитать в предыдущей статье (не смог удержаться).
Пример на чей-то взгляд может показаться надуманным, но тем не менее он достаточно презентабельный, чтобы служить учебным пособием.
4.1. Попроще
Итак, более простой вариант использования предполагает, что каждому коду соответствует одна уникальная запись в таблице. Я, как вы уже поняли, для пособия взял список Американских штатов (прикольные у них названия и в интернете полно информации в табличном виде):
Для удобства работы со списком выносим его на отдельную страницу и помечаем как именованный диапазон
После этого единственное, что нам остается сделать – это определить откуда мы берем код для поиска и что мы хотим видеть взамен этого кода. В итоге получим следующее выражение:
=VLOOKUP(B2 ; Список_Штатов ; 2 ; FALSE)
B2 – это ячейка с кодом
Список_Штатов – это наш справочник, в котором нам интересна 2-ая колонка с полным названием штата
Будьте внимательны с последним параметром!!!
Последний параметр (FALSЕ) определяет правило поиска кода:
— Если он равен TRUE или пропущен – ищется ближайший вариант
— Если он равен FALSE – поиск ведется на полное соответствие
Попробуйте поиграть с этим параметром, чтобы, так сказать, почувствовать разницу.
Кстати, никто не обратил внимание, чего еще не хватает во входных параметрах функции VLOOKUP для полноты картины? А откуда она узнает в каком столбце нашего справочника содержится имено код?
А вот это уже ваша прямая обязаннность – обеспечить чтобы столбец с кодами был первым столбцом нашего справочника
4.2. Посложнее
В усложненном варианте вместо кода уже появляется такое понятие как диапазон значений и уже каждому диапазону соответсвует какая-либо запись.
Типичным примером может служить таблица значений повышающего коеффициента для расчета страховых взносов в зависимости от возраста автомобиля.
Для расчета вручную информации достаточно, и затруднений сам расчет не вызывает. Но для использования в качестве входа для автоматического расчета нам потребуется немного преобразовать данную таблицу.
Правило преобразования несложное и основывается на том, что при поиске подходящего значения (в данном случае уже имеется ввиду поиск приближенного значения) ищется ближайшее меньшее или равное искомому коду. А если по-русски и без заумных фраз, то
• для каждой пары вида ”A – B” должно остатья первое значение – ”A”
• выражения вида >A следут заменить на величину A+1
• выражения вида <A следут заменить на Min(A), то есть минимально допустимое значение
В итоге получаем следующую таблицу:
И формула для расчета ”возрастной добавки” будет выглядеть следующим образом
=VLOOKUP(D10 ; Возраст_автомобиля; 2 ; TRUE)
D10 – это ячейка с кодом
Возраст_автомбиля – наш доведенный до ума справочник
И обратите внимание на последний параметр – он теперь имеет значение TRUE, что указывает на правило поиска приближенного, а не точного значения.
4.3. Высший пилотаж
Изложение материала в предыдущих параграфах начиналось словами ”каждому коду … или каждому диапазону …”. То есть основное предположение состоит в том, что у нас есть уникальное значение с одной стороны и набор дополнительной информации для него с другой.
Рассмотрим теперь ситуацию, когда мы не сможем опираться на такой удобный посыл. Предположим, что выбор искомой информации зависит от набора ключевых значений, например сильно упрощенная схема расчета страховой премии на страхование автомобиля в США зависит от следующих параметров:
— возраст автомобиля: 1-3, 4-7, 8-10, >10
— пол водителя (плевать они хотели на гендерное равенство): М, Ж
— стаж водителя: <2, 2-5, >5
Полный набор всех вариантов даже в таком ужатом варианте содержит 24 записи, для каждого из которых есть соотвествующий коэфициент для расчет страховой премии. Как же в этом случае поможет известная нам функция VLOOKUP, которая не работает с набором ключей, а принимает на вход лишь одиночный код.
Ответ – никак … без предварительной подгонки. Чем мы с вами и займемся чуть дальше.
Подгонка будет заключаться в создании дополнительного поля с кодом, уникально определяющего каждый набор, например
1-3, M, <2 преобразуется в 1M0
4-7, М, 2-5 преобразуется в 11Ж2
5. Хитрости и трюки
В принцпипе, информации полученной из предыдущих примеров достаточно, чтобы покрыть большинство случаев использования справочников. Но в качестве дополнительного бонуса (на сладкое так сказать) хотел бы предложить найденные в ходе работы интересности, связанные с изложенным материалом.
5.1. Использование столбца кода для валидации
В нашем первом примере со штатами мы в ответ на введенный код штата хотим получить его полное название. Естесвенным желанием было бы обезопасить себя от неправильно введеного кода, тем более что все коды у нас присутствуют в нашем справочнике и у нас есть необходимые знания (вспоминаем здесь), чтобы организовать выпадающий список для кодов.
Если бы не одно но – при организации списка валидации нам необходимо указать источник для наполнения выпадающего списка и этот источник не может быть 2-х мерной таблицей коим является наш справочник Список_Штатов. О чем вам незамедлительно сообщит Excel
Казалось бы единственным правильным вариантом будет дополнительно определить именованный диапазон только для столбца кодов, но с точки зрения правильного лентяя хотелось бы найти более элегантный вариант. И он есть
В поле источника данных следует указать такое выражение:
=INDEX(Список_Штатов,0,1)
И “золотой ключик у вас в кармане”.
5.2. Связанные справочники
Прием больше подходящий к разделу трюков, чем хитростей, но тем не менее иногда полезный (знаю лично один такой случай).
В нашем сакраментальном примере с адресом помимо штата присутсвует также поле Город. И было бы достаточно интересно реализовать выпадающий список городов в зависимости от выбранного штата. Задача не совсем для Excel, но тем не менее поддается решению без привлечения тяжелой артилериии в лице VBA.
Все, что нам надо сделать – это подготовить именованные списки городов включающие в себя код штата, например
Города_FL для Флориды,
Города_TX для Техаса
И познакомится с еще одной замечательной фукцией INDIRECT, позволяющей формировать стандартную Excel-ссылку из строкового значения.
В итоге выражение для валидации будет выглядеть следующим образом:
=INDEX(INDIRECT(«Города_»&B2);0;2)
B2 – адрес ячейки с выбранным кодом штата
И в реальной жизни выглядеть это будет вот так:
6. Выводы
Коллеги, я постарался изложить в статье все наработки, связанные с тестированием алгоритмов, основанных на справочных таблицах. Нам данная техника очень помогла при тестировании весьма непростых систем расчета страховых взносов. Очень надеюсь, что и вам эта информация в чем-то окажется полезной.
Понимая, что теория без практики плохо осаждается даже в светлых головах, вместе с данным материалом вы найдете Excel-файл со всеми реализованными в статье примерами.