Страницы: 1
RSS
Подсчет остатка на складе.
 
Доброго времени суток.
Нужна помощь с составлением таблицы с остатками на складе. Есть две таблицы, таблица прихода на склад, и соответственно ухода. Нужно что-бы при выборе заказчика на красном фоне, в книге "Остаток", в таблице появлялись все даты в которые приходил груз на склад, все наименования груза, номера грузов, номера вагонов и т.д которые относятся к данному заказчику. В остатке вычислить Кол-во и вес груза с данным номером вагона. Приход - уход, с таким же номером вагона. Прошу прощения за свой непрофессионализм, и не способность нормально объяснить. Заранее спасибо за помощь.

Файл выложу на файлообменник, потому что превышает 100Кб.
http://rghost.ru/7pDmdmZQy
 
Zertox, если я понял Ваш запрос правильно, то например так. Сделаны расчеты для даты и наименования фирмы, если подойдет, думаю сделаете по аналогии дальше. Сообщение об ошибке можно срыть условным форматированием или через ЕСЛИОШИБКА. Я бы посоветовал диапазонам в расчетах дать имена, формулы выглядит более наглядно.

З.Ы. Пришлось подрезать данные на Вашем файле, а также удалить часть листов, чтобы файл снизил "вес", так что это -только образец
Изменено: Алексей - 05.12.2015 18:58:34
 
Алексей, огромная благодарность,это именно то что было нужно. Но остается еще проблема, как считать остатки. В "ArriveTable" у каждой строки есть свой идентификатор "id" и по нему в "LeftTable" идут на уход со склада. Например первая строчка, id = 1, кол-во 60. Во второй таблице где id 1, три раза по 20. Т.е 60-20-20-20 = 0. И нужно получить этот 0 в таблице Остаток в столбце Остаток кол-во. Буду благодарен за пример вычисления, так как в с формулами не дружу.
 
Так нужно? Для Фирмы D считает правильно, для фирмы А, возможно из-за обрезанных мною строк, считает как-то странно (в 1 ячейке правильно, далее надо примерять к "правильному" файлу). В ячейки Н9:Н18 формулу массива:
Код
=СУММЕСЛИМН(ArriveTable!P5:P62;ArriveTable!A5:A62;ИНДЕКС(ArriveTable!A5:A62;НАИМЕНЬШИЙ(ЕСЛИ(ДАТАЗНАЧ(ArriveTable!B5:B62)<$B$1;ЕСЛИ(ArriveTable!E5:E62=$B$3;СТРОКА(ArriveTable!A5:A62)-4;"");"");СТРОКА()-8)))-СУММЕСЛИМН(LeftTable!R6:R29;LeftTable!A6:A29;ИНДЕКС(LeftTable!A6:A29;НАИМЕНЬШИЙ(ЕСЛИ(ДАТАЗНАЧ(LeftTable!B6:B29)<$B$1;ЕСЛИ(LeftTable!C6:C29=$B$3;СТРОКА(LeftTable!A6:A29)-5;"");"");СТРОКА()-8)))
 
Алексей,не могу указать на ошибку в формуле, так как плохо понимаю их. На примере Фирмы B расскажу как должно выглядеть.

Вот что выходит в остатках:


Вот что приходило на склад по Фирме B:






И по фирме B на уход:



В конце концов должно получится по id 13, (первая строчка в остатках) Приехало 22, уехало 22 = 0
И по id 42 (вторая строчка) Приехало 66, уехало 20+20+20+6 = 0.
Надеюсь получилось более наглядно показать, чего добиваюсь. Спасибо Вам за уже предоставленную помощь.

З.Ы По моим наблюдениям, первая формула правильно считает Приезд. А вторая формула не правильно.
Изменено: Zertox - 05.12.2015 23:57:02
 
И при попытке увеличить диапазон в прошлой формуле, сразу ошибка #ЗНАЧ. Если вместо 62 ставлю значение выше..
 
Что касается увеличения диапазона, то это лечится либо указанием диапазона до последней заполненной ячейки (что неудобно, наверное), либо вводом проверки на ошибку проверяемого диапазона:

=ИНДЕКС(ArriveTable!F5:F164;НАИМЕНЬШИЙ(ЕСЛИ(ЕСЛИОШИБКА(ДАТАЗНАЧ(ArriveTable!B5:B164);"")<$B$1;ЕСЛИ(ArriveTable!E5:E164=$B$3;СТРОКА(ArriveTable!F5:F164)-4;"");"");СТРОКА()-8)

посмотрите в диапазоне D. По остаткам теперь делал так:

=СУММЕСЛИМН(ArriveTable!P5:P97;ArriveTable!A5:A97;ИНДЕКС(ArriveTable!A5:A97;НАИМЕНЬШИЙ(ЕСЛИ(ЕСЛИОШИБКА(ДАТАЗНАЧ(ArriveTable!B5:B97);"")<$B$1;ЕСЛИ(ArriveTable!E5:E97=$B$3;СТРОКА(ArriveTable!A5:A97)-4;"");"");СТРОКА()-8))-СУММЕСЛИМН(LeftTable!R6:R97;LeftTable!A6:A97;ИНДЕКС(ArriveTable!A5:A97;НАИМЕНЬШИЙ(ЕСЛИ(ЕСЛИОШИБКА(ДАТАЗНАЧ(ArriveTable!B5:B97);"")<$B$1;ЕСЛИ(ArriveTable!E5:E97=$B$3;СТРОКА(ArriveTable!A5:A97)-4;"");"");СТРОКА()-8))
 
Принцип такой. Сначала вычисляем (через СУММЕСЛИМН) сумму прихода по вычисленному id, затем, аналогичным образом по расходу. Сейчас в Вашем файле остаток = 22 и 66 соответственно, но это из-за обрезанности файла. В исходном файле эта формула выдает 0
Изменено: Алексей - 06.12.2015 09:43:04
 
Алексей,Спасибо большое за помощь. То что нужно  :)
Страницы: 1
Читают тему
Наверх