Описание проблемы
Большинство перевозимых грузов имеет прямоугольную форму — ящики, коробки, упаковки и т.д. При погрузке на транспорт (автомобиль, вагон, контейнер) ящиков в первый раз, предварительно происходит оценка — как оптимально расположить этот груз, чтобы в ограниченный объем вошло максимальное количество ящиков или как вместить в это пространство их необходимое количество. Довольно часто расположение ящиков производится интуитивно. При этом возможны дополнительные потери времени или заполнение ограниченного объема не является самым эффективным. В дальнейшем будем считать, что осуществляется загрузка автомобиля, и габариты ограничены размерами кузова.
Идеальный случай — когда размеры ящиков кратны размерам кузова машины. Тогда посчитать количество вмещаемых ящиков несложно. Второй простой вариант — когда на ящиках указано их возможное расположение, и они размещаются в один ряд.
Предположим, что размеры ящиков и кузова машины не кратны, и что эти ящики можно располагать как угодно, то есть на них нет маркировки "верх". В таком случае возможно шесть вариантов расположения груза, которые показаны на рис. 10.1.
Рис. 10.1. Возможное расположение прямоугольных ящиков с грузом в кузове машины
На рис. 10.1. указаны номера вариантов возможного расположения груза в кузове, а также описание варианта расположения ящиков по отношению к переднему борту автомобиля. Например, Вариант 1 — Ширина х Длина х Высота предполагает, что ящик будет расположен шириной по ширине кузова, длиной по длине и высотой по высоте.
Рис. 10.2. Наименования сторон габаритов груза, применяемые в разрабатываемом приложении в качестве имен ячеек, в которые будет осуществляться ввод этих размеров
Груз имеет следующие параметры:
- ширина — Груз_Ширина;
- длина — Груз_Длина;
- высота — Груз_Высота.
Кузов автомобиля имеет следующие параметры (рис. 10.3.):
- ширина — назовем его Машина_Ширина;
- длина — Машина_Длина;
- высота — Машина_Высота.
Рис. 10.3. Наименования сторон габаритов кузова автомобиля, применяемые в разрабатываемом приложении в качестве имен ячеек, в которые будет осуществляться ввод этих размеров
Исходные данные
Книге, в которой будет производиться расчет оптимальной загрузки транспорта, присвойте имя Груз. Все расчеты будут производиться на одноименном листе Груз.
Исходные данные вводятся в две небольшие таблицы с указанием габаритов кузова машины (диапазон ячеек В1:С4) и габаритов груза (диапазон ячеек В6:С9), а также количество ящиков, которые желательно разместить в этом кузове (ячейка С11). Ячейкам, в которые будут вводиться габариты груза и кузова, присвойте имена, показанные на рис. 10.2. и 10.3.
В качестве единицы измерения будут указаны метры, хотя это и не так и важно. В правой части рабочего листа на рис. 10.4. находится таблица с выходными параметрами, которая будет рассмотрена в конце этой главы. Задача приложения — найти оптимальные варианты загрузки автомобиля, при которых в кузов должно поместиться максимальное количество ящиков.
Рис. 10.4. Таблицы с введенными габаритами груза и транспорта
Предполагаемая последовательность заполнения кузова автомобиля
Прежде чем приступить к созданию модели, необходимо продумать последовательность выполнения расчетов, которые в свою очередь предполагают виртуальную последовательность погрузки ящиков в кузов. Немаловажной деталью является и определение позиции наблюдающего за погрузкой, например, с целью- какой угол является правым или левым. Предполагаем, что наблюдение за погрузкой будет осуществляться от заднего борта автомобиля.
Предполагаем, что последовательность заполнения кузова автомобиля ящиками с грузом будет разделена на несколько этапов, каждый из которых предполагает погрузку партии ящиков.
Первый этап — загрузка первой партии (партия-1), которая будет производиться от левого дальнего угла кузова при возможном размещении груза по одному из шести выбранных вариантов. При моделировании возможного размещения ящиков первой партии, должна присутствовать возможность анализа размещения ящиков по всем шести вариантам. При этом исходными данными для расчета будут служить значения габаритов кузова, которые введены в таблицу исходных данных (рис. 10.4.).
На рис. 10.5. в качестве примера показано расположение первой партии груза по варианту 1.
Рис. 10.5. Заполнение кузова автомобиля первой партией (выбрано расположение по варианту 1 — Ширина х Длина х Высота)
После погрузки первой партии ящиков в кузове может остаться свободное пространство:
- с правой стороны кузова;
- в задней части кузова;
- в верхней части кузова.
Следовательно для последующих расчетов исходными данными будут служить уже значения габаритов оставшихся трех свободных объемов пространства кузова, не занятые ящиками первой партии.
Следующей, второй партией (партия-2), например, осуществляется загрузка свободного пространства кузова от правой линии загруженных ящиков до правого борта кузова по всей длине кузова и на всю высоту кузова (рис. 10.6.). Предполагаемое расположение груза на рисунке выбрано по варианту 6 — Высота х Ширина х Длина.
Рис. 10.6. Заполнение свободного пространства кузова автомобиля второй партией ящиков с грузом по варианту 6 размещения
Третьей партией (партия-3) осуществляется загрузка свободного пространства кузова от линии загруженных ящиков первой партии по ширине кузова до правой линии загруженных ящиков второй партии и на всю высоту кузова (рис. 10.7.). Ящики третьей партии на рисунке загружаются по варианту 5 — Ширина х Высота х Длина.
Рис. 10.7. Заполнение свободного пространства кузова автомобиля третьей партии по варианту 5 размещения
И последняя партия груза (партия-4) будет упаковываться, при наличии свободного пространства, поверх первой партии. Последовательность загрузки при желании может быть изменена, но результат от этого не изменится.
Определение оптимального варианта размещения первой партии груза
В зависимости от выбранного варианта размещения первой партии груза, в кузов автомобиля может поместиться различное количество ящиков этой партии. Создаваемая таблица должна учитывать выбираемый вариант размещения груза, производить расчет помещаемых ящиков по ширине, длине и высоте кузова, а также общее количество ящиков в первой партии и используемый объем кузова автомобиля.
Создание таблицы для расчета объема занимаемого первой партией груза
Определение оптимального заполнения кузова машины первой партией груза будет производиться в таблице, расположенной в области А13:Н21 (рис. 10.8.).
Рис. 10.8. Таблица для расчета количества помещаемых ящиков и заполнения пространства кузова при размещении первой партии груза с числовым примером
Таблица состоит из:
- столбец А — Выбор, предназначен для ввода признака выбора устраивающего варианта размещения груза в кузове автомобиля;
- столбец В — Расположение, указывает — каким образом будет расположен груз;
- столбец С -Вариант расположения, для ввода записи примечаний (варианта расположения);
- столбец D — По ширине производит расчет — сколько ящиков можно будет расположить по ширине автомобиля при каждом варианте расположения груза;
- столбец Е — По длине, производит расчет — сколько ящиков можно будет расположить по длине автомобиля при каждом варианте расположения груза;
- столбец F — По высоте производит расчет — сколько ящиков можно будет расположить по высоте автомобиля при каждом варианте расположения груза;
- столбец G — Всего производит расчет — сколько ящиков первой партии можно будет расположить в автомобиле при каждом варианте расположения груза.
- столбец Н — Заполнение машины. Рассчитывает в процентном отношении — какова будет загрузка пространства кузова автомобиля при каждом варианте расположения груза.
Автоматизация выбора варианта расположения груза первой партии
Считаем, что выбор варианта размещения груза будет осуществляться вводом значения 1 в диапазон ячеек А16:А21. Но подобная методика непосредственного ввода данных в ячейку с клавиатуры не является оптимальной. Прежде чем ввести в какую-то ячейку значение 1, такое же значение надо удалить из другой ячейки этого диапазона. Предполагаемый алгоритм предстоящих вычислений может неоднозначно трактовать возможное наличие нескольких введенных единиц в диапазоне ячеек А16:А21 или их отсутствие. Следовательно, предстоящая задача:
- минимизировать действия пользователя на ввод признаков выбора;
- в диапазоне ячеек А16:А21 должна находиться только одно значение 1.
Для выбора варианта расположения первой партии груза в кузове автомобиля могут быть использованы шесть элементов управления Переключатель, которые связаны с ячейкой А16. В ячейку А17 введите формулу:
=A16-1
и скопируйте ее в ячейки А18:А21. Таким образом, эта простая формула позволит в этом диапазоне ячеек возвращать значение на единицу меньше, чем в соседней ячейке, находящейся выше. Следовательно, значения в ячейках А16:А21 будут изменяться от значения -4 в ячейке А21 (активизирован первый переключатель), до значения 6 в ячейке А16 (активизирован шестой переключатель). Но при любом активизированном переключателе в диапазоне ячеек А16:А21 будет находиться только одно значение равное 1, соответствующее этому переключателю, по которому и будет считаться, что выбранный вариант расположения груза находится в этой строке.
Переключатели расположены в области ячеек А16:А21 и предназначен для выбора варианта расположения груза в той строке, в которой они находится. Для внедрении элементов управления, наиболее оптимальной является следующая последовательность:
- создайте элемент управления Переключатель, находящийся в области ячейки А16;
- с помощью диалогового окна Формат элемента управления (рис. 6.7.) задайте связь с ячейкой А16;
- скопируйте созданный элемент управления и последовательно осуществите вставку пяти следующих элементов управления сверху вниз.
Формулы расчета количества ящиков первой партии
Формулы расчета должны определять количество размещаемых ящиков в один ряд по каждому параметру кузова автомобиля (по ширине, по длине и по высоте).
Например, в диапазоне ячеек D16:D21 необходимо произвести расчет количества ящиков, которые разместятся в один ряд по ширине автомобиля при каждом варианте размещения первой партии ящиков. Для этого необходимо произвести операцию деления значения размера ширины кузова автомобиля, находящегося в ячейке С2 (ячейке присвоено имя Машина_Ширина) на первый параметр габарита груза по варианту, текст которой указан в диапазоне ячеек В16:В21. В ячейке D16 будет находиться формула:
=ОТБР(Машина_Ширина/Груз_Ширина;0)
потому что в ячейке В16 введен первый вариант расположения груза с первым параметром расположения груза — ширина. В связи с тем, что дробная часть габаритов ящика груза не может быть размещена, в основе формулы используется функция ОТБР, которая отбрасывает дробную часть, получаемую при делении.
Аналогично производится и расчет количества ящиков, размещаемых по длине и высоте при различных вариантах расположения груза. В диапазоне G16:G21 производится расчет общего количества ящиков в первой партии по каждому варианту размещения, путем умножения количества ящиков, размещаемых в один ряд по ширине, по длине и по высоте.
Формулы находящиеся в этой таблице показаны на рис. 10.9.
Рис. 10.9. Таблица для расчета количества помещаемых ящиков и заполнения пространства кузова при размещении первой партии груза с формулами
Анализ и расчет свободного пространства кузова после загрузки первой партии ящиков
Проанализируйте оставшееся свободное пространство кузова автомобиля после погрузки первой партии ящиков по каждому варианту размещения. Необходимое условие для анализа — наглядность. С этой целью создайте две таблицы:
- определения размера оставшегося свободного пространства в кузове автомобиля между размещенным грузом и правым бортом кузова (А), задним бортом кузова (В) и потолком кузова (С). Эти размеры указаны на рис. 10.5. Таблица расположена в области ячеек J13:L21 (рис. 10.10.);
- определения каждого свободного объема, которые указывались при рассмотрении последовательности заполнения кузова автомобиля — область N13:Q21 (рис. 10.11.).
Создание таблицы расчета размеров оставшегося свободного пространства в кузове автомобиля
Рис. 10.10. Таблица расчета размеров оставшегося свободного пространства кузова после загрузки первой партии
При прямоугольных размерах груза, габариты первой партия груза также будут иметь прямоугольный размер. В зависимости от вариантов размещения первой партии, размеры между границами, занимаемого грузом и плоскостями, ограничивающими объем кузова, будет различен. Исходя из этого, составляющие таблицы на рис. 10.10. должны рассчитывать эти размеры для всех вариантов расположения ящиков первой партии груза:
- область ячеек J16:J21 определяет длину свободного места от правой линии загруженных ящиков до правого борта кузова;
- область ячеек К16:К21 определяет длину свободного места от линии загруженных ящиков по длине кузова и до конца кузова
- область ячеек L16:L21 определяет длину свободного места от верхней линии загруженных ящиков до потолка кузова
Формулы в этих областях однотипны и проанализируем их по формуле, введенной в ячейку К16, которая производит вычисление свободного расстояния по длине кузова автомобиля:
=ЕСЛИ(G16=0;Машина_Длина;ОКРУГЛ(Машина_Длина-E16*Груз_Длина;2))
Функция ЕСЛИ анализирует, помещается ли груз в машину при данном варианте размещения и если не помещается, то возвращает значение длины автомобиля. Если же груз помещается, то из значения длины кузова автомобиля вычитается значение расстояния, которое занимает габарит груза (по варианту размещения — длина, ширина или высота), умноженный на количество ящиков, размещенных по длине кузова.
В других ячейках таблицы находятся похожие формулы, но используют комбинацию различных габаритов груза и кузова.
Определение составляющих оставшегося свободного объема кузова автомобиля
Для анализа оставшегося свободного объема кузова автомобиля после погрузки первой партии ящиков, создайте в области ячеек N16:Q21 таблицу вычисления объема оставшегося пространства (рис. 10.11.), которая позволит воспринимать визуально — из каких составляющих складывается объем оставшегося свободного пространства. В таблице находятся формулы, определяющие общий объем свободного пространства и составляющие этого объема:
- по ширине кузова — от правой линии габаритов загруженных ящиков до правого борта кузова по длине и на всю высоту кузова (партия-2). Область ячеек N16:N21. Пример рассчитываемого свободного объема показан на рис. 10.12.;
- по длине кузова — от линии габаритов загруженных ящиков, находящуюся к концу кузова на всю ширину загруженных ящиков первой партии и на всю высоту кузова (партия-3). Область ячеек O16:O21. Пример рассчитываемого свободного объема показан на рис. 10.14.;
- по высоте кузова — от верхней линии загруженных ящиков от первой партии до потолка кузова, а также на всю длину и ширину загруженной первой партии груза (партия-4). Область ячеек P16:P21.
Формулы таблицы расчета оставшегося свободного объема кузова
Формулы вычисляющие оставшейся свободный объем кузова, можно разделить на две половинки:
- левая часть формулы — показывает сомножители, участвующие в вычислениях;
- правая часть определяет объем свободного пространства путем перемножения указанных в левой части сомножителей.
Рис. 10.11. Таблица расчета оставшегося свободного объема кузова
Рассмотрим формулы, находящиеся в первой строке указанных диапазонов таблицы.
Формула в ячейке N16 основана на функции СЦЕПИТЬ соединяющей текст, ссылки на ячейки, которым присвоены и не присвоены имена, а также производящая вычисление свободного объема, оставшегося по ширине автомобиля:
=СЦЕПИТЬ(J16;" х ";Машина_Длина;" х ";Машина_Высота;" = ";J16*Машина_Длина*Машина_Высота)
Формула в ячейке О16 аналогична предыдущей, но несколько сложнее:
=СЦЕПИТЬ(L16;" х (";Машина_Длина;" — ";K16;") х (";Машина_Ширина;" — ";J16;") = ";ОКРУГЛ(L16*(Машина_Длина-K16)*(Машина_Ширина-J16);2))
В качестве сомножителей участвуют вычисленные значения:
- оставшееся свободное пространство по высоте от верхней линии загруженной первой партии груза до потолка;
- длина автомобиля, уменьшенная на оставшееся свободное пространство в конце кузова автомобиля после загрузки первой партии груза от линии груза до заднего борта кузова.;
- ширина автомобиля, уменьшенная на свободное пространство справа кузова автомобиля после загрузки первой партии груза.
И в формуле в ячейке Р16:
=СЦЕПИТЬ(K16;" х (";Машина_Ширина;" — ";J16;") х ";Машина_Высота;" = ";ОКРУГЛ(K16*(Машина_Ширина-J16)*Машина_Высота;2))
присутствуют следующие сомножители:
- оставшееся свободное расстояние по длине кузова автомобиля;
- ширина автомобиля, уменьшенная на свободное пространство кузова автомобиля справа после загрузки первой партии груза.
- высота кузова автомобиля.
В ячейке Q16 формула суммарного свободного объема автомобиля:
=ОКРУГЛ((J16*Машина_Длина*Машина_Высота)+(L16*(Машина_Длина-K16)*(Машина_Ширина-J16))+(K16*(Машина_Ширина-J16)+Машина_Высота);3)
Дальнейшее заполнение кузова
После загрузки первой партии ящиков, оставшееся свободное пространство кузова можно разделить на три части (описано выше).
Моделирование возможности дальнейшей автоматизации вычислений
Рассмотрим пример, когда первая партия груза была расположена по варианту 1, для чего активизируйте первый переключатель. Тогда по ширине кузова уместится 6 ящиков, по длине — 1 и по высоте — 9. Всего расположено 54 ящика, и загрузка машины составила 48,4% объема (рис. 10.8.).
Следующей, второй партией, осуществляется загрузка свободного пространства кузова от правой линии края загруженных ящиков до правого борта кузова по всей длине и на всю высоту кузова (рис. 10.12.) . В таком случае это пространство можно рассматривать как следующее ограниченное пространство для заполнения ящиками, но с изменившимися габаритами. То есть для расчета количества помещающихся в него ящиков может быть использована уже созданная таблица, что и для первой партии, но уже с другими значениями размеров оставшегося свободного пространства кузова.
Рис. 10.12. Габариты пространства, заполняемого второй партией груза
Тогда длина и высота останутся прежними, а ширина этого свободного объема будет равна ширине кузова автомобиля минус произведение, равное значению ширины груза, умноженное на 6 расположенных ящиков по ширине кузова:
ШИРИНА = 3 — 6 х 0,45 = 3 — 2,7 = 0,3 (м)
Впрочем габариты этого свободного пространства (0,3м х 3,5 м х 2м) и его объем (2,1м3) рассчитаны и показаны в ячейке N16 (рис. 10.11.). Введите значение ширины этого пространства (0,3м) в ячейку С2 области ввода значения габаритов кузова автомобиля (рис. 10.4.) и тогда в таблице, показанной на рис. 10.8., будет произведен расчет, согласно которому возможно максимальное размещение в этом объеме семи ящиков по варианту 6 размещения груза.
Подобный поиск полной оптимальной загрузки автомобиля довольно трудоемок. Поэтому следующая задача — создать еще одну таблицу, которая будет автоматически определять оставшееся свободное пространство по ширине кузова и определять оптимальное последующее расположение второй партии груза при выбранном варианте расположения первой партии груза.
Расчет заполнения свободного объема кузова второй партией груза
Отличие таблицы расчета оптимальной загрузки свободного пространства кузова второй партией груза (рис. 10.13.) заключается только в формулах в столбце С — определение количества располагаемых ящиков по ширине кузова автомобиля, в зависимости от варианта расположения груза. Поэтому эта таблица создается копирование таблицы в области В16:G21 и последующим незначительным редактированием.
Рис. 10.13. Таблица оптимального размещения груза второй и третьей партии ящиков в свободном объеме кузова автомобиля
Находящаяся в ячейке С32 формула (показана в строке формул на рис. 10.13.), в качестве значения размера ширины габаритов свободного пространства, использует рассчитанные данные оставшегося не занятого расстояния ширины кузова автомобиля в области ячеек J16:J21 (рис. 10.10.). Эти данные она находит с помощью функции ВПР по значению 1, которая вводится в область ячеек А16:А21 активизацией выбранного элемента управления Переключатель. Данные свободного пространства, рассчитанные в области ячеек J16:J21 делятся на первый указанный в области ячеек В27:В32 элемент габарита груза (длина, ширина или высота).
Расчет заполнения свободного пространства кузова третьей партии груза
Предполагаем, что после загрузки второй партии груза, габариты объема оставшейся свободной части кузова (рис. 10.14.) для погрузки третьей партии будут определяться размерами:
- высота — равна высоте кузова автомобиля;
- ширина — равна ширине загруженной первой партии груза;
- длина — равна расстоянию, оставшемуся до конца кузова после загрузки первой партии груза.
Рис. 10.14. Объем пространства, заполняемого третьей партией груза
Таблица расчета количества ящиков третьей партии находится в области ячеек G27:J33 (рис. 10.13.). Формула в ячейке G27:
=ОТБР((Машина_Ширина-ВПР(1;$A$16:$L$21;10;ЛОЖЬ))/Груз_Ширина;0)
производит с помощью функции ВПР поиск размера оставшегося свободного пространства по ширине кузова в области ячеек J16:J21 по выбранному варианту размещения первой партии груза, которое вычитается из ширины кузова автомобиля. И полученный результат делится на габарит груза, который указан первым в вариантах размещения в ячейках В27:В32.
Формула в ячейке Н27:
=ОТБР(ВПР(1;$A$16:$L$21;11;ЛОЖЬ)/Груз_Длина;0)
похожа на предыдущую формулу с той разницей, что поиск оставшегося свободного пространства кузова производится в диапазоне ячеек К16:К21, оставшейся после размещения первой партии груза.
Расчет заполнения свободного объема кузова четвертой партией груза
При погрузке четвертой партии ящиков, осуществляется загрузка последнего оставшегося свободного пространства кузова после погрузки трех предыдущих партий. Размеры этого свободного пространства — определяется площадью погруженной первой партии и оставшейся высотой кузова автомобиля. Расчет возможно поместившихся ящиков производится в таблице показанной на рис. 10.15.
Обратите внимание на столбец О — в него дополнительно введены возможные варианты расположения груза. Эти данные, находящиеся справа от области таблицы, пригодятся при формировании итоговой таблицы вывода параметров расчета загрузки всей машины.
Рис. 10.15. Таблица расчета заполнения свободного объема кузова четвертой партии груза
Последовательность загрузки кузова на практике
Может возникнуть вопрос, что свободное пространство для погрузки ящиков четвертой партии будет недоступно после загрузки предыдущих трех партий. Или при полной погрузке первой партии груза, ящики из второй партии будет трудно поместить в правый дальний угол кузова. Но описанная выше последовательность, разделенная на четыре этапа, была необходима только для одного — для поиска последовательности расчетов. На практике, ящики из всех четырех партий, могут размещаться в комбинированном порядке, с позиции доступности места, в котором они должны быть расположены. Ведь уже известно, каким образом (по какому варианту) эти ящики будут располагаться в этом месте.
Выходные параметры
Таблица с выходными параметрами (рис. 10.16.) расположена в области Е2:Н11 и ее задача заключается в следующем:
- определить количество ящиков погружаемого груза в каждой, разделенной нами, партии;
- определить максимальное количество ящиков груза, которое может поместиться в кузов автомобиля при различных вариантах размещении груза в первой партии товара и выбранных оптимальных вариантах в следующих;
- определить загрузку пространства кузова автомобиля в процентном отношении, в зависимости от вариантов размещения четырех партий груза;
- сравнить и показать количество ящиков груза, которые в зависимости от вариантов расположения не помещаются в кузов автомобиля или могли бы еще поместиться при сравнении с партией груза, который необходимо разместить в кузове;
- в зависимости от вариантов расположения груза, сформировать надписи: Остается свободный объем! или Груз не помещается!, и в зависимости от текста, окрашивать шрифт в красный или синий цвет;
- формировать текст вариантов размещения для каждой партии груза.
Рис. 10.16. Итоговая таблица с анализом загрузки автомобиля
Расчет общего количества ящиков, которые могут поместиться в кузов автомобиля
При расчете оптимальной загрузки автомобиля необходимо определить — сколько ящиков поместится в машину. Существует и второй аспект этой проблемы — сколько времени потребуется для загрузки самой оптимальной партии.
Таблица с выходными данными предназначена не только для вывода информации по количеству ящиков, которые могут поместиться в кузов автомобиля. Но и может выступать в качестве технологической карты при непосредственной загрузке автомобиля, потому что в ячейках I4:I7 формируется текст вариантов погрузки каждой партии, согласно которого будет известно, как этот груз располагать. А, следовательно, задача сводится к следующему — загрузка автомобиля оптимальной (рассчитанной) партией груза за наиболее короткое время.
Определение оптимального количества ящиков
При активизации переключателей, определяющей вариант размещения ящиков первой партии груза, вычисленные значения таблицы загрузки первой партии товара остаются неизменны. Изменяется только значение количества ящиков груза первой партии, которая отображается в ячейке Н4 таблицы с выходными параметрами, в которой находится формула, производящая поиск количества погруженных ящиков в первой партии рассчитанных в области L16:L21:
=ВПР(1;$A$16:$L$21;7;ЛОЖЬ)
Формулы в ячейках Н5:Н7 производят выборку максимального значение, рассчитанное таблицами загрузки второй — четвертой партии груза:
=МАКС(F27:F32)
=МАКС(J27:J32)
=МАКС(N27:N32)
В ячейке Н8 находится формула суммирования количества ящиков во всех четырех партиях.
Формула в ячейке Н9 определяет загрузку объема кузова в процентном отношении:
=((Груз_Ширина*Груз_Длина*Груз_Высота)*H8)/(Машина_Ширина*Машина_Длина*Машина_Высота)
Если в ячейку С11 введено количество ящиков, предполагаемое для загрузки, то формула в ячейке D11 сравнивает это значение, со значением в ячейке Н8:
=C11-H8
В ячейке Е11, в зависимости от полученного результата вычислений в ячейке D11, формируется надписи: Остается свободный объем! или Груз не помещается! по формуле:
=ЕСЛИ(D11<0;"Остается свободный объем!";"Груз не помещается!")
Для того чтобы формируемый текст в зависимости от его содержания привлекал внимание пользователя, назначьте всем элементам управления Переключатель макрос ЦветШрифта (рис. 10.17.)
Рис. 10.17. Подпрограмма ЦветШрифта
Макрос ЦветШрифта для задания цвета шрифта в зависимости от содержимого ячейки, использует инструкцию Select Case, которая была описана в главе 7. С помощью этой инструкции проверяется, какое текстовое значение возвращает формула в ячейке Е11, и при указании оставшегося свободного объема в кузове шрифт окрашивается в голубой цвет. В противном случае в красный.
Для того чтобы сразу было видно, как располагать ящики в каждой партии загрузки, в ячейках I4:I7 находятся формулы поиска текста варианта расположения груза. Например, в ячейке I4 формула:
=ЕСЛИ(H4=0;0;ВПР(H4;G16:S21;12;ЛОЖЬ))
которая в качестве искомого элемента, по которому производится поиск, использует количество ящиков груза в ячейке Н4. Для определения текста варианта размещения для первой партии можно использовать значение 1.
Как пользоваться приложением
Введите габариты кузова автомобиля и груза, после чего поочередно активизируя переключатели выбора варианта размещения груза в первой партии загрузки, выберите максимальное значение, определенное в ячейке Н8.
Итоги
Основной вывод этой главы — увидеть проблему, проанализировать, найти алгоритм, попытаться ее решить наиболее простыми методами и увеличить эффективность бизнеса.
|