Přeskočit navigaci | Přeskočit na novinky
     

Jste zde: Úvodní stránka » excel » funkce » soucin-skalarni-sumproduct-funkce-excel
Microsoft Excel logo

SOUČIN.SKALÁRNÍ (SUMPRODUCT) funkce Excel

Videokurzy Excel

Ve spolupráci se SEDUO jsem vytvořil několik videokurzů:

Součet součinů odpovídajících prvků matic. Pronásobení dvou oblastí, včetně možností podmínek, které řádky se budou násobit.

Doplněno a zpřehledněno: 18.1.2016

Úvodem

Funkce, která dokáže sečíst součiny odpovídajících prvků matic. Pronásobí dvě (a více hodnot v řádku) a přičte další. V angličtině je název SUMPRODUCT. Pro přehledost je článek rozdělen na kapitoly.

Takže jdeme na to:

Trocha teorie SOUČIN.SKALÁRNÍ

Syntaxe:

SOUČIN.SKALÁRNÍ(pole1; [pole2]; [pole3];...)

nebo lze využít:

SOUČIN.SKALÁRNÍ(pole1*[pole2]*[pole3];...)

Popis argumentů:

  • Pole 1 poviné pole (matice), jejichž jednotlivé položky se budou sčítat.
  • pole2, pole3, ... 2 až 30 polí (matic), jejichž jednotlivé položky chcete pronásobit v řádku a sečíst řádky. Pole musí být stejně velká. Položky volitelné.

Poznámky:

  • Pokud nejsou pole stejně velká, obdržíte chybovou hodnotu #HODNOTA!.
  • Položky, které nejsou číselného typu, jsou brány jako nuly.

Celková cena za výrobky

Pokud potřebujete z tabulky zjistit celkovou cenu za prodané výrobky.

Zdrojová tabulka

Výrobek počet ks cena/ks
Produkt 1 1 5
Produkt 2 10 8
Produkt 3 100 7

Využítí funkce SOUČIN.SKALÁRNÍ.

Microsoft Excel SOUČIN.SKALÁRNÍ

Další možností řešení

Další možnosti je přidání dalšího sloupce, ve kterém vynásobíte počet prodaných kusů cenou za kus. Na konci sloupce sečtete například pomocí funkce SUMA.

Přípaně využít SUMA v maticovém počtu.

Matice ve vzorci

Zápis matice (pole) vložený přímo do funkce SOUČIN.SKALÁRNÍ. Pozor na zápis, buď dojde ke sčítaní položek (jedna matice), nebo jejich násobené (min dvě matice). Zadány dvě matice (platí pro českou verzi Excel od verze 2010).

Jedna matice - sčítání

=SOUČIN.SKALÁRNÍ({1\2;3\4;5\6})

Dvě matice - násobení

=SOUČIN.SKALÁRNÍ({1;3;5};{2;4;6})

Ukázka

Microsoft Excel SOUČIN.SKALÁRNÍ - matice

Poznámka: Více o maticích v samostatném článku Jak na matice - úvod, přeci jen zápis je odlišný od verze Excel (do 2007, a od 2010) a zda využívate českou verzi Excel nebo anglickou.

Počty položek

Potřebujete-li zjistit, kolik položek se objevuje v tabulce.

Pracovník Počet
Pepa 10
Iva 2
... ...

Ukázka řešení.

Microsoft Excel SOUČIN.SKALÁRNÍ

Kolik krát je v tabulce Pepa.

=SOUČIN.SKALÁRNÍ((B6:B17=""pepa"")*(B6:B17=""pepa""))

Kolik z prodejů přesáhlo 10. Vice v další kapitole

=SOUČIN.SKALÁRNÍ((C6:C17>10)*(C6:C17>10))

Další možností řešení

Další možnosti je využít funkce COUNTIFS.

SOUČIN.SKALÁRNÍ - Využít jako filtr

Jak využít funkci SOUČIN.SKALÁRNÍ jako filtr. Tj. funkce spočte počet hodnot, které odpovídají vaším požadavkům. Pro níže uvedenou tabulku například potřebujete zjistit kolik produktů je v kategorií moto.

Výrobek Kategorie Novinka Počet Cena/ks
Produkt 1 moto PRAVDA 1 5
Produkt 2 moto NEPRAVDA 10 6
Produkt 3 moto PRAVDA 100 7
Produkt 4 auto NEPRAVDA 1 1
Produkt 5 auto PRAVDA 10 2
Produkt 6 auto PRAVDA 100 3

Ukázky:

Filtr 1: Počet produktů v kategorii moto.

=SOUČIN.SKALÁRNÍ((C6:C11="moto")*(E6:E11>0))

Filtr 2: Počet produktů v kategorií moto, jedná se o novinku a prodalo se více než 20 ks.

=SOUČIN.SKALÁRNÍ((C6:C11="moto")*(D6:D11=PRAVDA)*(E6:E11>20))

Vzorec lze zkrátit (děkuji za podnět Jirkovi v komentářích):

=SOUČIN.SKALÁRNÍ((C6:C11="moto")*(D6:D11)*(E6:E11>20))

Poznámky

Lze využít operátory větší >, menší <, rozno =, nerovno <>, atd.

Ukázka řešní

Microsoft Excel SOUČIN.SKALÁRNÍ

SOUČIN.SKALÁRNÍ - podmínka v buňkách

Náhrada funkce SUMIFS

Máme zdrojové data a potřebujeme spočítat prodeje pro pracovníka Pepa v měsíci leden.

Pracovník Měsíc Počet
Pepa leden 10
Iva únor 2
... ... ...

Protože Logickou hodnotu musíte nějak ošetřit je místo odělovače atributu středník:

=SOUČIN.SKALÁRNÍ((B6:B17="pepa")*(C6:C17="leden")*D6:D17)

Případně další možností jak výsledek logické funkce PRAVDA/NEPRAVDA vyřešit:

=SOUČIN.SKALÁRNÍ(--(B6:B17="pepa");--(C6:C17="leden");D6:D17) =SOUČIN.SKALÁRNÍ(0+(B6:B17="pepa");0+(C6:C17="leden");D6:D17) =SOUČIN.SKALÁRNÍ(1*(B6:B17="pepa");1*(C6:C17="leden");D6:D17)

Chyba: pokud pouze atributy oddělíme středníkem obdržíte "chybu" tedy 0. Funkce počítá správně, jen vaše očekávání bylo asi jiné.

=SOUČIN.SKALÁRNÍ((B6:B17="pepa");(C6:C17="leden");D6:D17)

ŘEŠENÍ

Microsoft Excel SOUČIN.SKALÁRNÍ

POZNÁMKA: Lze využít elegantněji funkci SUMIFS, nebo použít funkci KDYŽ atd.

Dvě podmínky - pro jeden sloupec

Ze sloupce pracovník, potřebujeme zjistit celkový počet prodaných poležek pro pracovníky, Pepa a Eva. Do atributu pole se přídá jen mezi jednotlivé podmínky plus.

=SOUČIN.SKALÁRNÍ((B6:B17="pepa")+(B6:B17="Eva");C6:C17)

ŘEŠENÍ

Microsoft Excel SOUČIN.SKALÁRNÍ - dvě podmínky

POZNÁMKA: Lze využít elegantněji funkci SUMIFS, nebo použít funkci KDYŽ atd.

Chybové zadání v SOUČIN.SKALÁRNÍ

V zadání vzorce může dojít k chybám. Pokud nejsou oblasti stejně velké. Pokud se špatně nadefinují oblasti matice. Pokud se nevezme v úvahu, že výsledkem rozhodovací operace je logická hodnota PRAVDA - NEPRAVA. Proto se násobí, přičítá 0, atd.

Různé oblasti výsledkem chyba: #HODNOTA!

=SOUČIN.SKALÁRNÍ(B7:B9;C7:C8)

Násobení logických hodnot výsledkem bude 0 (i když v buňkách pole jsou číslené hodnoty)

=SOUČIN.SKALÁRNÍ((B6:B17="pepa");(C6:C17="leden");D6:D17)

Špatný zápis: Osobně se mi při ručním zápisu stává, že otáčím pořádí slov Skalarní.součin a pak se divím, že vzorec nefunguje ;)

Nečíselné hodnoty Nečíselné hodnoty se berou jako nula, kromě chybové hodnoty, kdy funkce skončí také s chybou.

Ukázky

Microsoft Excel SOUČIN.SKALÁRNÍ - chyby
Microsoft Excel VBA - stahuj logo

Ke stažení

Soubory ke stažení:


Související články

Závěrem

Využíváte funkci SOUČIN.SKALÁRNÍ? Máte nějakou zajímavou aplikaci této funkce? Můžete zmínit v komentářích.

Článek byl aktualizován: 18.01.2016 08:30

Odměna

Ušetřil vám tento web čas, peníze? Pomohl vyřešit problém? Jste ochotni poskytnout symbolickou odměnu na další rozvoj? Vybrte si formu odměny, která vám vyhovuje.


Pavel Lasák

Pavel Lasák - autor webu

Microsoft Office (Word, Excel, PowerPoint) se věnuji od roku 2006. Své vědomosti a zkušenosti dávám k dispozici na různých školeních a konzultacích, ale také na tomto webu. K dispozici na tomto webu je mnoho návodu, tipů a triků včetně desítek různých šablon.

   Pavel Lasák LinkedIn Profil    Pavel Lasák Google+ Profil    Pavel Lasák facebook Profil    Pavel Lasák twitter Profil

Doporučte tento článek přátelům

Pokud vám článek pomohl, případně si myslíte, že může pomoci i někomu dalšímu, budu rád když jej sdílením doporučíte přátelům - děkuji:



Komentáře


Petr Pecháček

Přidáno: 26.08.13 09:45

Nejsem angličtinář, ale SUMPRODUCT je řekl bych výmysl Microsoftu (v překladu volně součet součinu), v matematice platí tuším pojmy jako "scalar product", resp. "dot product"), takže ne vždycky je dobré bezhlavě bránit microsoftí angličtinu.

Petr Pecháček

Přidáno: 26.08.13 09:59

V praxi je SOUČIN.SKALÁRNÍ() jakýmsi ekvivalentem podmíněného součtu - maticového vzorce SUMA(KDYŽ(...)), resp. omezené funkce SUMIF(), novodobě pak SUMIFS().

Jiří Beran

Přidáno: 27.08.13 22:30

Souhlasím že české pojmenování je docela zavádějící a když už, měla by ta slova být alespoň v českém pořadí - nejprve přídavné a pak podstatné jméno. Jinak jen drobný komentář - tento zápis: =SOUČIN.SKALÁRNÍ((C6:C11="moto")*(D6:D11=PRAVDA)*(E6:E11>20)) se dá trochu zjednodušit na: =SOUČIN.SKALÁRNÍ((C6:C11="moto")*(D6:D11)*

JB

Přidáno: 27.08.13 22:39

... nějak jsem to špatně zadal - konec je uříznutý. Mělo tam být že se to dá zjednodušit na: =SOUČIN.SKALÁRNÍ((C6:C11="moto")*(D6:D11)*(E6:E11>20))

Pavel Lasák

Přidáno: 06.09.13 20:35

To Jiří Beran: Děkuji za doplnění. Osobně se mi stává, že slova při použití přehodím a pak hledám chybu. Většinou osobně používám raději funkce SUMIFS, COUNTIFS. Jen jsem měl dost dotazů na tuto funkci, proto byl vytvořen článek ať mám kam odkazovat a případně mohu dále doplňovat.

Juraj

Přidáno: 11.07.14 13:14

Dobry den.Doplnim priklad dalsieho pouzitia SUMPRODUCTU na Vasu ukazku Filtr 1: Počet produktů v kategorii moto. =SUMPRODUCT(--(C6:C11="moto")) Pri vasom zadani ste tam pocital aj s tym,ze pocet stlpec "E" je vacsi ako 0.To sa da zasa takto: =SUMPRODUCT(--(C6:C11="moto");--((E6:E11)>0)) A ten Filtr 2: Počet produktů v kategorií moto, jedná se o novinku a prodalo se více než 20 ks. takto: =SUMPRODUCT(--(C6:C11="moto");--(D6:D11="PRAVDA");--((E6:E11)>20)) Sumproduct ma vyhodu oproti countifs, ze sa da vysledok este aj spocitat.Cize moze naratat a este aj spocitat.

Jarmil Pospíšil

Přidáno: 28.11.14 01:25

Dobrý den, chci se zeptat jestli existuje něco podobného jako součin skalární ale výstup aby byl textový. V jednom sloupci mám čísla, v druhém názvy odrůd vín a na druhém listě jsou veškerá data. Jakmile se porovná první a druhý sloupec s Daty na druhém listu tak se automaticky přiřadí viniční trať která tam dle čísla a odrůdy patří. Děkuji

Štěpán

Přidáno: 11.12.14 18:36

Dobrý den, chtěl bych se zeptat, jak nahradím funkci součin.skalárná například v případě, kdy chci spočítat směrodatnou odchylku... vzorec vypadá nějak takhle =ODMOCNINA(SOUČIN.SKALÁRNÍ(A2:A26-N3;A2:A26-N3;C2:C26)/N2)... :) Děkuji za odpověd

Pavel Lasák

Přidáno: 03.01.15 09:25

To Jarmil Pospíšil: Nelze použít funkci SVYHLEDAT?

Jarmil Pospíšil

Přidáno: 12.01.15 00:27

To Pavel Lasák: Děkuji Vám za radu ohledně fce SVYHLEDAT. Když jsem to hledal tak jsem si nevšiml že tam máte danou tuto funkci s více podmínkami. Jsem takový víkendový pisálek. Ještě jedno Vám děkuji. Jarmil Pospíšil

Pavel Kopp

Přidáno: 26.09.15 08:02

Zdravim, mam dva sloupce C jsou cisla a D je datum. Pouzil jsem skalarni soucin abych mel v jedne bunce soucet sloupce C po filtrovani sloupce D, ale filtr sloupce D bych potreboval vypsat jako rozsah. Neni treba aby bylo v ramci jedne bunky, lze treba pouzit MIN a MAX hodnotu, ale tam uz jsem se pri tom filtrovani zaseknul. diky za pomoc.

Pavel Lasák

Přidáno: 17.10.15 16:58

To Pavel Kopp: Z popisu (pokud chápu spraávně) bych to viděl na maticovou funkci více v samostatném článku: maticové funkce

Martin Ždímal

Přidáno: 08.02.16 14:22

Dobrý den, pokud časové důvody umožní: testuji, jestli řetězec v A8:A10 někde obsahuje "celkem". Vzorec by pak měl vracet součet řádků v B8:B10, pro které je splněno, že ve sloupci A se "celkem" nevyskytuje (nemůžu použít SUBTOTAL): =SOUČIN.SKALÁRNÍ( (B8:B10); KDYŽ( IFERROR( NAJÍT("celkem";(A8:A10);1); 0 )<> 0; 0; 1)) resp. =SOUČIN.SKALÁRNÍ( (B8:B10); IFERROR( NAJÍT("celkem";(A8:A10);1); 0 )<> 0) Ale nefunguje to !!! Syntaxové omezení skalární součin nehlásí. Proč to nepočítá správně? Děkuji

Jarda

Přidáno: 13.03.16 15:00

to Martin Ždímal Váš vzorec jde řešit jednodušeji s použitím SUMIFS. Pokud v řádku A9 bude celkem sečte se A8+A10 atd. =SUMIFS(B8:B10;A8:A10;"<>celkem")






Excel


Sdílejte

Pomohl Vám návod?
Sdílejte na Facebooku, G+
LinkedIn...

Nové články

25.03.2017:
ROUNDUP, ROUNDDOWN - zaokrouhlování

07.04.2017:
Řazení Excel - bug - problém

09.04.2017:
Podmínkové funkce Excel - bug - problém


Newsletter

Přihlaste se odběru novinek a získejte:
Ebook zdarma -
10 kroků ke zvládnutí (Word, Excel, PowerPoint)
Šipka Kniha 3D Více o ebooku ...

TOPlist Licence Creative Commons webarchiv rss XML

Stránky o MS Office (Excel) produktu společnosti Microsoft. Neslouží jako technická podpora.
| Email na autora: pavel.lasak@gmail.com | Copyright © : Pavel Lasák 2004 - 2017 | 19031

Tento web zatím neprošel jazykovou korekturou. Beta verze redakčního systému.