Если время нн меньше 8-и часов, то день остается без изменения, если нет – берется следующий день. Иными словами 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Если время нн меньше 8-и часов, то день остается без изменения, если нет – берется следующий день. Иными словами



КН=день НД + 8:00+ЕСЛИ(время НД<8:00; 0; 1)

или F5=ЦЕЛОЕ(E5)+E$2+ЕСЛИ(ОСТАТ(E5;1)<=E$2;0;1).

Функция ОСТАТ() отделяет дробную часть Е5 (т.е. часы и минуты) от полной даты_времени НД.

Теперь найдем время, отработанное в ночную смену. Если время КД менее НН (дежурство заканчивается до наступления ночи), работы в ночную смену не было. В противном случае находится разность между минимальным значением из КД, КН и максимальным из НД, НН и умножается на 24.

Часов ночной смены=ЕСЛИ(КД<НН; 0;МИН(КД;КН)–МАКС(НД;НН))*24

или G5=ЕСЛИ(C5<E5;0;МИН(C5;F5)–МАКС(B5;E5))*24.

Наконец, мы можем вычислить заработанную сумму.

Оплата=за дневную смену + за ночную смену+30, если была ночная смена

или H5=(D5–G5)*H$2+G5*2*H$2+ЕСЛИ(G5>0;30).

К оформлению. В завершении сделаем так, чтобы оператор, работающий на компьютере, мог легко видеть, кто в настоящее время дежурит. Это существенно, поскольку таблица может иметь большой размер и быстро найти в ней нужную строку не так просто. Для ориентирования во времени в клетку F1 введена функция =ТДАТА() предъявления текущей даты_времени. Значение в этой клетке непрерывно само не обновляется – новое время можно получить, нажав клавишу пересчета F9. Для реализации желаемого установим на клетки А5, А6, А7 условный формат

Условие 1 формула =ЕСЛИ(И($G$1>B6;$G$1<=C6);1),

при выполнении которого (текущее время находится между датой начала и датой конца дежурства) установим для данных шрифт полужирный курсив и отобразим их на желтом фоне. Для того, чтобы в любой текущий момент выявить работающих, нужно только нажать клавишу F9, обновляющую клетку, содержащую текущее время (сейчас дежурит Иван).

  A B C D E F G H
  Стоимость дома $200000            
  Вид скидки: окна на улицу 1 этаж этаж более 100м      
  % скидки: 5% 10% 5% 3%      
  ПРОДАЖА КВАРТИР
  Квартира Площадь Этаж Сторона Оплата со скидкой Эквивал. площадь Цена кварт. Цена 1 м
    70м   у 85% 59,5м $ 34724 $496
    160м   д 97% 155,2м $ 90575 $566
    60м   д 100% 60,0м $ 35016 $584
    80м   у 85% 68,0м $ 39685 $496
  ВСЕГО 370м       342,7м $200000  
      Рис. 5.33        

Пример 5.33. Продажа квартир. Положим, фирме, построившей небольшой жилой дом за 200 000$, требуется установить продажные цены на квартиры, исходя из их площади и потребительских качеств. Устанавливаются скидки на квартиры, находящиеся на первом и последнем (третьем) этаже, на большие квартиры (более 100 кв.м) и квартиры, выходящие на улицу. Все возможные скидки представлены во второй и третьей строках. Буквой “д” обозначены квартиры, выходящие во двор, а буквой “у” – на улицу. Для вычисления цены квартиры введем два технических столбца. В столбце Оплата со скидкой определяется процент стоимости квартир относительно номинальной. Из 100% отнимаются все возможные скидки.

E6=100%–ЕСЛИ(C6=1;$C$3)–ЕСЛИ(C6=4;$C$3)–ЕСЛИ(D6="у";$B$3)–ЕСЛИ(B6>100;$E$3).

 

  A B C D E F G H I J
  ТАРИФЫ:              
  Телефон отдельный 20р              
  спаренный 15р              
  Газ без колонки 3р/ч              
  с колонкой 4р/ч              
  Коммун. услуги без колонки 3р/м              
  с колонкой –10%              
  РАСЧЕТ КВАРТПЛАТЫ
  Квар- тира Площадь Человек Удобства Оплата  
  Э/плита Газ.колонка Телефон (спар/отд) Коммун. услуги Газ Телефон Всего
    100м     + о 270р 28р 20р 318р
    60м   +   с 180р 15р 195р
    70м     +   189р 16р 205р
    80м       о 240р 20р 269р
    90м     +   243р 32р 275р
  ВСЕГО 400м         1122р 85р 55р 1262р
      Рис. 5.3            

В столбце Эквивалентная площадь вычисляется некоторая теоретическая площадь, соответствующая цене со скидкой, F6=B6*E6. Видим, что она равна 342м вместо 370. Отсюда можно определить цену одного квадратного метра с учетом скидок как частное от деления стоимости дома на эту площадь. Таким образом, продажная цена квартиры составит G6=$B$1/$F$10*F6, а стоимость одного квадратного метра в ней H6=G6/B6. Расчеты выполнены верно, поскольку суммарная стоимость всех квартир (G10) равна стоимости дома (B1).

Пример 5.34. Расчет квартплаты. Рассчитать размеры ежемесячной оплаты квартиры ее владельцами в зависимости от площади, наличия и качества предоставляемых удобств.

Положим квартплата состоит из следующих элементов (см. область Тарифы на рисунке):

· Оплата за пользование отдельным или спаренным телефоном (помечается буквами “о” или “с”).

· Оплата за газоснабжение при наличии водонагревательной (помечается значком “+”) колонки и без нее. Рассчитывается на каждого проживающего в квартире человека и только в случае отсутствия электроплит. Считается, что при наличии электроплит, газ к дому не подведен.

· Оплата за коммунальные услуги. Рассчитывается пропорционально площади квартиры. При наличии газовой колонки (помечается значком “+”) она снижается на 10% поскольку централизованное снабжение горячей водой тогда отсутствует (но возрастает сумма, выплат за газ).

 

 

Платежи определяются следующими формулами:

Коммунальные услуги

=площадь_квартиры * тариф_“без_колонки”*ЕСЛИ(колонка есть тариф снижается, иначе остается)

или для первой квартиры

G11=B11*$C$6*ЕСЛИ(E11="+";1+$C$7;1).

Оплата за газ

=ЕСЛИ (нет электроплиты, то 1, иначе 0)*число_человек*

ЕСЛИ (колонка есть, то тариф_“с колонкой”, иначе “без_колонки”)

H11=ЕСЛИ(D11<>"+";1;0)*C11*ЕСЛИ(E11="+";$C$5;$C$4).

Оплата за телефон

=ЕСЛИ (телефон отдельный, то обычный тариф, иначе ЕСЛИ(телефон спаренный, сниженный тариф, иначе 0))

I11=ЕСЛИ(F11="о";$C$2;ЕСЛИ(F11="с";$C$3;0)).

Далее подсчитывается число владельцев электроплит, газовых колонок D11=СЧЁТЕСЛИ(D11:D15;"+"), E11=СЧЁТЕСЛИ(E11:E15;"+") и телефонов F11=СЧЁТЗ(F11:F15).

 

Последнее рассчитывается как число непустых ячеек в диапазоне.

Суммы находятся очевидным образом J11=СУММ(G11:I11), B16= СУММ(B11:B15), C16=СУММ(C11:C15) и т.п.

Пример 5.35. Матрица решений. Иногда принятие решения при выполнении расчетов сопряжено с таким большим числом условий, которые сложно или даже невозможно разместить в клетке. В этом случае можно воспользоваться так называемой матрицей решений, где содержатся все возможные комбинации параметров, влияющих на результат. Положим, возможно выполнение ряда работ (у нас до пяти) в различной комбинации, за которые нужно заплатить определенную цену. Выполнение работы, например, помечается единицей, невыполнение – нулем. Для реализации возможности поиска в столбце Код формируется строка, содержащая все нули и единицы из клеток соответствующей строки матрицы решений,

G2=B2&C2&D2&E2&F2 или G2=СЦЕПИТЬ(B2;C2;D2;E2;F2).

Собственно данные находятся ниже – в списке заказов. Цена работы для первого заказа определяется функцией ВПР(), где в качестве искомой величины задается строка видов работ B7&C7&D7&E7&F7 в заказе, а поиск ведется в столбце Код матрицы решений

G7=ВПР(B7&C7&D7&E7&F7;G$2:H$4;2;0).

Для примера в заказе №3 указана также и недопустимая комбинация работ, повлекшая сообщение об ошибке (нет данных – #Н/Д). Это означает, что следует либо исправить ввод, либо увеличить таблицу решений, включив в нее такую комбинацию.

В таблице реализована матрица из пяти компонентов, однако ясно, что ничто не мешает нам с легкостью сделать ее как угодно большого размера.

  A B C D E F G H
  Матрица решений Работа1 Работа2 Работа3 Работа4 Работа5 Код Цена
               
               
               
ОБРАБОТКА ЗАКАЗОВ
5

               
  Заказ Работа1 Работа2 Работа3 Работа4 Работа5 Цена  
  Заказ1              
  Заказ2              
  Заказ3           #Н/Д Рис. 5.35

 

  A B C D E F G H
  Рабочие дни   ТОРГОВЛЯ В КРЕДИТ  
  04.01   Заказ Банковских дней Дата платежа Сумма с кредитом
  05.01   номер дата сумма
  06.01     04.01     13.01  
  07.01     13.01     15.01  
  08.01     14.01     нет даты  
  11.01     15.01     15.01  
  12.01     16.01     #Н/Д  
  13.01     17.01     #Н/Д  
  14.01              
  15.01              
          Рис. 5.36    

Пример 5.36. Торговля в кредит. Определим дату и сумму, выплачиваемую покупателем за товар, в зависимости от срока последующей оплаты. Чем больше срок оплаты, тем больше эта сумма, поскольку, отпуская товар без предоплаты, продавец дает покупателю кредит. Положим стоимость кредита равна 1% от исходной цены за каждый день кредита. При торговых операциях сроки оплаты обычно указываются не в календарных, а в рабочих днях. Поскольку в общем случае рабочими могут быть и воскресные и субботние дни, использование функций РАБДЕНЬ() и ЧИСТРАБДНИ() оказывается неудобным или невозможным. В виду этого приходится создавать специальную таблицу, содержащую перечень таких дней. На рисунке она помещена в столбце А. Обслуживая клиента, оператор вводит номер, дату и сумму заказа, а также число рабочих дней (в данном случае банковских), через которое должна быть произведена оплата. Наша задача определить Дату платежа, отстоящую от Даты заказа на заданное число рабочих дней и сумму платежа (Сумму с кредитом), которые мы и сообщим покупателю. Для этого нужно найти Дату заказа в столбце А и прибавить к ней число Банковских дней. Функция ПОИСКПОЗ(D4;A:A;0)+F4 находит номер строки в столбце А, отстоящей от даты заказа на число рабочих дней (F4). Чтобы извлечь из этой строки ее содержимое, воспользуемся функцией

=ИНДЕКС(A:A;ПОИСКПОЗ(D4;A:A;0)+F4;1).

На этом можно было бы остановиться, но следует предусмотреть контроль наличия в столбце А даты оплаты. Например, при дате заказа 14 января и сроке оплаты через 23 рабочих дня, функция извлечет данные из строки, отстоящей от строки 9 на 23 позиции ниже, т.е. из 32-ой строки. Поскольку сейчас вся наша таблица заканчивается датой 15 января, ниже находятся только пустые строки. Чтобы избежать неверных результатов, усложним функцию извлечения, сформировав результат "нет даты", если найденное содержимое не больше нуля

G4=ЕСЛИ(ИНДЕКС(A:A;ПОИСКПОЗ(D4;A:A;0)+F4;1)>0;ИНДЕКС(A:A;ПОИСКПОЗ(D4;A:A;0)+F4;1);"нет даты").

При получении сообщения "нет даты", пользователь должен дополнить столбец рабочих дней.

И наконец, вычисляем сумму оплаты с учетом стоимости кредита H4=E4*(1+F4*1%).

К оформлению. Здесь имеет смысл проконтролировать принадлежность и даты заказа к множеству рабочих дней. Если игнорировать этот факт, Exel выдаст сообщение об ошибке #Н/Д (например, клетки G8 и G9). Это можно сделать с помощью условного форматирования для элементов столбца D с условием следующего вида (для D4)

формула =ЕНД(ПОИСКПОЗ(D4;$A:$A;0))

Далее мы можем установить, например, цветовую заливку таких клеток, что привлечет внимание пользователя.

Отсутствие даты заказа в столбце дат может явиться следствием одной из двух причин:

1. В таблицу рабочих дней еще не включена новая дата и ее нужно внести.

2. Дата заказа не является банковским днем (например, фирма торгует и в выходные дни).

Если возможен второй случай, следует предусмотреть адекватную реакцию таблицы – не учитывать день продажи при определении суммы кредита, а начинать отсчет банковских дней, начиная с ближайшего следующего такого дня. В этом случае нужно использовать функцию ПОИСКПОЗ() с параметром, определяющим не точный, а интервальный поиск.

  A B C D E
  Про цесс Темпе- ратура Дав- ление Время ВЕС
  №1        
  №2       2,7
  №3        
  Р ис. 5.37 а. Лист Вес  

Пример 5.37. Трехмерные справочные таблицы. Пусть, результат некоторого технологического процесса, например вес (в тоннах) выходного продукта, зависит от температуры, давления и времени выдержки, причем эти параметры не связаны функционально, а образуют трехмерную область нормативных данных. Наша задача заключается в том, чтобы построить формулы, извлекающие нужные данные из такой трехмерной таблицы.

Положим, возможные температурные режимы представлены уровнями в 70, 80 и 90 градусов (начиная от 70), время выдержки – уровнями в 10, 40 и 60 минут (начиная от 60), давление – 1, 3 и 5 атмосфер (от 1). Поместим эти нормативные данные на отдельном листе с именем НОРМЫ. Представим их в виде трех идентичных по структуре таблиц для фиксированных значений температуры (строки 7-10, 11-14, 15-18 листа НОРМЫ). Для формирования функций поиска нам понадобится также специальная техническая таблица Температура, содержащая указания на нужные области. В строке 2 перечислены все значения температуры. В строке 3 – адреса областей, содержащих веса выходного продукта; в строке 4 – адреса областей, содержащих значения давлений; в 5 строке – адреса областей, содержащих время обработки продукта. Все ссылки вводятся непосредственно как текстовые данные и включают также имя листа (НОРМЫ), где они находятся.

Теперь перейдем к главному – построению формул извлечения ожидаемого веса продукта из нормативных таблиц в зависимости от температуры, давления, и времени обработки. Чтобы было понятно, как построена итоговая функция, проделаем это постепенно. Для клетки Е2 листа ВЕС можем записать

=ИНДЕКС(адрес блока данных ВЕС для температуры 70 град.;

номер строки в блоке ДАВЛЕНИЕ для 2 атм. и 70 град.;

номер столбца в блоке ВРЕМЯ для 70 мин. и 70 град.)

или =ИНДЕКС(нормы!C8:E10; ПОИСКПОЗ(C2;нормы!B8:B10;1); ПОИСКПОЗ(D2;нормы!C7:E7;1)).

  A B C D E
    Температура  
    70гр 80гр 90гр  
  вес нормы!C8:E10 нормы!C12:E14 нормы!C16:E18
  давл. нормы!B8:B10 нормы!B12:B14 нормы!B16:B18
  время нормы!C7:E7 нормы!C11:E11 нормы!C15:E15
     
  70гр Давл\Время 10мин 40мин 60мин
    1атм
    3атм 1,1т 1,5т 1,7т
    5атм 1,8т 2,5т
  80гр Давл\Время 10мин 40мин 60мин
    1атм 1,5т 4,5т
    3атм 1,65т 2,25т 2,55т
    5атм 2,7т 3,75т
  90гр Давл\Время 10мин 40мин 60мин
    1атм
    3атм 2,2т
Рис. 5.37в. Лист НОРМЫ
3,4т

    5атм 3,6т

Все адреса здесь относятся к сечению нормативной таблицы, относя­ще­муся к режиму в 70 градусов, поскольку именно такова темпе­ратура в процессе 1.

Усложним формулу, заменив непосредственные адреса на ссылки, применяя функцию ДВССЫЛ()

=ИНДЕКС(ДВССЫЛ(нормы!B3); ПОИСКПОЗ(C2;ДВССЫЛ(нормы!B4);1); ПОИСКПОЗ(D2;ДВССЫЛ(нормы!B5);1)).

Здесь используется не сама таблица (для 70º), а ссылки на нее, находящиеся в верхней части листа НОРМЫ.

Пока еще функция не позволяет работать с другими температурными режимами. Чтобы это было возможным, мы заменим фиксированные адреса нормы!$B$3, $B$4 и $B$5 на адреса, найденные функцией ГПР()

E2= ИНДЕКС(ДВССЫЛ(ГПР(B2;нормы!$B$2:$D$5;2;1));

ПОИСКПОЗ(C2;ДВССЫЛ(ГПР(B2;нормы!$B$2:$D$5;3;1));1);

ПОИСПОЗ(D2;ДВССЫЛ(ГПР(B2;нормы!$B$2:$D$5;4;1));1)).

Именно это выражение и использовано в таблице на листе ВЕС. Оно может с сохранением функциональности беспрепятственно копироваться во все другие ее строки.

К оформлению. 1. Единицы измерения атм, мин, т и гр при параметрах процесса, конечно, являются не элементами данных, а пользовательскими форматами. 2. Если справочные таблицы велики, их удобнее располагать каждую на отдельном листе.

Когда справочных таблиц немного, то можно, используя функцию ЕСЛИ() сразу записать необходимую формулу без формирования текстовых ссылок. В нашем случае можно создать листы содержащие данные для температурных режимов от 70 градусов, от 80-ти и от 90 (рис. 6.38г). Дадим им имена г70, г80 и г90 соответственно. Лист НОРМЫ более не нужен. Выражение для извлечения необходимых данных строится следующим образом

вес=ЕСЛИ(температура < 80, данные извлекаются из листа г70;

ЕСЛИ(температура < 90, данные извлекаются из листа г80;

иначе данные извлекаются из листа г90)).

Или в виде формулы

E2=ЕСЛИ(B2<80;ИНДЕКС(г70!$A$2:$D$5; ПОИСКПОЗ(C2;г70!$A$2:$A$5;1);ПОИСКПОЗ(D2;г70!$A$2:$D$2;1));

ЕСЛИ(B2<90;ИНДЕКС(г80!$A$2:$D$5; ПОИСКПОЗ(C2;г80!$A$2:$A$5;1);ПОИСКПОЗ(D2;г80!$A$2:$D$2;1));

ИНДЕКС(г90!$A$2:$D$5; ПОИСКПОЗ(C2;г90!$A$2:$A$5;1);ПОИСКПОЗ(D2;г90!$A$2:$D$2;1)))).

Пример 5.38. Формирование обобщающих сводок. Положим, на листе ЗАРП имеется таблица, отражающая ежедневные заработки рабочих. Задача состоит в том, чтобы на листе СВОДКА сформировать обобщенные данные, где каждый работник представлен только одной строкой, содержащей число отработанных дней (всего и в выходные) и сумму зарплаты (также всего и в выходные). Здесь для этой цели используются формулы счёта и суммирования с условием, а в более сложных случаях – функции обработки массивов. Рассмотрим их на примере расчетов для Петра. Подсчитаем количество отработанных им дней

Всего дней отработано Петром = подсчет числа ячеек в А2:А10, где внесен Петр

  A B C D E
  Сводка за месяц
  Имя Рабочих дней Зарплата
  Всего Выходных Всего В вых.
  Петр        
  Иван        
  Олег        
  Сергей        
  Итого        
    Рис.5.3 8.б СВОДК А  

или B4=СЧЁТЕСЛИ(зарп!A$2:A$10;A4).

Здесь обратим внимание на то, что в область подсчета включен заголовок (клетка А2) и итоговая строка Всего (клетка А10). Это позволит нам не беспокоиться об изменении размеров таблицы на листе ЗАРП – все новые строки, вставленные между строкой 2 и 10, автоматически попадут в область подсчета сводки.

Для подсчета числа рабочих дней, приходящихся на выходные, нам придется воспользоваться функцией для массивов, поскольку здесь анализируются одновременно два условия – имя работника (Петр) и номер дня недели (больше 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).

Здесь в область обработки включена и сама строка Итого (это обеспечивает возможность вставки новых строк без необходимости корректировки итогового выражения), однако в суммировании сама она не участвует – складывается только содержимое клеток, для которых в столбце А нет слова Итого (условие “<>Итого”).

Пример 5.39. Обобщение данных о выручке. Рассмотрим другую похожую задачу. Пусть на листе ПРОДАЖИ последовательно фиксируются факты продаж недвижимости (в тысячах рублей) агентами риэлторской фирмы, а в листе ИТОГИ подсчитываются суммы продаж по месяцам для каждого из работников.

Так, продажи Петра в январе подсчитываются формулой

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)).

В F3 условие ">0" обеспечивает суммирование только тех клеток, которые в заголовке имеют цифры (т.е. номера месяцев). Клетки, содержащие текстовые данные (Месяц и å) интерпретируются Excel как нули. В B7 блок суммирования ограничен функциями ИНДЕКС(), которые гарантируют правильный диапазон суммирования при включении в таблицу новых строк. В данном случае в качестве начального адреса суммирования нельзя было использовать клетку B2, поскольку в ней находится число (номер месяца), которое, естественно, не должно суммироваться. Здесь применяется функция ИНДЕКС(B:B;3), ссылающаяся на клетку B3. Правильность вычислений подтверждает совпадение общих сумм продаж в листах Продажи и Итоги.

  A B C     A B C D E F
  Продажи     Итоги по месяцам
  Продавец Дата å     Месяц:         å
  Петр 12.янв       Петр          
  Иван 04.фев       Иван          
  Олег 20.фев       Олег          
  Иван 03.мар       Сергей          
  Олег 12.мар       Итого          
  Петр 30.мар                  
  Всего 6 дней       Рис. 5.39б. Лист ИТОГИ
Рис. 5.39а. Лист ПРОДАЖИ    

Пример 5.40. Текущий анализ продаж и обобщение данных. Положим, при оптовой торговле менеджер вводит имя фирмы-поку­па­теля, дату продажи и сумму покупки (Текущий платеж). Сделаем так, чтобы 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
  Фирма Даты продаж Текущий платеж Нарастающий итог Лидер продаж Преды- дущая продажа
  Число продаж Сумма продаж
    Весна 01.май       Весна  
    Старт 02.май          
    Старт 20.май       Старт 02.май
    Весна 02.май       Весна 01.май
    Спорт 18.май          
    Старт 28.май         20.май
    Весна 03.июнь       Весна 02.май
    Весна 03.июнь       Весна
Рис. 5.40
03.июнь

    Спорт 06.июнь         18.май

 

  A B C D E F G H I J
  Расписание поездов   Заявки пассажиров
  Время отправлен. Номер поезда Город назначения Вид   Город назначения Вид Время отправления Номер поезда
    желаемое ближайшее возможное
  6:05   Рязань э   Рязань э 9:36 20:30  
  9:00   Киев п   Курск п 7:12 11:05  
  11:05   Курск п   Киев п 12:00 15:40  
  15:40   Киев п            
  20:30   Рязань э            
  21:00   Курск э            
  23:30   Рязань п         Рис. 5.  

Пример 5.41. Продажа железнодорожных билетов. В кассе вокзала требуется подобрать пассажиру нужное время отправления (I4) и номер поезда (J4), в заданный город назначения (F4), на желаемом виде поезда (G4). Последний может быть почтовым (п) или экспрессом (э). Пассажир указывает удобное для него время отправления (H4), начиная с которого можно подбирать поезда. Все требования клиента фиксируются в столбцах F:H, а рас­писание – в столбцах А:D. Таким образом, нам следует выделить нужное подмножество поездов из которых затем выбрать номер поезда с самым ближним временем отправления, т.е. как бы сформировать фильтр (не прибегая, однако к прямой фильтрации данных).

Последовательно построим необходи­мые выражения. Сначала вычислим ближайшее подходящее время отправления. Для этого сформируем подмножество выбора поездов для первой заявки на билеты (в Рязань). Это

Город_назначения="Рязань" И Вид_поезда="э" И Ближайшее_время_отправления ³ Желаемое_время_отправления.

Поскольку при работе с массивами нельзя использовать логические функции И(), строим нужное выражение применяя вложенные функции ЕСЛИ()

=ЕСЛИ(город_назначения="Рязань"; ЕСЛИ(вид_поезда="э";ЕСЛИ(время_отправления ³ время_желаемое; …)))

или =ЕСЛИ(C4:C10=F4;ЕСЛИ(D4:D10=G4;ЕСЛИ(A4:A10>=H4; …))).

Теперь находим ближайшее возможное время отхода поезда, применяя функцию МИН() к столбцу А расписания, содержащему время отправления (блок 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 располагает и специальными мощными инструментами для этих целей (инструменты Фильтрация, Итоги, Консолидация, Сводная таблица).

 

ЗАДАЧИ ДЛЯ САМОСТОЯТЕЛЬНОГО РЕШЕНИЯ



Поделиться:


Последнее изменение этой страницы: 2016-04-08; просмотров: 245; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.243.184 (0.097 с.)