Присвойте этой таблице имя «Справочник_товары». Данное имя будет доступно с любого листа.
Таблицы «Продажи» и «Поставки» являются самыми большими, поскольку в нормально работающем магазине идет непрерывный процесс продаж и за счет поставок проданные товары постоянно обновляются. Поэтому и записи в этих таблицы добавляются ежедневно и в больших количествах.
Все описания ориентированы на размещение данных согласно приводимым рисункам.
Если вы разместите данные в других ячейках, то соответственно должны быть откорректированы адреса во всех формулах.
Для студентов экономических специальностей самым простым методом получения больших объемов модельных данных является использование встроенных функций.
Рассмотрим эту технологию на примере заполнения таблицы продаж.
Пусть шапка этой таблицы имеет следующий вид:
|
| С
| D
| E
| F
| G
| H
|
10
|
|
|
|
|
|
|
|
11
|
| Дата продажи
| Код товара
| Наименование
| Количество
| Цена
| Сумма
|
12
|
|
|
|
|
|
|
|
13
|
|
|
|
|
|
|
|
И пусть в ней должны храниться сведения о продажах за прошедший месяц. Предположим также, что в день у нас производится по десять продаж. Тогда общее количество записей будет равно 300.Очевидно, что
– колонки С, D и F должны заполняться случайно;
– колонки E, и G будут заполняться исходя из данных справочника по товарам;
– колонка H должна рассчитываться по данные колонок F и G.
Для заполнения колонок случайными данными можно использовать имеющуюся в Excel функцию генерации случайных чисел – СЛЧИС(). Она генерирует случайные числа из диапазона 0..1. Для генерации целых чисел из произвольного диапазона используется формула:
=А + ЦЕЛОЕ((В – А+1)*СЛЧИС())(5.7)
где А – нижняя граница необходимого диапазона;
В – верхняя граница диапазона;
ЦЕЛОЕ – имеющаяся в Excel функция округления дробных чисел.
Начнем с колонки «Дата продажи».
Для этой колонки нам необходимо определить параметры A и B в формуле (5.7).
Для определения параметра A:
– в отдельную ячейку (например, в A1) вводим начальную дату продаж – пусть это будет 01.10.09. Задаем для этой ячейки формат «общий». В ней получится число 40087. Это будет число дней, прошедших с сначала прошлого века (с 1900 года).
Поэтому в ячейку С12 вводим формулу:
= 40087+ ЦЕЛОЕ(30 * СЛЧИС())
и копируем ее на 300 строк данного столбца.
Вы должны были обратить внимание на то, что после каждой манипуляции с данными их значения меняются. Это свойство функции СЛЧИС.
Чтобы избавиться от этого эффекта:
– выделяем столбец C и копируем его в буфер;
– не снимая выделения произведем перекопирование данных командой Правка > Специальная ставка > Значения;
– не снимая выделения, преобразуем данные столбца C в формат «Дата» (Формат > Ячейки > Дата).
Не забудьте удалить из А1 ненужную теперь дату.
По аналогичной схеме заполняется колонка D – «Код товара»:
– в ячейку D12 вводится формула
= 1+ ЦЕЛОЕ(6 *СЛЧИС())
(здесь 6 – количество товаров);
– формула копируется на 300 строк;
– путем перекопированния столбца D избавляемся от формулы.
Аналогично заполняется колонка F – «Количество»:
– в ячейку F12 вводится формула:
= 1+ ЦЕЛОЕ(10 *СЛЧИС())
(здесь 10 – количество товаров, т.е. больше 10–и кепок в одни руки не даем!);
– формула копируется на 300 строк;
– путем перекопированния столбца F избавляемся от формулы.
Для заполнения столбца E в ячейку E12 вводим формулу:
=ВПР(D12;Справочник_товары;2)
и копируем ее на 300 строк.
Формула содержит функцию ВПР, которая ищет значение поля D12 в первой колонке справочной таблицы товаров и в качестве результата берет значения из второй колонки таблицы товаров.
В ячейку G12 должна быть введена формула расчета розничной цены исходя из данных справочника по товарам. В общем виде она выглядит следующим образом:РозничнаяЦена = ОптоваяЦена*(1+Наценка)(5.8)При реализации в Excel эта формула должна «сама» по коду товара из столбца D брать с листа Товары» значения оптовой цены и наценки. Для этого также используется функция ВПР. Т.е. в G12 вводится формула:= ВПР(D12; Справочник_товары;4) * (1 + ВПР(D12; Справочник_товары;5))Обратите внимание, в первой ВПР оптовая цена берется из четвертой колонки справочной таблицы, а во второй – наценка берется из пятой колонки справочной таблицы. Данная формула копируется на весь столбец G.И, наконец, в столбец H вводится формула расчета суммы покупки (с последующим копированием): = F12 * G12. Таблица заполнена.Осталось только отсортировать ее по полю «Дата продажи» и присвоить имя – «Данные_продаж».По аналогичной схеме можно было бы создать и таблицу «Поставки».Однако, учитывая учебный характер пособия, можно просто скопировать таблицу продаж на лист «Поставки». При этом необходимо только откорректировать формулу в столбце «Цена», так чтобы в нем вычислялась оптовая, а не розничная цена. Если данные скопированы в те же ячейки, то откорректированная формула должна иметь вид:= ВПР(D12; Справочник_товары;4) Кроме того, в данных о поставках необходимо отразить сведения о поставщиках каждого товара. Эти сведения могут понадобиться для определения сумм задолженностей каждому поставщику.Для этого добавляется колонка «Поставщик» (столбец I), в который вводится формула:= ВПР(D12; Справочник_товары;6)
5.2.3.4.2. Работа с данными В этом разделе вся работа ведется на листе «Продажи». Очевидно, что при необходимости все описанные здесь методы можно применить к данным любого другого листа.Для операций по вводу, удалению и корректировке данных в Excel имеется встроенное средство – форма ввода данных. Она вызывается из главного меню командой:
Данные > Форма.С помощью появившейся формы можно выполнить все указанные операции.Для «цивильного» вызова этой формы создадим на листе кнопку с именем «Данные» и для нее создадим макрос следующего содержания:
Sub Работа_с_данными()Range("C11").Select ‘Переход на ячейку БДCommandBars.FindControl(ID:=860).Execute ‘ВызовформывводаданныхActiveWorkbook.Names("Данные_продаж").DeleteActiveCell.CurrentRegion.Name = "Данные_продаж"End SubПри вводе или удалении данных размеры БД могут изменяться. По этой причине в макрос добавлены еще две команды:первая – удаляет имеющееся имя БД:вторая – определяет новый размер БД и присваивает ему только что удаленное имя.
5.2.3.4.3. СортировкаСортировка является типовой операцией с базами данных и возможность ее реализации практически обязательно должна быть предусмотрена. Для ее реализации можно предложить следующий интерфейс – см. рис.5.6.Рис. 5.6. Интерфейс реализации операции
СортировкаС помощью предлагаемого интерфейса сортировка выполняется следующим образом:– из списка «
Сортировать по…» выбирается поле сортировки (на рис. 5.5 уже выбрано поле «
Дата продажи») и щелчок по кнопке «
Сортировать».
Создание со списка полей– на текущем листе (где–то в стороне, так, чтобы этого потом не было видно на экране) печатается список полей:
| P
| Q
| R
|
3
|
|
|
|
4
|
|
|
|
5
|
| Дата продажи
|
|
6
|
| Код товара
|
|
7
|
| Наименование
|
|
8
|
| Количество
|
|
9
|
| Цена
|
|
10
|
| Сумма
|
|
11
|
| 3
|
|
12
|
|
|
|
|
|
|
|
– вызываем панель форм (Вид > Панели > Инструментов >Формы), на ней выбираем элемент «Поле со списком» и рисуем его в районе ячейки D3 (как на рис. 5.6);– ставим мышь на нарисованный элемент, щелчком ПКМ вызываем контекстное меню и выбираем пункт «Формат объекта», при этом откроется окно формата создаваемого списка (рис. 5.7):Рис. 5.7. Окно Формат элемента управления– в поле «Формировать список по диапазону» указать местоположение списка полей;– в поле «Связь с ячейкой» указать ячейку, в которую будет записываться номер выбранного поля. – щелкнуть «Ok».Произведите несколько выборок в получившемся списке и посмотрите, что происходит в ячейке Q11.Создание макроса для сортировкиВыполните команды: Сервис > Макрос > Начать запись > На запрос об имени макроса напечатайте «Сортировка» > «Ok» > Установите курсор в C11 > Данные > Сортировка > В качестве поля сортировки выберите «Наименование» > «Ok» > Сервис > Макрос > Остановить запись.Создание кнопки для запуска макроса– с панели «Формы» взять элемент «Кнопка» и нарисовать ее районе ячейки E3 (как на рис. 5.6):– на запрос о назначении макроса указать макрос «Сортировка»;– исправить надпись на кнопке.Если сейчас щелкнуть по созданной кнопке, то данные должны будут отсортироваться по полю «Наименование».Модификация макросаТочно так же можно сделать кнопки для сортировки по остальным полям. Но все это как–то «не смотрится». Тем более, что работа кнопки никак не зависит от выбранного в списке поля сортировки. Посмотрим, что записано в созданном макросе. Выполним команды Сервис > Макрос > Макросы > Выбрать макрос «Сортировка» > Изменить.Появится текст макроса.Sub Сортировка()Range("C11").SelectRange("Данные