1

Основной вопрос управления запасами (я полагаю)

Проще говоря:

IF(A<=0,A=20,)

Конечно, это не работает, потому что, когда вы добавляете 20, «А» становится положительным. Excel пересчитывает и 20 удаляется. Excel пересчитывает и 20 добавляется, и т.д ........

Нам нужен способ сделать A =+20 .... затем посмотрим на B, C, D для следующего отрицательного условия.

Практически все бизнес-модели должны справляться с пополнением запасов. ... но как это было достигнуто?

Вот ссылка на листы Google:https://docs.google.com/spreadsheets/d/121LsvpK3GrVHVAgIK7npTX3-N9P5LOZZLZIenqeEj9s/edit?usp=sharing

Ниже просто перечислены выше таблицы в тексте. Будут рассмотрены и другие переменные, но сначала необходимо решить фундаментальную проблему.


Вот основная объясненная проблема с запасами:

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

  • Начальный запас введен.
  • Прогнозируемые продажи за неделю вводятся.
  • В определенную неделю все акции продаются.
  • На этой неделе доставка товара должна произойти.

Вручную с этим очень легко справиться ... мы ищем прогнозируемый отрицательный (или нулевой) складской баланс, и мы нажимаем на клавиатуру и вводим требуемую поставку. Мы прокручиваем уровень запаса - на следующей неделе находим, где нужен запас, и вводится требование доставки.

Хорошо.

Только то, что если предполагаемые продажи изменены, все даты поставки должны измениться.

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

Тем не мение... Финансовые модели должны работать, просто изменяя прогнозируемые продажи.

Загрузите прогноз продаж, найдите неделю без запаса, добавьте поставку .... затем найдите следующую неделю без запаса.

Единственное вмешательство человека - изменить показатели продаж.


Вот очень простая версия:

         A               B             C          D          E          F          G          H          I
  +---------------+---------------+----------+----------+----------+----------+----------+----------+----------+
1 |  01/03/2017   |     Date      | 05/03/17 | 12/03/17 | 19/03/17 | 26/03/17 | 02/04/17 | 09/04/17 | 16/04/17 |
  +---------------+---------------+----------+----------+----------+----------+----------+----------+----------+
2 | Stock         | Delivery      |        1 |          |          |          |          |          |          |
3 |               | Consignment   |       37 |        0 |        0 |        0 |        0 |        0 |        0 |
4 |               | Stock Balance |       22 |       11 |       -1 |       -1 |       -1 |       -1 |       -1 |
5 |               | Sales         |       15 |       11 |       12 |          |          |          |          |
6 | Order Qty Ref | Item qty      |       37 |       37 |       37 |       37 |       37 |       37 |       37 |
  +---------------+---------------+----------+----------+----------+----------+----------+----------+----------+

C2:I2 = А от 1 до 7

C3:I3 = контролирует C2:I2 для номеров от 1 до 7, затем ищет диапазон 'Order Qty Ref' (в строке 6) и отправляет 'item qty', например, 37, т. Е. Если доставка = 1 ..... 37 это груз.

= IF(C2 = 1, $ C $ 6, IF(C2 = 2, $ D $ 6, IF(C2 = 3, $ E $ 6, IF(C2 = 4, $ F $ 6, IF(C2 = 5, $ G $ 6), IF(C2 = 6, $ H $ 6, IF(C2 = 7, $ I $ 6,)))))))

C4 = C3-C5 ..... Это просто открывает складской баланс - консигнация-продажа.

D4:I4 = C4+D3-D5 ..... Каждая ячейка добавляет предыдущее сальдо к любой новой партии и вычитает любые продажи.

C5:I5 = Число, представляющее количество проданных единиц (в модели этот диапазон номеров продаж выбирается из выпадающего списка).

C6:I6 = отдельный диапазон из 7 потенциальных поставок.

В стартовую позицию модели загружены прогнозы продаж и первая партия (1).

Вручную мы будем искать первый 0 или отрицательный остаток на складе (строка 4) - мы находим первый в столбце E и добавляем 1 (или число между 1 и 7) в строке 2 (т. Е. В ячейке E2).

+---------------+---------------+----------+----------+----------+----------+----------+----------+----------+
|  01/03/2017   |     Date      | 05/03/17 | 12/03/17 | 19/03/17 | 26/03/17 | 02/04/17 | 09/04/17 | 16/04/17 |
+---------------+---------------+----------+----------+----------+----------+----------+----------+----------+
| Stock         | Delivery      |        1 |          |    →   1 |          |          |          |          |
|               | Consignment   |       37 |        0 |       37 |        0 |        0 |        0 |        0 |
|               | Stock Balance |       22 |       11 |       35 |       20 |        9 |       -4 |      -19 |
|               | Sales         |       15 |       11 |       13 |       15 |       11 |       13 |       15 |
| Order Qty Ref | Item qty      |       37 |       74 |       37 |       37 |       37 |       37 |       37 |
+---------------+---------------+----------+----------+----------+----------+----------+----------+----------+

Затем мы вручную ищем следующий нулевой или отрицательный складской баланс (находя его в ячейке H4) и добавляем еще 1 (в ячейке H2).

+---------------+---------------+----------+----------+----------+----------+----------+----------+----------+
|  01/03/2017   |     Date      | 05/03/17 | 12/03/17 | 19/03/17 | 26/03/17 | 02/04/17 | 09/04/17 | 16/04/17 |
+---------------+---------------+----------+----------+----------+----------+----------+----------+----------+
| Stock         | Delivery      |        1 |          |        1 |          |          |    →   1 |          |
|               | Consignment   |       37 |        0 |       37 |        0 |        0 |       37 |        0 |
|               | Stock Balance |       22 |       11 |       35 |       20 |        9 |       33 |       18 |
|               | Sales         |       15 |       11 |       13 |       15 |       11 |       13 |       15 |
| Order Qty Ref | Item qty      |       37 |       37 |       37 |       37 |       37 |       37 |       37 |
+---------------+---------------+----------+----------+----------+----------+----------+----------+----------+  

Хорошо, просто - простой расчет: IF (Stock_balance <= 0, Delivery = 1,)

Проблема в том, что в тот момент, когда баланс акций корректируется на позитив .... Excel удаляет 1 ..., оставляя баланс запасов отрицательным - до бесконечности (циклическая ошибка ссылки).


Понятно, что нам нужен Excel для вычисления «слева направо» каждой ячейки, пока не будет выполнено нулевое или отрицательное условие. Введите поставку запаса ... затем перезапустите вычисления из первой ячейки, пока не будет выполнено нулевое или отрицательное условие.

По сути, нам нужен Excel, чтобы имитировать вмешательство человека.

Например,

IF(Stock_balance<=0,Delivery=1[stop_recalculate_until_no_negatives_are_found],)

Это все было сделано раньше, но я не могу найти решение с помощью поиска. Поэтому я считаю, что этот вопрос идеально подходит для суперпользователя.

1 ответ1

0

Прежде всего, я могу предложить гораздо более краткую форму формулы для строки 3 и альтернативную форму для строки 4 (такую, которая не требует превращения C4 в особый случай):

  • Строка 3 → =IF(C$2=0, 0, INDEX($C$6, 1, C$2))
    Это просто - если C2 равен 0, C3 равен нулю.  (Помните, что пустые тесты равны нулю.)  В противном случае используйте число из $C$6 , $D$6 , $E$6 ,…, проиндексированное C2 .
  • Строка 4 → =SUM($C3:C3)-SUM($C5:C5)
    В ячейке C4 это уменьшается до C3-C5 .  При перетаскивании / заполнении вправо первая ячейка в каждом диапазоне остается закрепленной в столбце C а вторая ячейка автоматически увеличивается.
    Таким образом, D4 =SUM(C3:D3)-SUM(C5:D5) , E4 =SUM(C3:E3)-SUM(C5:E5) и т.д.

Проблема в том, что вы хотите выбрать значение в строке 2 на основе значения в строке 4, прежде чем применять значения в строках 2 и 3 к значению в строке 4 для текущего столбца - и поэтому вы получаете циклическую ссылку ,  Решение состоит в том, чтобы установить «вспомогательную строку», которая вычисляет именно это фантомное значение (значение в строке 4 до применения значений в строках 2 и 3).  Например, я поместил это в строку 9 :

  • C9=-C5
  • D9=SUM($C3:C3)-SUM($C5:D5) (и перетащите / заполните это право).

Вы можете видеть, что это равно значению в строке 4 до того, как было добавлено значение в строке 3.  Тогда достаточно просто установить строку 2 в =IF(C9<=0, 1, 0) (что у вас уже есть формула) и отформатировать ячейки так, чтобы они не отображали нули.  (Или вы можете сделать формулу =IF(C9<=0, 1, "") если хотите.)  Теперь вы можете изменить прогнозируемые продажи (в строке 5), а график доставки в строках 2 и 3 обновится автоматически.

таблица

Я изменил формат ваших дат, потому что я пишу даты как mm/dd/yy (да, я знаю, что это иррационально, но это культурная вещь), и просмотр дат в формате dd/mm/yy причиняет мне боль.
________
Конечно, вы можете поместить вспомогательный ряд в любое место, например, в строку 99, или на другой лист, и вы можете скрыть его, когда все будет работать.  Или же мы могли бы полностью удалить вспомогательный ряд за счет того, что формула ряда 2 будет намного более сложной.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .