Расчет частоты (Min / Max / Average) размещения заказа в Excel - PullRequest
0 голосов
/ 02 июня 2018

Мне нужно проанализировать частоту еженедельных заказов за последний год, чтобы выяснить, какова минимальная / максимальная / средняя частота заказов для каждого продукта.будь то новый или старый, система должна рассчитать первое вхождение заказа в году как начальную неделю заказа.Минимальная частота заказа - это разница между последовательными неделями заказа.Если первый заказ в wk 3, а второй заказ в wk6, подразумевается, что частота заказа составляет 3 недели (=> 6-3).Заказы могут быть на любой неделе за последние 52 недели.Средняя частота заказов = (52 - Первая неделя заказа) / количество недель, в которых есть заказы.

Приложение Excel для лучшего понимания проблемы.

Исходное изображение

+---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+----------------+-------------------------+-----+-----------------------------------+--+
| Product | wk1 | wk2 | wk3 | wk4 | wk5 | wk6 | wk7 | wk8 | wk9 | wk10 | wk11 | wk12 | wk13 | wk14 | wk15 | wk16 | wk17 | wk18 | wk19 | wk20 | wk21 | wk22 | wk23 | wk24 | wk25 | wk26 | wk27 | wk28 | wk29 | wk30 | wk31 | wk32 | wk33 | wk34 | wk35 | wk36 | wk37 | wk38 | wk39 | wk40 | wk41 | wk42 | wk43 | wk44 | wk45 | wk46 | wk47 | wk48 | wk49 | wk50 | wk51 | wk52 | Order start wk | Order frequency (Weeks) |     |                                   |  |
+---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+----------------+-------------------------+-----+-----------------------------------+--+
|         |     |     |     |     |     |     |     |     |     |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |                | Min                     | Max | Average                           |  |
|         |     |     |     |     |     |     |     |     |     |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      |                |                         |     | (End wk - Start week)/No of times |  |
| SKU 1   |     |     |     |     |     |     |     |     | y   |      | y    |      | y    |      | y    |      | y    |      | y    |      | y    |      | y    | y    |      |      | y    |      | y    |      | y    |      | y    |      |      |      |      |      | y    |      | y    |      | y    |      | y    |      | y    |      | y    |      | y    |      |              9 | 1                       | 6   | 2.15                              |  |
| SKU 2   |     |     |     |     |     |     | y   |     |     |      |      |      | y    |      |      |      |      |      | y    |      |      |      |      |      | y    |      |      |      |      |      | y    |      |      |      |      |      | y    |      |      |      |      |      | y    |      |      |      |      |      | y    |      |      |      |              1 | 0                       | 0   | 7.29                              |  |
| SKU 3   |     |     |     |     |     |     |     |     |     |      |      |      |      |      | y    |      |      |      |      |      |      |      |      |      |      |      |      |      |      |      | y    |      |      |      |      |      |      |      | y    |      |      |      |      |      |      |      | y    |      |      |      |      |      |             15 | 8                       | 15  | 9.25                              |  |
+---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+------+----------------+-------------------------+-----+-----------------------------------+--+

1 Ответ

0 голосов
/ 02 июня 2018

Итак, как уже упоминалось, @Barry Houdini решает проблему нахождения самой длинной последовательности нулей, элегантно разделенных единицами здесь

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

Формула для MIN становится

=MIN(IF((ROW(A$1:INDEX(A:A,COUNTA(B4:BA4)+1))>1)*(ROW(A$1:INDEX(A:A,COUNTA(B4:BA4)+1))<COUNTA(B4:BA4)+1),FREQUENCY(IF(B4:BA4="",COLUMN(B4:BA4)),IF(B4:BA4="y",COLUMN(B4:BA4)))))+1

, а формула для MAX становится (такой же)

=MAX(IF((ROW(A$1:INDEX(A:A,COUNTA(B4:BA4)+1))>1)*(ROW(A$1:INDEX(A:A,COUNTA(B4:BA4)+1))<COUNTA(B4:BA4)+1),FREQUENCY(IF(B4:BA4="",COLUMN(B4:BA4)),IF(B4:BA4="y",COLUMN(B4:BA4)))))+1

, где вам нужно добавить 1 для согласования результатовс вопросом, потому что формула @ Барри подсчитывает количество пробелов, но OP хочет интервал между двумя последовательными у.Создается массив из ny + 1 элементов, где ny - это число y.Это связано с тем, что функция FREQUENCY возвращает массив с n + 1 элементами, где n - количество точек разреза (bins_array в документации , а номера столбцов ячеек, содержащих y, используются в качестве точек разреза, поэтому nyиз них.

Это обе формулы массива, которые необходимо вводить с помощью Ctrl Shift Введите

Формула длясреднее значение составляет всего

=(COLUMNS(B4:BA4)-MATCH("y",B4:BA4,0))/COUNTA(B4:BA4)

enter image description here

...