Mam Arkusze Google, w których produkty są wymienione jako wiersze, a atrybuty jako kolumny. Atrybut każdego produktu jest oceniany w skali 1-10. Moja ostatnia kolumna to średnia z tych wartości (tj =Average(B2:D2)
.). Działa to dobrze, jeśli każdy atrybut ma taką samą wagę.
+--------+-------+-------+-------+---------+
| | Attr1 | Attr2 | Attr3 | Overall |
+--------+-------+-------+-------+---------+
| Prod 1 | 10 | 8 | 9 | 9 |
| Prod 2 | 2 | 10 | 7 | 6.33 |
| Prod 3 | 4 | 6 | 6 | 5.33 |
+--------+-------+-------+-------+---------+
Problem polega na tym, że chcę, aby każdy atrybut miał inną wagę. Na przykład Attr1 może nie być ważny i powinien być wart tylko 50%, podczas gdy Attr3 jest bardzo ważny i powinien być wart 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 |
+--------+-------------+-------+--------------+---------+
Wartość dla pierwszego rzędu to:
(10*0.5 + 8*1 + 9*3) / (0.5+1+3) = 8.89
które można obliczyć za pomocą:
(
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
)
które, jak widać, mogą stać się bardzo trudne do zarządzania w miarę dodawania kolejnych atrybutów. Idealnie szukam rozwiązania, które nie wymaga tworzenia tymczasowych komórek, aby pomóc w obliczeniach.
Czy jest jakaś wbudowana funkcja lub wspólna konwencja, która może pomóc mi obliczyć te średnie ważone?
$
oznaczają znaki?