Я работаю над обновлением электронной таблицы Google с некоторыми дополнительными функциями.
У меня есть различные предметы, которые проходят через отделы. Я хочу оценивать прогресс на основе их статуса, выбранного из раскрывающегося меню. Таким образом, мы можем увидеть, насколько далеко мы продвинулись в работе.
У меня есть пример файла с рабочей версией и новой версией, которую я хочу решить: Пример файла
Исходная версия имеет слова состояния и связанные значения. Выберите статус в раскрывающемся списке, а затем рассчитайте среднее значение как для элемента, так и для отдела на основе значений и количества записей.
Записи включают: Готово = 100 %, Активно = 50 %, Очередь = 0 %, Нет = игнорировать значение
В новой версии я хочу включить в таблицу больше статусных слов и значений, чтобы я мог обновлять их в зависимости от потребностей проекта.
Формула в рабочей версии:
=ARRAYFORMULA(TRANSPOSE(IF(LEN(TRANSPOSE(C10:10)),MMULT(IFERROR((N(REGEXMATCH(TRANSPOSE(C10:O), "Done"))+N(REGEXMATCH(TRANSPOSE(C10:O),"Active"))/2)/MMULT(N(REGEXMATCH(TRANSPOSE(C10:O),"[^None]")),(ROW(C10:C)^0)),0),(ROW(C10:C)^0)), )))
Скрин рабочей версии:
Новая версия с дополнительными табличными значениями:
Спасибо @player0 за оригинальную версию этого.
Если вы измените значение статуса None
на #N/A
, вы можете использовать следующие формулы:
для колонн
=ArrayFormula(IFERROR(MMULT(COLUMN($A$1:$J$1)^0,IFERROR(VLOOKUP(C16:O25,$A$2:$B$11,2,false),0))/MMULT(COLUMN($A$1:$J$1)^0,--(ISNUMBER(VLOOKUP(C16:O25,$A$2:$B$11,2,false)))),""))
для строк
=ArrayFormula(IFERROR(MMULT(IFERROR(VLOOKUP(C16:O25,$A$2:$B$11,2,false),0),ROW(A1:A13)^0)/MMULT(--(ISNUMBER(VLOOKUP(C16:O25,$A$2:$B$11,2,false))),ROW(A1:A13)^0),""))