www.ПЕРВЫЕ ШАГИ.ru :: Шаг 52 - Автоматизация на основе СУММЕСЛИ

VBA

Шаг 52 - Автоматизация на основе СУММЕСЛИ

Excel предоставляет огромное количество возможностей и знание этих возможностей значительно может помочь при создании приложений. Давайте рассмотрим обычную ситуацию с созданием счетов. У вас есть список товаров с ценами. Вы готовите счет с набором товаров в разных количествах.

Создаем новую книгу и лист переименовываем в "Цены", а на нем создаем два именованных диапазона. Диапазон name и диапазон price. В одном будет название товара, во втором цена. Внимание название товаров должно быть уникальным. То есть в таком варианте если делать как описано в шаге. Конечно сейчас на складах есть одни и теже товары с разными ценами. Но ведь к названию можно что-то добавить ??? Правда же ??? Именовать нужно целую колонку. Зачем ??? Чтобы спокойно добавлять новые товары и не думать о изменениях. Вот посмотрите рисунок демонструющий суть идеи.

52_1.gif (5674 b)

Делаем второй лист с названием "продаем". Здесь мы будем формировать наш счет. Помножить количество на цену и получить сумму, ну это не проблема. А вот как узнать цену исходя из названия ??? Тут нам и поможет СУММЕСЛИ, вот смотрите:

52_2.gif (3815 b)

Здесь написано, что суммировать по диапазону price, если в диапазоне name попадется название равное указанному в ячейке B4. На самом деле если названия уникальны никакого суммирования не будет, просто выберется нужная цена. Почему диапазон сделан на целую колонку ??? Чтобы спокойно добавлять или удалять названия и ни о чем не думать. И еще если в диапазоне указать что-то типа A1:A100, то при растаскивании вниз Excel будет менять адреса. А вот если у Вас диапазон не на всю колонку, то при растаскивании формул диапазон не будет меняться.

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

52_3.gif (3521 b)


Предыдущий Шаг | Следующий Шаг
Автор Каев Артем.