Dokumentace/Výpočetní funkce/SUMIF
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Donate
Název funkce:
SUMIF
Kategorie:
Matematické
Shrnutí:
V nejjednodušší podobě funkce SUMIF určí, které buňky v rozsahu splňují zadané kritérium, a vypočítá součet čísel v těchto odpovídajících buňkách. Ve své druhé podobě SUMIF určí, které buňky v jednom rozsahu splňují zadané kritérium, a poté vypočítá součet čísel v odpovídajících buňkách druhého rozsahu.
Kritérium předávané do funkce SUMIF může využívat zástupné znaky nebo regulární výrazy.
Syntaxe:
SUMIF(Oblast; Kritéria[; Oblast pro součet])
Vrátí:
Vrací reálné číslo, které je výsledkem sčítání čísel v příslušných buňkách.
Argumenty:
Rozsah parametrů
Oblast určuje buňky, které mají být porovnány, a pokud je vynechán argument Oblast pro součet, buňky, které mají být sečteny. Oblast má obvykle jednu z následujících podob:
- Odkaz na rozsah buněk (například A1:A25). Pokud je Oblast pro součet vynechána, pak Oblast může použít operátor spojování odkazů (~).
- Název pojmenované oblasti.
- Název databázové oblasti.
Kritérium parametru
Kritérium je kritérium pro přiřazení nebo buňka obsahující toto kritérium. Kritérium může mít jednu z následujících podob:
- Číslo, například 34,5. Data a logické hodnoty (TRUE nebo FALSE) se považují za čísla.
- Výraz, například 2/3, SQRT($D$1) nebo DATE(2021; 11; 1).
- Textový řetězec, například "golf" nebo "<>10".
SUMIF hledá buňky v Oblasti, které se rovnají Kritériu, pokud Kritérium není textový řetězec začínající komparátorem (>, <, >=, <=, = nebo <>). V posledním případě SUMIF porovná buňky v Oblasti se zbytkem textového řetězce (pokud možno interpretovaného jako číslo, jinak jako text). Například podmínka ">4,5" testuje, zda je obsah každé buňky větší než číslo 4,5, podmínka "<pes" testuje, zda je obsah každé buňky abecedně před textem "pes", a podmínka "<>2021-11-01" testuje, zda se obsah každé buňky nerovná zadanému datu.
Kritérium podporuje následující konkrétní chování:
- Řetězec "=" odpovídá prázdným buňkám. Například vzorec
=SUMIF(B1:B10; "="; A1:A10)
vrátí součet všech hodnot v rozsahu A1:A10, pokud jsou všechny buňky v oblasti B1:B10 prázdné. Všimněte si, že "=0" neodpovídá prázdným buňkám. - Řetězec "<>" odpovídá neprázdným buňkám. Například vzorec
=SUMIF(C1:C10; "<>"; A1:A10)
vrátí součet všech hodnot v oblasti A1:A10, pokud v rozsahu C1 nejsou žádné prázdné buňky: C10. - Pokud hodnota za komparátorem <> není prázdná, pak Kritérium odpovídá libovolnému obsahu buňky kromě této hodnoty, včetně prázdných buněk.
Parametr Oblast pro součet
Oblast pro součet určuje buňky, které mají být sečteny, a má jeden z tvarů uvedených pro Oblast. Oblast pro součet by měla mít normálně stejné rozměry jako Oblast - pokud tomu tak není, SUMIF sečte rozsah buněk začínající první buňkou v Oblast pro součet a mající stejné rozměry jako Oblast.
Chybové stavy
- Pokud je zadán parametr Oblast pro součet a v rámci Oblasti je použit operátor spojování odkazů, pak SUMIF hlásí chybu seznamu parametrů (Chyba:504).
Další detaily:
Podrobnosti specifické pro funkci SUMIF
- SUMIF umožňuje pouze jedno kritérium shody. Pokud potřebujete sčítat buňky na základě více kritérií, použijte funkci SUMIFS.
- Výchozí porovnávání prováděné funkcí SUMIF nerozlišuje velká a malá písmena. Při použití regulárního výrazu však lze provést porovnání podle velikosti písmen, a to tak, že se do regulárního výrazu vloží modifikátor způsobu "(?-i)", jak ukazuje jeden z příkladů níže.
- Chování funkce SUMIF je ovlivněno několika nastaveními dostupnými v dialogovém okně ▸ ▸ ▸ ( ▸ ▸ ▸ v systému MacOS).
- Pokud je zaškrtnuto políčko Kritéria hledání = a <> musí platit pro celé buňky, pak podmínka "červená" bude odpovídat pouze "červená"; pokud není zaškrtnuta, bude odpovídat "červená", "Fred", "červený sleď".
- Pokud je zaškrtnuto políčko Povolit zástupné znaky ve vzorcích, bude podmínka odpovídat pomocí zástupných znaků - takže například "b?g" bude odpovídat "bag", "beg", "big", "bog" a "bug".
- Pokud je zaškrtnuto políčko Povolit regulární výrazy ve vzorcích, bude podmínka odpovídat pomocí regulárních výrazů - takže například "r.d" bude odpovídat "red", "rid" a "rod", zatímco "red.*" bude odpovídat "red", "redraw" a "redden".
- Nastavení zaškrtávacího políčka Rozlišovat velikost písmen nemá žádný vliv na fungování funkce SUMIF.
Obecné informace o regulárních výrazech v Calcu
- Regulární výraz je řetězec znaků definující vzor textu, který má být porovnán. Podrobnější obecné informace naleznete na stránce Regular expression ve Wikipedii.
- Regulární výrazy se hojně používají v mnoha oblastech a existuje mnoho procesorů regulárních výrazů. Calc využívá open source balíček regulárních výrazů od International Components for Unicode (ICU), další podrobnosti včetně úplné definice syntaxe regulárních výrazů ICU najdete v jejich dokumentaci Regular Expressions.
- Systém nápovědy LibreOffice navíc poskytuje vysokoúrovňový seznam regulárních výrazů.
- Mechanismus regulárních výrazů Calcu podporuje číslované skupiny zachycení, které umožňují identifikovat dílčí rozsahy v rámci shody a použít je v náhradním textu. Závorky se používají k seskupení složek regulárního výrazu a vytvoření číslované skupiny zachycení. Chcete-li do náhradního textu vložit skupinu zachycení, použijte tvar "$n", kde n je číslo skupiny zachycení.
Obecné informace o zástupných znacích Calcu
Zástupné znaky jsou speciální znaky, které lze použít ve vyhledávacích řetězcích předávaných jako argumenty některým funkcím Calcu; lze je také použít k definování kritérií vyhledávání v dialogovém okně Najít a nahradit. Použití zástupných znaků umožňuje definovat pokročilejší parametry hledání pomocí jediného vyhledávacího řetězce.
Calc podporuje jako parametry zástupné znaky nebo regulární výrazy v závislosti na aktuálním nastavení aplikace. Ve výchozím nastavení jsou místo regulárních výrazů podporovány zástupné znaky.
Chcete-li se ujistit, že jsou zástupné znaky podporovány, přejděte do
▸ ▸ ▸ a zkontrolujte, zda je vybrána možnost Povolit zástupné znaky ve vzorcích. Všimněte si, že v tomto dialogovém okně můžete přepnout na regulární výrazy výběrem možnosti Povolit regulární výrazy ve vzorcích nebo zvolit nepodporu zástupných znaků ani regulárních výrazů.V následující tabulce jsou uvedeny zástupné znaky, které Calc podporuje.
Zástupný znak | Popis |
---|---|
? (otazník) | Odpovídá libovolnému jednotlivému znaku. Například vyhledávací řetězec „b?g“ odpovídá „bag“ a „beg“, ale nebude odpovídat „boog“ nebo „mug“. Upozorňujeme, že nebude odpovídat ani „bg“ , od té doby "?" musí přesně odpovídat jednému znaku. "?" zástupný znak neodpovídá nulové shodě znaků. |
* (hvězdička) | Odpovídá libovolné sekvenci znaků, včetně prázdného řetězce. Například hledaný řetězec „*cast“ bude odpovídat „cast“, „forecast“ a „outcast“, ale nebude odpovídat „forecaster“ pomocí výchozího nastavení Calc. Pokud je volba Kritéria vyhledávání = a <> se musí vztahovat na celé buňky je zakázáno v ▸ ▸ ▸ , pak „forecaster" bude shoda pomocí vyhledávacího řetězce „*cast". |
~ (tilda) | Zachrání speciální význam otazníku, hvězdičky nebo znaku tilda, který následuje bezprostředně za znakem tilda. Například vyhledávací řetězec "proč~?" odpovídá "proč?", ale nebude odpovídat "proč" ani "proč~". |
Při porovnávání se zástupnými znaky se nerozlišují velká a malá písmena, proto "A?" bude odpovídat jak "A1", tak "a1".
Tyto zástupné znaky jsou podporovány v aplikaci Calc i Microsoft Excel. Pokud tedy potřebujete interoperabilitu mezi oběma aplikacemi, zvolte práci se zástupnými znaky místo regulárních výrazů. Naopak, pokud není interoperabilita nutná, zvažte použití regulárních výrazů pro výkonnější možnosti vyhledávání.
Příklady:
Základní příklady
Vzorec | Popis | Vrátí |
---|---|---|
=SUMIF(A1:A9;"<0"), kde buňky A1 až A9 obsahují čísla -1, 2, -3, 4, -5, 6, -7, 8 a -9. | Zde funkce sečte záporná čísla v rozsahu buněk A1:A9. | −25 |
=SUMIF(A1:A9; F1), kde buňky A1 až A9 obsahují čísla -1, 2, -3, 4, -5, 6, -7, 8 a -9 a buňka F1 obsahuje řetězec ">=0" (zadaný bez uvozovek). | Zde funkce sčítá nezáporná čísla v rozsahu buněk A1:A9. | 20 |
=SUMIF(B2:B4; "<"&F2; C2:C4), kde buňky B2 až B4 obsahují čísla 7, 9 a 11, buňky C2 až C4 obsahují čísla 4, 5 a 6 a buňka F2 obsahuje číslo 10. | Zde funkce určí, že hodnoty v buňkách B2 a B3 jsou menší než 10, a sečte hodnoty v buňkách C2 a C3. | 9 |
=SUMIF(D1:D9; "jablka"; E1:E9), kde buňky D1, D4, D5, D6 a D9 obsahují řetězec "jablka"; buňky D2, D3, D7 a D8 obsahují text "hrušky" a buňky E1 až E9 obsahují čísla 12, 19, 10, 27, 97, 73, 79, 71 a 40, která představují množství příslušného ovoce. | Zde funkce vypočítá celkové množství jablek. | 249 |
Další příklady
Příklady v této podkapitole vycházejí z malé databáze údajů o prodeji sportovního vybavení, přičemž údaje jsou uspořádány podle následující tabulky.
A | B | C | D | E | |
---|---|---|---|---|---|
1 | Datum | Hodnota tržeb | Kategorie | Oblast | Zaměstnanci |
2 | 2021-10-02 | $1,508 | Golf | Východ | Hans |
3 | 2021-10-02 | $410 | Tenis | Sever | Kurt |
4 | 2021-10-02 | $2,340 | Jachting | Jih | Ute |
5 | 2021-10-03 | $4,872 | Tenis | Východ | Brigitte |
6 | 2021-10-06 | $3,821 | Tenis | Jih | Fritz |
7 | 2021-10-06 | $2,623 | Tenis | Východ | Fritz |
8 | 2021-10-07 | $3,739 | Golf | Jih | Fritz |
9 | 2021-10-08 | $4,195 | Golf | Západ | Ute |
10 | 2021-10-10 | $2,023 | Golf | Východ | Hans |
Vzorec | Popis | Vrátí |
---|---|---|
=SUMIF(B2:B10; ">=4000") | Zde funkce sečte číselné položky v údajích Hodnota tržeb, které jsou větší nebo rovny 4 000 USD. | $9,067 |
=SUMIF(E2:E10; "ute"; B2:B10) | Zde funkce vyhledá položky pro Ute v údajích Zaměstnanec a sečte odpovídající číselné položky v údajích Hodnota tržeb. | $6,535 |
=SUMIF(CategoryData; "golf"; B2:B10), kde byl vytvořena pojmenovaná oblast CategoryData, který pokrývá rozsah buněk C2:C10. | Zde funkce vyhledá položky pro Golf v údajích Kategorie a sečte odpovídající číselné položky v údajích Hodnota tržeb. | $11,465 |
=SUMIF(D2:D10; F1; B2:B10), kde buňka F1 obsahuje text ">=jih" (zadaný bez uvozovek). | Zde funkce vyhledá položky Jih a Západ v údajích "´Oblast´" a sečte odpovídající číselné položky v údajích "Hodnota prodeje". | $14,095 |
=SUMIF(A2:A10; DATE(2021; 10; 2); B2:B10) | Zde funkce vyhledá položky pro rok 2021-10-02 ve sloupci Datum a sečte odpovídající číselné položky v údajích Hodnota tržeb. | $4,258 |
=SUMIF(A2:A10; ">="&DATE(2021; 10; 7); B2:B10) | Zde funkce vyhledá ve sloupci Datum záznamy s datem 2021-10-07 nebo později a sečte odpovídající číselné záznamy v údajích Hodnota tržeb. | $9,957 |
=SUMIF(D2:D10; "????"; B2:B10) | Tento příklad bude popsaným způsobem fungovat pouze v případě, že jsou povoleny zástupné znaky. Zde funkce vyhledá čtyřznakové položky v údajích "Oblast" (Východ a Západ) a sečte odpovídající číselné položky v údajích "Hodnota tržeb". | $15,221 |
=SUMIF(E2:E10; "^f.*"; B2:B10) | Tento příklad bude popsaným způsobem fungovat pouze v případě, že jsou povoleny regulární výrazy. Zde funkce vyhledá položky v údajích Zaměstnanec, které začínají písmenem "f" nebo "F" (Fritz), a sečte odpovídající číselné položky v údajích Hodnota tržeb. | $10,183 |
=SUMIF(E2:E10; "(?-i)ute"; B2:B10) | Tento příklad bude popsaným způsobem fungovat pouze v případě, že jsou povoleny regulární výrazy. Modifikátor režimu "(?-i)" v regulárním výrazu se změní na shodu rozlišující malá a velká písmena, takže v datech Zaměstnanec nebudou nalezeny žádné záznamy. Srovnejte to s druhým příkladem v této tabulce. | $0 |
Související funkce LibreOffice:
ODF standard:
Související (nebo podobné) funkce Excelu:
SUMIF