У мене є Google Таблиці, де продукти вказані у вигляді рядків, а атрибути - як стовпці. Атрибут кожного продукту оцінюється за шкалою 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
)
що, як бачите, може стати дуже важким для управління, оскільки додаються більше атрибутів. В ідеалі я шукаю рішення, яке не потребує створення тимчасових комірок, щоб допомогти з розрахунками.
Чи є якась вбудована функція чи загальна умова, яка може допомогти мені обчислити ці середньозважені середні показники?
$
знаки?