Страницы: 1
RSS
Подсчет количества занятых многоадресных полок, по списку занятых адресов
 
Добрый день, уважаемые форумчане!

У меня сложная задача, не знаю, с какой стороны подступиться. попробую объяснить.

Есть склад с адресным хранением, с возможностью выгружать остатки в момент времени.
Есть физически металлические полки размером 1 м. на 0,4 м. где мы храним товар. наш клиент нам платит за полко место.
Есть адрес, формата R0XXYYYZ, где R это область (итого их 7 разных), 0ХХ порядковый номер стеллажа, YYY адрес (от 1 до 600), Z уровень, в высоту (от А до L).
Есть развретка топологии, которая показывает, сколько адресов на полке (может быть 4, 5, 30 или 120).
Есть мастер дата, с указанием всех адресов по всему складу (обрезал, тк только c данными по области R файл весил более 1Мб)

Задача.
Нужно получить инструмент, который позволит в момент времени определить сколько полок занято. Если хотя бы один адрес, входящий в полку занят, то, соответственно, считаем, что полка занята.

спасибо за внимание
Just keep doing!..
 
Добрый день.
Ну т.к. нигде в файле момент времени не указан, то вероятно занято 1118 мест, если смотреть по остаткам.
А прежде чем уточнять - придумайте более развёрнутое название темы, я  за Вас придумывать отказываюсь :)
 
Дорогой Хьюго, Я правда не знаю как более точно сформулировать мысль)
по поводу пересчета занятости мест проблем нет. проблема в том, что  в разных местах склада на полке может быть разное количество адресов. вот с этим проблема
Just keep doing!..
 
Если правильно понял, то массивная
=COUNT(MATCH('Мастер дата'!A2:A2466;'отчет по остаткам'!A:A;))
Понял не правильно.
Ни из развертки , ни из мастер даты не следует связь места с полкой, а ведь физически она есть. Если будет прописано, то и расчет осуществим.
Изменено: БМВ - 11.12.2021 09:30:26
По вопросам из тем форума, личку не читаю.
 
БМВ, спасибо за ответ
попробую объяснить связь места в wms с полкой
ниже развертка по местам. из нее можно взять тип ячеек в зависимости от адреса, например, адрес R012006A это по счету это нижняя вторая полка слева ряд №12 в области R. ну и эту полку составляют еще вот эти адреса, R012007A, R012008A, R012009A, R012010A
или например адрес R015241С. Это 3 полка слева на третьем уровне от пола. на этой полке еще адреса от  R015201С до R015299С включительно
сколько адресов на полке можно взять из колонки "адресов на полке"
Рядадресов на полкеадресов в рядутип полки
R0125250тип2
R0134200тип1
R0144200тип1
R0151206000тип4
R0161206000тип4
Just keep doing!..
 
Цитата
Tokhtamysh написал:
Есть адрес, формата R0XXYYYZ, где R это область (итого их 7 разных), 0ХХ порядковый номер стеллажа, YYY адрес (от 1 до 600), Z уровень, в высоту (от А до L).
Цитата
Tokhtamysh написал:
например, адрес R012006A это по счету это нижняя вторая полка слева ряд №12 в области R.
вот кроме R дальнейшие вычисления нужно как то расписать. У вас всё в кучу, стелаж, ряд, полка, место .... Как минимум нужно употреблять или однаковый термин для той же сущности.
Ряд и стелаж это одинаковые понятия? Судя по всему да.
Далее адресов на полке 5  ну понятно, уровень A,B,C тоже , адресов в ряду 250 что это? 50 полок на одном уровне в стелаже?
иными словами для решения нужно понять как номеруются полки и создать перечень номеров, пусть даже эти номера несуществуют для этой полки, поиск даст 0 и  нам это не повредит
то есть для тогоже примера для R012 полка 1
1 - R012001A
2 - R012002A
....
n - R012(N)A
n+1 R012001B
только надо знать сколько уровней и когда наступает переход

Если делать макросом, то от обратного , вычислять уникальный номер полки исходя из адреса и например класть в словарь. по окончанию количество элементов в словаре будет равно количеству занятых полок.
Изменено: БМВ - 11.12.2021 14:28:18
По вопросам из тем форума, личку не читаю.
 
вне R применяется та же самая логика
область V, номер стеллажа 001, место 003, уровень D
да, ряд это суть стеллаж. то есть, ряд R001 это физически стеллаж, длиной 5 м., высотой 2,5 м. Он состоит из 10 полок. итого ряду 50 полок.
адресов в ряду это значит что на каждой полке по 4 адреса, итого 4*50 суть 200 адресов.
ниже на рисунке максимально подробно попытался раскрыть суть топологии
Just keep doing!..
 
Пока название темы тоже неочевидное.
 
а как поменять назвние?
Just keep doing!..
 
как у меня двигается мысль. дать каждой физической полке название, (полка1...полка8500) и как-то перетащить это название из топологии в мастер дату
потом отвепеэрить из остатков в мастер дату, скрутить свод и оттуда взять число уникальных вхождений
вопрос только, как расшить пополочно данные из топологии?
руками? примерно вот такой формат должен быть в мастер дате
тогда задача сужается до переноса из развертки топологии в мастер дату
CompleteCodeAreaCodeShelfCodeColumnCodeLocationCodeпорядковый   номер полки
R010001AR101Aполка 1
R010001BR101Bполка   2
R010001CR101Cполка   3
R010001DR101Dполка   4
R010001ER101Eполка   5
R010001FR101Fполка   6
R010001GR101Gполка   7
R010001HR101Hполка   8
R010001IR101Iполка   9
R010001JR101Jполка   10
R010002AR102Aполка   1
R010002BR102Bполка   2
R010002CR102Cполка   3
R010002DR102Dполка   4
R010002ER102Eполка   5
R010002FR102Fполка   6
R010002GR102Gполка   7
R010002HR102Hполка   8
R010002IR102Iполка   9
R010002JR102Jполка   10
Just keep doing!..
 
Цитата
Tokhtamysh написал:
как у меня двигается мысль.
не правильно двигается, название темы придумывайте.
поскольку максимум адресов на полке 120, а полок 50 то всего 1002000 расчетов, формула считает у меня полминуты.
Зашел с другой стороны, и формула не сложная и считает быстро, но странное что-то творится, при обработке 1134 строк результат корректный, а больше - считает не корректно.
Короче тема: Подсчет количества занятых многоадресных полок, по списку занятых адресов.
С доп. столбцом задача решается элементарно. преобразовать в уникальное имя полки адрес исходя из количества адресов на полке в заданном стеллаже.
Далее подсчет уникальных.
А вот тоже самое одной формулой работает с ошибкой, и пока не могу понять от куда она. Может у кого появятся другие идеи.
Изменено: БМВ - 11.12.2021 21:51:23
По вопросам из тем форума, личку не читаю.
 
Ребята, всем спасибо за идеи
один вопрос, как поменять название темы?
Just keep doing!..
Страницы: 1
Наверх