формула массива для вычисления среднего значения диапазона на основе критериев соответствия ячеек связанным значениям в таблице

#google-sheets #google-sheets-formula #spreadsheet #array-formulas

#google-таблицы #google-таблицы-формула #электронная таблица #массив-формулы

Вопрос:

Я работаю над обновлением рабочей книги Google Spreadsheet с некоторыми дополнительными функциями.

У меня есть различные элементы, которые проходят через отделы. Я хочу оценить прогресс на основе их статуса, выбранного из выпадающего меню. Таким образом, мы можем видеть, насколько далеко продвинулись в работе.

У меня есть пример файла с рабочей версией и новой версией, которую я хочу решить: Пример файла

Исходная версия содержит слова состояния и связанные значения. Выберите статус в раскрывающемся списке — затем вычислите среднее значение как для элемента, так и для отдела на основе значений и количества записей.
Записи включают: Готово = 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)), )))
 

Скриншот рабочей версии:
Пример1

Новая версия с дополнительными значениями таблицы: Пример2

Спасибо @player0 за оригинальную версию этого.

Ответ №1:

Если вы измените значение для status 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),""))
 

введите описание изображения здесь