 
        
        - •Перекачка отстой фильтрация выдержка розлив к1 к2 к3 к4 к5
- •1. Рассчитаем помощь малооплачиваемым.
- •2. Остаток премии (если есть) делится уже между всеми работниками (включая и малооплачиваемых) пропорционально их зарплате
- •2. Уменьшение стоимости за счет естественного износа в течение срока амортизации. Ежегодно стоимость уменьшается на одинаковую часть (например станок на 1/30).
- •"Остаток:"???"дн"; [красный]"доплата"???"дн"; [синий]"съезд"
- •Условие 1
- •8Итого7232075
8Итого7232075
Рис. 6.39б. Лист СВОДКА
Для подсчета числа рабочих дней, приходящихся на выходные, нам придется воспользоваться функцией для массивов, поскольку здесь анализируются одновременно два условия – имя работника (Петр) и номер дня недели (больше 5)
Дней в выходные отработано Петром
=подсчет ячеек в А2:А10, где внесен Петр И день=выходной
или C4 {=СЧЁТ(ЕСЛИ((зарп!A$2:A$10=A4)*
(ДЕНЬНЕД(зарп!B$2:B$10;2)>5);1))}.
Похожим образом строятся формулы для расчета зарплаты, но только используется функция суммирования ячеек C2:C10 из колонки Сумма
D4=СУММЕСЛИ(зарп!A$2:A$10;A4;зарп!C$2:C$10),
E4 {=СУММ(ЕСЛИ((зарп!A$2:A$10=A4)*
(ДЕНЬНЕД(зарп!B$2:B$10;2)>5);зарп!C$2:C$10;0))}.
Вертикальные суммы в обоих листах должны строиться таким образом, чтобы вставки/удаления строк не требовали изменения формул. Ранее мы подробно (в начале главы 6) уже обсуждали этот вопрос. Еще один подход применен ниже для листа СВОДКА
В8=СУММЕСЛИ($A$3:$A$8; "<>Итого"; $B$3:$B$8),
С8=СУММЕСЛИ($A$3:$A$8; "<>Итого"; $C$3:$C$8),
D8=СУММЕСЛИ($A$3:$A$8; "<>Итого"; $D$3:$D$8),
E8=СУММЕСЛИ($A$3:$A$8; "<>Итого"; $E$3:$E$8).
Здесь в область обработки включена и сама строка Итого (это обеспечивает возможность вставки новых строк без необходимости корректировки итогового выражения), однако в суммировании сама она не участвует – складывается только содержимое клеток, для которых в столбце А нет слова Итого (условие “<>Итого”).
Пример 6.40. Обобщение данных о выручке.
Рассмотрим другую похожую задачу. Пусть на листе ПРОДАЖИ последовательно фиксируются факты продаж недвижимости (в тысячах рублей) агентами риэлторской фирмы, а в листе ИТОГИ подсчитываются суммы продаж по месяцам для каждого из работников.
Так, продажи Петра в январе подсчитываются формулой
B3 {=СУММ(ЕСЛИ((продажи!$A$2:$A$9=$A3)*
(МЕСЯЦ(продажи!$B$2:$B$9)=B$2);продажи!$C$2:$C$9))}.
Остальные клетки листа заполняются путем копирования В3 в область итогов по месяцам B3:E6, например,
C4 {=СУММ(ЕСЛИ((продажи!$A$2:$A$9=$A4)*
(МЕСЯЦ(продажи!$B$2:$B$9)=C$2);продажи!$C$2:$C$9))}.
Итоговые функции выглядят следующим образом:
F3=СУММЕСЛИ($A$2:$F$2;">0";$A3:F3),
B7=СУММ(ИНДЕКС(B:B;3):ИНДЕКС(B:B;СТРОКА()–1)).
| 
 | A | B | C | 
 | 
 | A | B | C | D | E | F | 
| 1 | Продажи | 
 | 1 | Итоги по месяцам | |||||||
| 2 | Продавец | Дата |  | 
 | 2 | Месяц: | 1 | 2 | 3 | 4 |  | 
| 3 | Петр | 12.янв | 300 | 
 | 3 | Петр | 300 | 0 | 200 | 0 | 500 | 
| 4 | Иван | 04.фев | 400 | 
 | 4 | Иван | 0 | 400 | 250 | 0 | 650 | 
| 5 | Олег | 20.фев | 300 | 
 | 5 | Олег | 0 | 300 | 450 | 0 | 750 | 
| 6 | Иван | 03.мар | 250 | 
 | 6 | Сергей | 0 | 0 | 0 | 0 | 0 | 
| 7 | Олег | 12.мар | 450 | 
 | 7 | Итого | 300 | 700 | 900 | 0 | 1900 | 
| 8 | Петр | 30.мар | 200 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
| 9 | Всего | 6 дней | 1900 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
 | 
Рис. 6.40а. Лист ПРОДАЖИ Рис. 6.40б. Лист ИТОГИ
В F3 условие ">0" обеспечивает суммирование только тех клеток, которые в заголовке имеют цифры (т.е. номера месяцев). Клетки, содержащие текстовые данные (Месяц и ) интерпретируются Excel как нули. В B7 блок суммирования ограничен функциями ИНДЕКС(), которые гарантируют правильный диапазон суммирования при включении в таблицу новых строк. В данном случае в качестве начального адреса суммирования нельзя было использовать клетку B2, поскольку в ней находится число (номер месяца), которое, естественно, не должно суммироваться. Здесь применяется функция ИНДЕКС(B:B;3), ссылающаяся на клетку B3. Правильность вычислений подтверждает совпадение общих сумм продаж в листах Продажи и Итоги.
Пример 6.41. Текущий анализ продаж и обобщение данных.
Положим, при оптовой торговле менеджер вводит имя фирмы-покупателя, дату продажи и сумму покупки (Текущий платеж). Сделаем так, чтобы Excel сам подставлял номер сделки по порядку (столбец А), а также для каждой новой строки отображались: общее число продаж, осуществленных с данной организацией; нарастающая сумма продаж (нужно для вычисления скидок). Кроме того, в столбце Лидер продаж фиксируется имя фирмы, сделавшей в общей сложности закупки на максимальную сумму, а в столбце H – дата последней сделки с этой фирмой.
Рабочие формулы приведены ниже
A3=СЧЁТ(A$2:A2)+1,
E3=СЧЁТЕСЛИ(B$3:B3;B3),
F3=СУММЕСЛИ(B$3:B3;B3;D$3:D3),
G3=ЕСЛИ(МАКС(F$3:F3)=F3;B3;),
H3 {=МАКС(ЕСЛИ(B$2:B2=B3;C$2:C2))}.
Формула (А3) для автонумерации строк, записанная в таком виде, будет работать только при внесении новых строк в конец таблицы. При дополнении таблицы в любом другом месте перенумерация нижележащих строк осуществляться не будет. Чтобы это стало возможным, ее придется усложнить A3=СЧЁТ(A$2:ИНДЕКС(A:A;СТРОКА( )–1))+1.
| 
 | A | B | C | D | E | F | G | H | 
| 1 | № | Фирма | Даты продаж | Текущий платеж | Нарастающий итог | Лидер продаж | Преды- дущая продажа | |
| 2 | Число продаж | Сумма продаж | ||||||
| 3 | 1 | Весна | 01.май | 20 | 1 | 20 | Весна | 
 | 
| 4 | 2 | Старт | 02.май | 10 | 1 | 10 | 
 | 
 | 
| 5 | 3 | Старт | 20.май | 50 | 2 | 60 | Старт | 02.май | 
| 6 | 4 | Весна | 02.май | 100 | 2 | 120 | Весна | 01.май | 
| 7 | 5 | Спорт | 18.май | 30 | 1 | 30 | 
 | 
 | 
| 8 | 6 | Старт | 28.май | 50 | 3 | 110 | 
 | 20.май | 
| 9 | 7 | Весна | 03.июнь | 60 | 3 | 180 | Весна | 02.май | 
| 10 | 8 | Весна | 03.июнь | 20 | 4 | 200 | Весна | 03.июнь | 
| 11 | 9 | Спорт | 06.июнь | 10 | 2 | 40 | 
 | 18.май | 
Рис. 6.41
Пример 6.42. Продажа железнодорожных билетов.
В кассе вокзала требуется подобрать пассажиру нужное время отправления (I4) и номер поезда (J4), в заданный город назначения (F4), на желаемом виде поезда (G4). Последний может быть почтовым (п) или экспрессом (э). Пассажир указывает удобное для него время отправления (H4), начиная с которого можно подбирать поезда. Все требования клиента фиксируются в столбцах F:H, а расписание – в столбцах А:D. Таким образом, нам следует выделить нужное подмножество поездов из которых затем выбрать номер поезда с самым ближним временем отправления, т.е. как бы сформировать фильтр (не прибегая, однако к прямой фильтрации данных).
Последовательно построим необходимые выражения. Сначала вычислим ближайшее подходящее время отправления. Для этого сформируем подмножество выбора поездов для первой заявки на билеты (в Рязань). Это
Город_назначения="Рязань" И Вид_поезда="э" И
Ближайшее_время_отправления  Желаемое_время_отправления.
Поскольку при работе с массивами нельзя использовать логические функции И( ), строим нужное выражение применяя вложенные функции ЕСЛИ()
=ЕСЛИ(город_назначения="Рязань"; ЕСЛИ(вид_поезда="э"
ЕСЛИ(время_отправления  время_желаемое; …)))
или =ЕСЛИ(C4:C10=F4;ЕСЛИ(D4:D10=G4;ЕСЛИ(A4:A10>=H4; …))).
| 
 | A | B | C | D | E | F | G | H | I | J | 
| 1 | Расписание поездов | 
 | Заявки пассажиров | |||||||
| 2 | Время отправлен. | Номер поезда | Город назначения | Вид | 
 | Город назначения | Вид | Время отправления | Номер поезда | |
| 3 | 
 | желаемое | ближайшее возможное | |||||||
| 4 | 6:05 | 1 | Рязань | э | 
 | Рязань | э | 9:36 | 20:30 | 34 | 
| 5 | 9:00 | 2 | Киев | п | 
 | Курск | п | 7:12 | 11:05 | 12 | 
| 6 | 11:05 | 12 | Курск | п | 
 | Киев | п | 12:00 | 15:40 | 6 | 
| 7 | 15:40 | 6 | Киев | п | 
 | 
 | 
 | 
 | 
 | 
 | 
| 8 | 20:30 | 34 | Рязань | э | 
 | 
 | 
 | 
 | 
 | 
 | 
| 9 | 21:00 | 5 | Курск | э | 
 | 
 | 
 | 
 | 
 | 
 | 
| 10 | 23:30 | 9 | Рязань | п | 
 | 
 | 
 | 
 | 
 | 
 | 
Рис. 6.42
Теперь находим ближайшее возможное время отхода поезда, применяя функцию МИН() к столбцу А расписания, содержащему время отправления (блок A4:A10) поездов
I4 {=МИН(ЕСЛИ(C$4:C$10=F4;
ЕСЛИ(D$4:D$10=G4;ЕСЛИ(A$4:A$10>=H4;A$4:A$10))))}.
Или короче, если использовать операцию умножения
I4 {=МИН(ЕСЛИ((C$4:C$10=F4)
*(D$4:D$10=G4)*(A$4:A$10>=H4);A$4:A$10))}.
Имея время отправления (I4), далее легко найти номер поезда
J4=ВПР(I4;A$4:B$10;2;1).
Если время отправления не нужно, в I4 можно сразу показать номер поезда
I4 {=МИН(ЕСЛИ((C$4:C$10=F4)*
(D$4:D$10=G4)*(A$4:A$10>=H4);B$4:B$10))}.
 
Кроме рассмотренных функций и приемов обобщения данных, Excel располагает и специальными мощными инструментами для этих целей (см. гл. 8 “Обобщение данных”).
	Excel:
	практическое руководство	
