Výuka a školení Excelu Výuka a školení Excelu Výuka a školení Excelu
Výuka a školení Excelu Výuka a školení Excelu

úterý 20. listopadu 2012

Funkce SUMIFS

Příklad

Potřebuji v tabulce sečíst hodnoty, které odpovídají určitým kritériím. Těch kritérií může být více - pokud je jen jedno, postačuje jednodušší funkce SUMIF.
Např. tady potřebuji sečíst ceny všech aut, která jsou červená a mají najeto méně než 150 000 km.

Návod

Použiji funkci SUMIFS s takovouto syntaxí:


  • První parametr označuje oblast, ze které se bere součet - v mém případě je to Cena.
  • Druhý parametr označuje první oblast, podle které filtruji - v mém případě je to Najeto.
  • Třetí parametr označuje filtrovací kritérium, podle kterého filtruji v oblasti, kterou jsem zadal ve druhém parametru 
  • Čtvrtý parametr označuje další oblast, podle které filtruji, pátý kritérium této oblasti a tak dále - kritérií může být hodně.
  • Alternativou k funkci SUMIFS (a obdobným funkcím) jsou databázové funkce typu DSUM (česky DSUMA) a případně funkce SUBTOTAL. Funkce DSDUM má jednu zásadní výhodu - umožňuje zadávat kritéria se vztahem Nebo. Tedy šlo by například sečíst dohromady ceny červených a modrých aut.
https://www.dropbox.com/s/5jmlixjrwcmz7b1/SUMIFS.xlsx


26 komentářů:

  1. Je ta syntax napisna spravne? Akosi mi to nesedi :-(

    OdpovědětVymazat
  2. Dobrý den

    Co když potřebuju např cena pod 150000 a pro Barvu žlutá a stříbrná?

    Jde to řešit jinak než sečíst dva SUMIFS?

    OdpovědětVymazat
  3. Dobrý den, v případě, že bych chtěl sečíst všechna, co nejsou červená, jak by zněl výraz pro "nerovná se červená"? Děkuji.

    OdpovědětVymazat
  4. To nerovnítko je ale třeba zapsat nějak takhle:
    CONCATENATE("<>";"červená")

    OdpovědětVymazat
  5. Kritéria jsou vůči sobě ve vztahu logického součinu (AND). Je možno zapsat i kritéria ve vztahu NEBO (OR)?

    OdpovědětVymazat
  6. Kritéria jsou vůči sobě ve vztahu logického součinu (AND). Je možno zapsat i kritéria ve vztahu NEBO (OR)?

    OdpovědětVymazat
  7. Kritéria jsou vůči sobě ve vztahu logického součinu (AND). Je možno zapsat i kritéria ve vztahu NEBO (OR)?

    OdpovědětVymazat
  8. Kritéria jsou vůči sobě ve vztahu logického součinu (AND). Je možno zapsat i kritéria ve vztahu NEBO (OR)?

    OdpovědětVymazat
  9. Kritéria jsou vůči sobě ve vztahu logického součinu (AND). Je možno zapsat i kritéria ve vztahu NEBO (OR)?

    OdpovědětVymazat
  10. Kritéria jsou vůči sobě ve vztahu logického součinu (AND). Je možno zapsat i kritéria ve vztahu NEBO (OR)?

    OdpovědětVymazat
  11. Kritéria jsou vůči sobě ve vztahu logického součinu (AND). Je možno zapsat i kritéria ve vztahu NEBO (OR)?

    OdpovědětVymazat
  12. Kritéria jsou vůči sobě ve vztahu logického součinu (AND). Je možno zapsat i kritéria ve vztahu NEBO (OR)?

    OdpovědětVymazat
  13. Anebo, zda je možno hledat v oblasti kritérií více hodnot, nežli jednu, která vyhovuje.

    OdpovědětVymazat
  14. Tak jsem to řešil. Ve vzorci však mám volbu zaokrouhlení na tisíce či v korunách a volbu od počátku roku či jen konkrétní měsíc. Ten vzorec upravovat v tabulce 52x8 je hrůza. a možných variant s NEBO je až 6.

    OdpovědětVymazat
  15. Díky za ten odkaz - to funguje.
    Jen řetězce kritérií nejdou nahradit odkazem.

    OdpovědětVymazat
  16. Jinak ještě o tom přemýšlím - nejlepší řešení by asi bylo použít databázovou funkci DSUM (DSUMA).

    OdpovědětVymazat
  17. Měl jsem dovolenou, díky. Asi jsem prve funkci DSUMA nepochopil správně.

    Luboš

    OdpovědětVymazat
  18. Mám ještě jeden dotaz:
    pracuji s externí databází SQL, vytvořím připojení a po spuštění se celá tabulka natáhne do Excelu. Problém je však v tom, že databáze obsahuje téměř milion jedno sto tisíc záznamů. Přitom mi stačí přetáhnout jen poslední rok. Je možno udělat výběr již nad importem dat?

    OdpovědětVymazat
  19. Ideální by bylo udělaz vyfiltrovaný dotaz už přímo v databázi, ale jinak by to mělo jít např. v Power Query.

    OdpovědětVymazat
  20. Bohužel mám verzi MS Office pro podnikatele, hlásí, že pro Power Qwery není vhodná.

    OdpovědětVymazat
  21. Výběr nad importem jsem vyřešil ve vlastnostech připojení nastavením Typu příkazu na SQL a v Textu příkazu jsem napsal přímo příkaz SQL. Funguje.

    OdpovědětVymazat
  22. Vracím se ke svým dotazům ze srpna. K řešení součtování jsem použil Autofilter a Subtotal (program má vyčíslit součty podle kritérií do jednotlivých políček rozborové tabulky). Řešení je funkční, avšak velmi pomalé. Vrátil jsem se k Vašemu návrhu použít funkci DSUMA. Malá komplikace je v tom, že pro každé počítané políčko v konečné tabulce se mění kritéria pro DSUMA. Nedaří se mi však správně zapsat argumenty funkce.
    To, co najdu v nápovědě funguje na listu, ve však ve VBA.
    Tabulka databáze je vyplněna daty z externí databáze - jmenuje se Helios001_TabDenik.

    Luboš
    l.pokorny@iex.cz

    OdpovědětVymazat
  23. Dobrý den Luboši,
    nevím jestli teď úplně rozumím Vašemu problému, ale obecně - pokud by mě vadilo, že u DSUMA se musí pro každou hodnotu změnit kritérium, mohlo by pomoci ji zkombinovat s funkcí TABULKA/TABELOVAT:
    http://www.excelentnitriky.com/2014/08/funkce-tabelovat-table.html

    OdpovědětVymazat
  24. Díky za reakci na můj komentář. Každý popis funkce DSUMA je jasný a zápis je jednoduchý. Ve VBA mám zápis vzorce např.:SOUČET=WorkSheetFunction.DSUMA(Helios001_TabDenik;"Castka";R1C24:R(X)C28). Vyzkoušel jsem mnoho variant. Jde mi o správný zápis této funkce ve VBA. X udává počítaný rozměr oblasti kritérií.

    Luboš

    OdpovědětVymazat