У меня есть список имен (строк) и оценок (столбцов), достигнутых за каждую неделю с некоторой даты в прошлом. Каждое имя в списке должно проверяться как минимум раз в 4 недели. Цель этого вопроса - получить процент людей, которые соответствуют этому минимальному требованию.
В столбце A содержатся имена, а в строке 10 - коды недели. Я вставляю новые недели в столбец рядом с именами (B). Таким образом, порядок недель недавно устарел.
Мне также нужно отследить историю этого. Таким образом, для каждой комбинации «имя-неделя» я оцениваю, есть ли оценка за текущую неделю или за любую из трех предыдущих недель.
Мне удалось ответить на этот вопрос, сделав копию таблицы (имена и недели). Я смотрю комбинацию имя / неделя в исходной таблице, оцениваю сумму текущей и следующих трех ячеек, чтобы она была больше 1.
Если true
, установите значение ячейки в 1.
Если false
, установить значение ячейки равным 0.
В результате получается таблица, в которой для каждой комбинации имени недели проверяется, соответствовал ли этот человек на этой неделе.
Формула для этого (для ячейки D200) выглядит следующим образом:
=IF(SUM(OFFSET(VLOOKUP($A200; $A$10:$99; MATCH(D$199; $10:$10; 0); FALSE); 0; 0; 1; 4))>0; 1; 0)
, в котором значения ячеек относятся к следующему:
=IF(SUM(OFFSET(VLOOKUP({NAME}; {ORIGINAL_TABLE}; MATCH({WEEK}; {ROW_WEEKS_ORIGINAL_TABLE}; 0); FALSE); 0; 0; 1; 4))>0; 1; 0)
Теперь я могу вычислить среднее значение для каждой строки, чтобы найти показатель соответствия для каждой недели. Однако, поскольку таблица является динамической, она скорее подвержена ошибкам. Этот лист также будет использоваться многими другими и поэтому должен быть надежным. Я бы предпочел формулу массива, которая оценивает данную формулу для каждой строки и отображает результат в 1 ячейке за каждую неделю в виде среднего значения между [0-1] по всем именам в списке.
Возможно, я очень близок к желаемому результату, но мне пока не удалось получить правильную формулу массива.