Chcę wiedzieć, jak podać zwięzłą formułę dla następującej długiej formuły w arkuszu Excel:
= (A1*A6)+(B1*B6)+(C1*C6)...
Czy używam funkcji sumowania, czy jest do tego inna funkcja? Myślę, że użycie dwukropka z SUM
funkcją powinno pomóc, ale nie wiem, jak go używać.
Odpowiedzi:
Szukasz funkcji SUMPRODUCT .
Zwróci to sumę produktów odpowiadających produktów w dwóch (lub więcej) zakresach.
Jak widać z dokumentacji Microsoft, z którą się połączyłem, zakresy nie muszą być pojedynczymi wierszami ani pojedynczymi kolumnami (chociaż muszą mieć takie same wymiary).
SUMPRODUCT może pomnożyć wartości z maksymalnie 255 różnych zakresów. Na przykład
=SUMPRODUCT(A1:C1,A6:C6,A11:C11)
jest taki sam jak=A1*A6*A11+B1*B6*B11+C1*C6*C11
.źródło
SUM
funkcja nie będzie działać, ponieważ po prostu dodaje elementy. Musisz pomnożyć wartości przed przejściem do SUM like=SUM(A1*A6, B1*B6, C1*C6, D1*D6, E1*E6)
Oczywiście możesz także użyć tego,
=A1*A6 + B1*B6 + C1*C6 + D1*D6 + E1*E6
co powoduje prawie taki sam wysiłek pisania, jakSUM
Istnieje wiele lepszych rozwiązań. Jednym ze sposobów jest użycie formuły tablicowej . Tam możesz zobaczyć dokładny przykład taki jak twój:
Aby użyć formuły tablicowej w twoim przypadku, możesz wpisać (oczywiście musisz odpowiednio zmienić ostatni element tablicy)
a następnie naciśnij Ctrl+ Shift+Enter
Formuła tablicowa jest bardzo potężnym narzędziem. Używaj go jednak ostrożnie. Za każdym razem, gdy musisz go edytować, nie możesz zapomnieć o naciśnięciu Ctrl+ Shift+Enter
Jest także szybszy, ponieważ wzorzec dostępu jest już znany. Teraz zamiast wykonywania 11 różnych obliczeń osobno, można go wektoryzować i wykonać równolegle, wykorzystując wiele rdzeni i jednostkę SIMD w CPU
źródło
MOD
) Spowodują uszkodzenieSUMPRODUCT
, a następnie musisz zastąpić je formułą Array. Nie wspominając już o tym, że każda wydana wersja pakietu Office ma jeszcze częściej używane formuły tablicowe dodane jako oficjalne funkcje (np.MAXIFS
W 365). Jeśli twoja formuła tablicowa jest powolna, niezgrabna i łamie się, prawdopodobnie musisz zoptymalizować swój kod. I oczywiście - ponieważ PowerQuery jest dodatkowym rozszerzeniem rozszerzenia, wiele firm (z różnych powodów) nie uwzględni go w pakiecie kompilacji korporacyjnej, co czyni go gorszym rozwiązaniem dla rozproszonych celów biznesowych.Innym podejściem jest wstawienie w A7 wyrażenia = A1 * A6 i skopiowanie w prawo tak daleko, jak chcesz, a następnie zsumowanie wiersza 7 $, aby uzyskać ostateczną odpowiedź. Nie robi tego w jednej komórce, jak chcesz, ale czasami posiadanie produktów pośrednich jest przydatne. Użyłem obu wersji. Ten wydaje mi się bardziej podobny do Excela, ale twój gust może się różnić.
źródło
jeśli umieścisz listę liczb w kolumnach zamiast wierszy (powiedzmy dwie kolumny A i B), możesz użyć funkcji = Sumproduct (A: A, B: B) w ten sposób. da ci iloczyn tylu liczb, ile jest w kolumnach A i B.
Możesz użyć tyle kolumn w funkcji Sumproduct, ile potrzebujesz
źródło
Jeśli w wierszach 1 i 6 nie ma nic innego niż to, co chcesz mieć
SUMPRODUCT()
, możesz skorzystać z pomysłu wymienionego w tym komentarzu . W twoim przypadku, jak opisano w pytaniu, użyłbyś=SUMPRODUCT(1:1,6:6)
źródło
SUMPRODUCT(1:1,2:2)
a ja odpowiedziałem na podstawie tego komentarza, wyjaśniając, w jaki sposób można go wykorzystać na podstawie pierwotnego pytania i jakie byłoby to ograniczenie.