У меня есть Google Sheets, где продукты перечислены в виде строк, а атрибуты - в виде столбцов. Атрибут каждого продукта оценивается по шкале от 1 до 10. Мой последний столбец является средним из этих значений (то есть =Average(B2:D2)
). Это прекрасно работает, если каждый атрибут имеет одинаковый вес.
+--------+-------+-------+-------+---------+
| | Attr1 | Attr2 | Attr3 | Overall |
+--------+-------+-------+-------+---------+
| Prod 1 | 10 | 8 | 9 | 9 |
| Prod 2 | 2 | 10 | 7 | 6.33 |
| Prod 3 | 4 | 6 | 6 | 5.33 |
+--------+-------+-------+-------+---------+
Проблема в том, что я хочу, чтобы каждый атрибут имел разный вес. Например, Attr1 может не иметь значения и должен стоить только 50%, в то время как Attr3 очень важен и должен стоить 300%.
+--------+-------------+-------+--------------+---------+
| | Attr1 (50%) | Attr2 | Attr3 (300%) | Overall |
+--------+-------------+-------+--------------+---------+
| Prod 1 | 10 | 8 | 9 | 8.89 |
| Prod 2 | 2 | 10 | 7 | 7.11 |
| Prod 3 | 4 | 6 | 6 | 5.78 |
+--------+-------------+-------+--------------+---------+
Значение для первой строки будет:
(10*0.5 + 8*1 + 9*3) / (0.5+1+3) = 8.89
который можно рассчитать с помощью:
(
B2*(IFERROR(REGEXEXTRACT(B1, "\d+"), 100)/100)
+ C2*(IFERROR(REGEXEXTRACT(C1, "\d+"), 100)/100)
+ D2*(IFERROR(REGEXEXTRACT(D1, "\d+"), 100)/100)
) / (
IFERROR(REGEXEXTRACT(B1, "\d+"), 100)/100
+ IFERROR(REGEXEXTRACT(C1, "\d+"), 100)/100
+ IFERROR(REGEXEXTRACT(D1, "\d+"), 100)/100
)
которым, как вы можете видеть, может стать очень сложно управлять по мере добавления новых атрибутов. В идеале я ищу решение, которое не требует создания временных ячеек, чтобы помочь с расчетами.
Существует ли какая-либо встроенная функция или общее соглашение, которое может помочь мне рассчитать эти средневзвешенные значения?
$
означают знаки?