Pokyny k používání a příklady maticových vzorců
Platí pro
Excel pro Microsoft 365 Excel pro Microsoft 365 pro Mac Excel 2024 Excel 2024 pro Mac Excel 2021 Excel 2021 pro Mac Excel 2019 Excel 2016 Excel pro iPad Excel pro iPhone

Maticový vzorec je vzorec, který může provádět více výpočtů u jedné nebo více položek v matici. Matici si můžete představit jako řádek nebo sloupec hodnot nebo kombinaci řádků a sloupců hodnot. Maticové vzorce můžou vracet buď víc výsledků, nebo jenom jediný výsledek.

Od aktualizace Microsoftu 365 ze září 2018 všechny vzorce, které můžou vrátit více výsledků, automaticky přesahují do sousedních buněk. Tuto změnu doprovází několik nových funkcí dynamických matic. Dynamické maticové vzorce, ať už používají existující funkce nebo dynamické maticové funkce, stačí zadat jenom v jedné buňce a potvrdit je stisknutím klávesy ENTER. Starší maticové vzorce vyžadovaly nejprve výběr celé výstupní oblast a potvrzení vzorce stisknutím kombinace kláves CTRL+SHIFT+ENTER. Obvykle se označují jako vzorceCSE.

Pomocí maticových vzorců můžete provádět složité úlohy, například:

  • Rychle vytvářet ukázkové datové sady.

  • Spočítat počet znaků obsažených v oblasti buněk.

  • Sečíst pouze čísla, která splňují určité podmínky, například nejnižší hodnoty v oblasti, nebo čísla, která spadají mezi horní a dolní hranici.

  • Sečíst každou N-tou hodnotu v oblasti hodnot.

Následující příklady ukazují, jak vytvořit vícebuňkové a jednobuňkové maticové vzorce. Tam, kde to bylo možné, jsme zahrnuli příklady některých dynamických maticových funkcí a také existujících maticových vzorců zadaných jako dynamické i starší matice.

Stažení příkladů

Stáhněte si ukázkový sešit se všemi příklady maticových vzorců v tomto článku.

Toto cvičení ukazuje, jak používat vícebuňkové a jednobuňkové vzorce pro výpočet údajů o prodeji. První sada kroků používá vícebuňkový vzorec k výpočtu množiny souhrnů. Druhá sada používá jednobuňkový vzorec k výpočtu celkového součtu.

  • Vícebuňkový maticový vzorec

    Funkce vícebuňkové matice v buňce H10 =F10:F19*G10:G19 k výpočtu počtu prodaných podle jednotkové ceny.

  • Tady počítáme celkový prodej kupé a sedanů pro každého prodejce zadáním =F10:F19*G10:G19 do buňky H10.

    Po stisknutí klávesy ENTER výsledky budou přesahovat do buněk H10:H19. Všimněte si, že oblast přesahu se zvýraznění ohraničením, když vyberete libovolnou buňku v oblasti přesahujících dat. Můžete si také všimnout, že vzorce v buňkách H10:H19 jsou neaktivní. Jsou tam jenom pro referenci, takže pokud chcete vzorec upravit, budete muset vybrat buňku H10, kde je hlavní vzorec.

  • Jednobuňkový maticový vzorec

    Vzorec jednobuňkové matice k výpočtu celkového součtu pomocí =SUM(F10:F19*G10:G19)

    Do buňky H20 v ukázkovém sešitu zadejte nebo zkopírujte a vložte =SUMA(F10:F19*G10:G19) a stiskněte ENTER.

    V tomto případě aplikace Excel vynásobí hodnoty v matici (oblast buněk F10 až G19) a použije funkci SUMA k sečtení součtů. Výsledkem je celková částka prodejů 1 590 000 Kč.

    Tento příklad ukazuje, jak výkonný může tento typ vzorce být. Předpokládejme například, že máte 1 000 řádků dat. Všechna data nebo část z nich můžete místo přetažením vzorce směrem dolů přes všech 1 000 řádků sečíst vytvořením maticového vzorce v jediné buňce. Všimněte si také, že jednobuňkový vzorec v buňce H20 je zcela nezávislý na vícebuňkovém vzorci (vzorec v buňkách H10 až H19). V tom spočívá další výhoda maticových vzorců – flexibilita. Ostatní vzorce ve sloupci H můžete změnit bez ovlivnění vzorce v H20. Je vhodné používat nezávislé součty, pomáhají ověřovat přesnost výsledků.

  • Dynamické maticové vzorce nabízejí také tyto výhody:

    • Konzistence (Consistency)    Kliknete-li na některou z buněk od H10 směrem dolů, zobrazí se stejný vzorec. Tato konzistence pomůže zajistit větší přesnost.

    • Zabezpečení    Součást vícebuňkového maticového vzorce se nedá přepsat. Klikněte například na buňku H11 a stiskněte klávesu DELETE. Excel nezmění výstup matice. Pokud ho chcete změnit, musíte v matici vybrat levou horní buňku nebo buňku H10.

    • Menší velikosti souborů    Místo několika intermediárních vzorců můžete často použít jeden maticový vzorec. V příkladu s prodejem aut se k výpočtu výsledků ve sloupci E používá jediný maticový vzorec. Při použití standardních vzorců, například =F10*G10, F11*G11, F12*G12 atd. byste pro výpočet stejných výsledků museli použít 11 různých vzorců. To není problém, ale co kdybyste pracovali s tisíci řádků? Pak by to mohl být velký rozdíl.

    • Efektivita:    Maticové funkce můžou být efektivním způsobem tvorby složitých vzorců. Maticový vzorec =SUMA(F10:F19*G10:G19) je stejný jako tento: =SUMA(F10*G10;F11*G11;F12*G12;F13*G13;F14*G14;F15*G15;F16*G16;F17*G17;F18*G18;F19*G19).

    • Přesah    Dynamické maticové vzorce automaticky zobrazí přesahující data ve výstupní oblasti. Pokud jsou zdrojová data v excelové tabulce, při přidávání nebo odebírání dat se velikost dynamických maticových vzorců automaticky změní.

    • Chyba #PŘESAH!    Dynamické matice zavedly chybu #PŘESAH!, což znamená, že zamýšlený rozsah přesahujících dat je z nějakého důvodu zablokovaný. Když toto blokování vyřešíte, vzorec automaticky zobrazí přesahující data.

Maticové konstanty jsou součástí maticových vzorců. Maticové konstanty vytvoříte zadáním seznamu položek a jeho ručním uzavřením do složených závorek ( { } ), například:

={1\2\3\4\5} nebo ={"Leden"\"Únor"\"Březen"}

Pokud položky oddělujete svislicemi, vytvoříte vodorovnou matici (řádek). Pokud položky oddělujete středníky, vytvoříte svislou matici (sloupec). Pokud chcete vytvořit dvourozměrnou matici, oddělujete položky v jednotlivých řádcích svislicemi a jednotlivé řádky oddělujete středníky.

Následující postupy vám umožní vyzkoušet si vytváření vodorovné, svislé a dvojrozměrné konstanty. Ukážeme příklady použití funkce SEQUENCE k automatickému generování maticových konstant a také příklady ručně zadaných maticových konstant.

  • Vytvoření vodorovné konstanty

    Použijte sešit z předchozích příkladů nebo vytvořte nový sešit. Vyberte libovolnou prázdnou buňku a zadejte =SEQUENCE(1;5). Funkce SEQUENCE vytvoří 1 řádek o 5 sloupcových polích stejně jako ={1\2\3\4\5}. Zobrazí se následující výsledek:

    Vytvořte vodorovnou maticovou konstantu pomocí =SEQUENCE(1,5) or ={1,2,3,4,5}

  • Vytvoření svislé konstanty

    Vyberte libovolnou prázdnou buňku s prostorem pod ní a zadejte =SEQUENCE(5) nebo ={1;2;3;4;5}. Zobrazí se následující výsledek:

    Vytvořte svislou maticovou konstantu pomocí =SEQUENCE(5), or ={1;2;3;4;5}

  • Vytvoření dvojrozměrné konstanty

    Vyberte libovolnou prázdnou buňku s prostorem vpravo a pod ní a zadejte =SEQUENCE(3;4). Zobrazí se následující výsledek:

    Vytvořte maticovou konstantu o 3 řádcích a 4 sloupcích pomocí =SEQUENCE(3,4)

    Můžete také zadat: nebo ={1\2\3\4;5\6\7\8;9\10\11\12}, ale musíte věnovat pozornost tomu, kam zadáte středníky a svislice.

    Jak vidíte, možnost SEQUENCE nabízí výhody oproti ručnímu zadávání maticových konstantních hodnot. Šetří čas, ale můžou také pomoct omezit chyby při ručním zadávání. Snadněji se čte, hlavně proto, že středníky se těžko odlišují od čárek.

Tady je příklad, který používá maticové konstanty jako součást většího vzorce. V ukázkovém sešitu přejděte na list Konstanta ve vzorci nebo vytvořte nový list.

Do buňky D9 jsme zadali =SEQUENCE(1;5;3;1), ale do buněk A9:H9 můžete také zadat 3, 4, 5, 6 a 7. Na tomto konkrétním výběru čísel není nic speciálního. Pro odlišení jsme zvolili něco jiného než 1–5.

Do buňky E11 zadejte =SUMA(D9:H9*SEQUENCE(1;5)) nebo =SUMA(D9:H9*{1\2\3\4\5}). Vzorce vrátí hodnotu 85.

Použití maticových konstant ve vzorcích. V tomto příkladu jsme použili =SUM(D9:H(*SEQUENCE(1,5))

Funkce SEQUENCE vytvoří ekvivalent maticové konstanty {1\2\3\4\5}. Vzhledem k tomu, že aplikace Excel provede operace s výrazy uzavřenými v závorkách jako první, další dva prvky, se kterými se pracuje, jsou hodnoty v buňkách D9:H9 a operátor násobení (*). V tomto okamžiku vzorec vynásobí hodnoty v uložené matici odpovídajícími hodnotami v konstantě. Je to ekvivalentní vzorci:

=SUMA(D9*1;E9*2;F9*3;G9*4;H9*5) nebo =SUMA(3*1;4*2;5*3;6*4;7*5)

Nakonec funkce SUMA sečte hodnoty a vrátí se hodnota 85.

Pokud se chcete vyhnout použití uložené matice a uchovat celou operaci v paměti, nahraďte uloženou matici další maticovou konstantou:

=SUMA(SEQUENCE(1,5,3,1)*SEQUENCE(1,5)) nebo =SUMA({3\4\5\6\7}*{1\2\3\4\5})

Prvky, které můžete použít v maticových konstantách

  • Maticové konstanty můžou obsahovat čísla, text, logické hodnoty (například PRAVDA a NEPRAVDA) a chybové hodnoty, například #NENÍ_K_DISPOZICI. Používat můžete čísla ve formátu celé číslo, desetinné číslo a vědecké formáty. Pokud vložíte text, je nutné jej ohraničit uvozovkami ("text").

  • Maticové konstanty nemohou obsahovat další matice, vzorce a funkce. Jinými slovy: Mohou obsahovat pouze text nebo čísla, která jsou oddělena čárkami a středníky. Zadáte-li například vzorec {1\2\A1:D4} nebo {1\2\SUMA(Q2:Z8)}, zobrazí aplikace Excel upozornění. Navíc číselné hodnoty nemohou obsahovat znak procenta, znak dolaru, označení měny Kč, čárky nebo kulaté závorky.

Jedním z nejlepších způsobů, jak používat maticové konstanty, je pojmenovat je. Pojmenované konstanty se dají jednodušeji používat a dají se pomocí nich skrýt některé složitosti vašich maticových vzorců, před ostatními. Pokud chcete maticovou konstantu pojmenovat a použít ji ve vzorci, udělejte tyto kroky:

Přejděte na Vzorce > Definované názvy > Definovat název. Do pole Název zadejte Čtvrtletí1. Do pole Odkaz na zadejte následující konstantu (nezapomeňte ručně zadat složené závorky):

={"Leden"\"Únor"\"Březen"}

Dialogové okno by teď mělo vypadat následovně:

Přidání pojmenované maticové konstanty z umístění ve Vzorce > Definované názvy > Správce názvů > Nový

Klikněte na OK, vyberte libovolný řádek se třemi prázdnými buňkami a zadejte =Čtvrtletí1.

Zobrazí se následující výsledek:

Použijte pojmenovanou maticovou konstantu v vzorce, jako například =Kvartál1 (Quarter1), ve kterém je Kvartál1 (Quarter1) definován jako ={"Leden","Únor","Březen"}

Pokud chcete, aby výsledky přesahovaly svisle, ne vodorovně, můžete použít =TRANSPOZICE(Čtvrtletí1).

Pokud chcete zobrazit seznam 12 měsíců, například pro vytváření finančních výkazů, můžete vycházet z aktuálního roku pomocí funkce SEQUENCE. Tato funkce je přehledná v tom, že i když se zobrazuje jenom měsíc, je za ní platné datum, které můžete použít v jiných výpočtech. Tyto příklady najdete na listech Pojmenovaná maticová konstanta a Rychlá ukázková datová sada v ukázkovém sešitu.

=HODNOTA.NA.TEXT(DATUM(ROK(DNES());SEQUENCE(1;12);1);"mmm")

Použijte kombinaci funkcí TEXT, DATE, YEAR, TODAY, a SEQUENCE k vytvoření dynamického seznamu 12 měsíců.

Tato funkce používá funkci DATUM k vytvoření data založeného na aktuálním roce. Funkce SEQUENCE vytvoří maticovou konstantu od 1 do 12 pro leden až prosinec a funkce HODNOTA.NA.TEXT převede formát zobrazení na "mmm" (leden, únor, březen atd.). Pokud jste chtěli zobrazit celý název měsíce, například leden, použijte "mmmm".

Když pojmenovanou konstantu použijete jako maticový vzorec, nezapomeňte zadat znaménko rovná se, například =Čtvrtletí1, ne jen Čtvrtletí1. Pokud to neuděláte, aplikace Excel interpretuje matici jako textový řetězec a vzorec nebude fungovat očekávaným způsobem. Mějte také na paměti, že můžete použít kombinace funkcí, textu a čísel. Záleží to na tom, jak kreativní chcete být.

Následující příklady ukazují některé ze způsobů, kterými můžete zadat maticové konstanty, jež chcete použít v maticových vzorcích. Některé z příkladů používají funkci TRANSPOZICE k převedení řádků na sloupce a naopak.

  • Vynásobení každé položky v matici

    Zadejte =SEQUENCE(1;12)*2 nebo ={1\2\3\4;5\6\7\8;9\10\11\12}*2

    Můžete také dělit pomocí (/), sčítat pomocí (+) a odečítat pomocí (-).

  • Druhá mocnina položek v matici

    Zadejte =SEQUENCE(1;12)^2 nebo ={1\2\3\4;5\6\7\8;9\10\11\12}^2

  • Vyhledání odmocniny čtvercových položek v matici

    Zadejte =ODMOCNINA(SEQUENCE(1;12)^2) nebo =ODMOCNINA({1\2\3\4;5\6\7\8;9\10\11\12}^2)

  • Transpozice jednorozměrného řádku

    Zadejte =TRANSPOZICE(SEQUENCE(1;5)) nebo =TRANSPOZICE({1\2\3\4\5})

    Ačkoli jste zadali vodorovnou maticovou konstantu, funkce TRANSPOZICE převede maticovou konstantu na sloupec.

  • Transpozice jednorozměrného sloupce

    Zadejte =TRANSPOZICE(SEQUENCE(5;1)) nebo =TRANSPOZICE({1;2;3;4;5})

    Ačkoli jste zadali svislou maticovou konstantu, funkce TRANSPOZICE převede maticovou konstantu na řádek.

  • Transpozice dvojrozměrné konstanty

    Zadejte =TRANSPOZICE(SEQUENCE(3;4)) nebo =TRANSPOZICE({1\2\3\4;5\6\7\8;9\10\11\12})

    Funkce TRANSPOZICE převede jednotlivé řádky na řadu sloupců.

V této části jsou uvedeny příklady základních maticových vzorců.

  • Vytvoření matice z existujících hodnot

    Následující příklad vysvětluje, jak pomocí maticových vzorců vytvořit novou matici z existující matice.

    Zadejte =SEQUENCE(3;6;10;10) nebo ={10\20\30\40\50\60;70\80\90\100\110\120;130\140\150\160\170\180}

    Před číslem 10 zadejte { (levou složenou závorku) a po číslu 180 zadejte } (pravou složenou závorku), protože vytváříte matici čísel.

    Potom do prázdné buňky zadejte =D9# nebo =D9:I11. Zobrazí se pole 3 x 6 buněk se stejnými hodnotami, které vidíte v buňkách D9:D11. Znak # se nazývá operátor přesahu rozsahu a Excel pomocí něj odkazuje na celou oblast pole bez nutnosti ji vypisovat.

    Pro odkaz na existující matici použijte operátora nepřesahujícího rozsahu (#)

  • Vytvoření maticové konstanty z existujících hodnot

    Výsledky přelitých maticových vzorců můžete převést na jeho části. Vyberte buňku D9 a stiskutím klávesy F2 přejděte do režimu úprav. Potom stisknutím klávesy F9 převedete odkazy na buňky na hodnoty, které pak Excel převede na maticovou konstantu. Když stisknete klávesu ENTER, vzorec =D9# by teď měl být ={10\20\30;40\50\60;70\80\90}.

  • Výpočet počtu znaků v oblasti buněk

    Následující příklad ukazuje, jak spočítat počet znaků v oblasti buněk. Patří mezi ně i mezery.

    Spočítejte celkový počet znaků v rozsahu a ostatních maticích pro práci s textovými strunami

    =SUMA(DÉLKA(C9:C13))

    V tomto případě vrátí funkce DÉLKA délku každého textového řetězce v každé z buněk v oblasti. Funkce SUMA potom tyto hodnoty sečte a zobrazí výsledek (66). Pokud chcete zjistit průměrný počet znaků, můžete použít:

    =PRŮMĚR(DÉLKA(C9:C13))

  • Obsah nejdelší buňky v oblasti C9:C13

    =INDEX(C9:C13;MATCH(MAX(DÉLKA(C9:C13)),DÉLKA(C9:C13);0);1)

    Tento vzorec funguje jedině v případě, že oblast dat obsahuje jeden sloupec buněk.

    Na vzorec se podíváme podrobněji, začneme od vnitřních prvků a budeme pokračovat směrem ven. Funkce DÉLKA jednotlivých položek v oblasti buněk D2:D6. Funkce MAX vypočítá nejvyšší hodnotu z těchto položek, která odpovídá nejdelšímu textovému řetězci, který je v buňce D3.

    Tady to začíná být trochu složitější. Funkce POZVYHLEDAT vypočítá offset (relativní umístění) buňky obsahující nejdelší textový řetězec. Potřebuje k tomu tři argumenty: vyhledávací hodnotu, prohledávanou matici a typ shody. Funkce POZVYHLEDAT hledá v prohledávané matici zadanou vyhledávací hodnotu. V tomto případě je to nejdelší textový řetězec:

    MAX(DÉLKA(C9:C13)

    a tento řetězec je umístěn v této matici:

    DÉLKA(C9:C13)

    Argument typu shody je tomto případě 0. Typ shody může být hodnota 1, 0 nebo -1.

    • 1 – vrátí nejvyšší hodnotu, která je menší nebo se rovná vyhledávací hodnotě.

    • 0 – vrátí první hodnotu, která se přesně rovná vyhledávací hodnotě.

    • -1 – vrátí nejnižší hodnotu, která je větší nebo se rovná zadané vyhledávací hodnotě.

    • Jestliže typ shody vynecháte, aplikace Excel předpokládá hodnotu 1.

    Funkce INDEX přebírá tyto argumenty: matici a číslo řádku a sloupce v této matici. Oblast buněk C9:C13 představuje matici, funkce POZVYHLEDAT poskytuje adresu buňky a poslední argument (1) určuje, že hodnota pochází z prvního sloupce v matici.

    Pokud byste chtěli získat obsah nejmenšího textového řetězce, v předchozím příkladě byste hodnotu MAX nahradili hodnotou MIN.

  • Nalezení n nejmenších hodnot v oblasti

    Tento příklad ukazuje, jak najít tři nejnižší hodnoty v oblasti buněk, kde byla vytvořena matice ukázkových dat v buňkách B9:B18: =INT(RANDARRAY(10;1)*100). Funkce RANDARRAY je nestálá, takže při každém výpočtu Excelu získáte novou sadu náhodných čísel.

    Maticový vzorec Excelu pro vyhledání nejmenší hodnoty N: =SMALL(B9#,SEQUENCE(D9))

    Zadejte =SMALL(B9#;SEQUENCE(D9), =SMALL(B9:B18;{1\2\3})

    Tento vzorec používá maticovou konstantu k trojnásobnému vyhodnocení funkce SMALL a vrátí nejmenší 3 členy v matici obsažené v buňkách B9:B18, kde 3 je proměnná hodnota v buňce D9. Pokud chcete najít další hodnoty, můžete hodnotu ve funkci SEQUENCE zvětšit nebo do konstanty přidat další argumenty. S tímto vzorcem můžete také použít další funkce, například SUMA nebo PRŮMĚR. Příklady:

    =SUMA(SMALL(B9#;SEQUENCE(D9))

    =PRŮMĚR(SMALL(B9#;SEQUENCE(D9))

  • Nalezení n nejvyšších hodnot v oblasti

    Pokud chete vyhledat nejvyšší hodnoty v oblasti, můžete nahradit funkci SMALL funkcí LARGE. V následujícím příkladu jsou navíc použité funkce ŘÁDEK a NEPŘÍMÝ.ODKAZ.

    Zadejte =LARGE(B9#;ŘÁDEK(NEPŘÍMÝ.ODKAZ("1:3")) nebo =LARGE(B9:B18;ŘÁDEK(NEPŘÍMÝ.ODKAZ("1:3")))

    V tomto okamžiku je užitečné se něco dovědět o funkcích ŘÁDEK a NEPŘÍMÝ.ODKAZ. Pomocí funkce ŘÁDEK můžete vytvořit matici po sobě jdoucích celých čísel. Vyberte třeba prázdné a zadejte:

    =ŘÁDEK(1:10)

    Vzorec vytvoří sloupec s 10 po sobě jdoucími celými čísly. Pokud chcete zobrazit potenciální problém, vložte řádek nad oblast obsahující maticový vzorec (to znamená nad řádek 1). Excel upraví odkazy na řádky a vzorec teď vygeneruje celá čísla od 2 do 11. Tento problém vyřešíte tak, že do vzorce přidáte funkci NEPŘÍMÝ.ODKAZ:

    =ŘÁDEK(NEPŘÍMÝ.ODKAZ("1:10"))

    Funkce NEPŘÍMÝ.ODKAZ používá jako svůj argument textový řetězec (z toho důvodu je oblast 1:10 uzavřena v uvozovkách). Když vložíte řádky nebo maticový vzorec jinak posunete, aplikace Excel textové hodnoty nepřizpůsobí. V důsledku toho vygeneruje funkce ŘÁDEK vždy matici celých čísel, kterou požadujete. Stejně snadno můžete použít SEQUENCE:

    =SEQUENCE(10)

    Podíváme se na vzorec, který jste použili dříve – =LARGE(B9#;ŘÁDEK(NEPŘÍMÝ.ODKAZ("1:3"))) – od vnitřních závorek směrem ven: Funkce NEPŘÍMÝ ODKAZ vrátí sadu textových hodnot, v tomto případě hodnoty 1 až 3. Funkce ŘÁDEK zase vygeneruje pole sloupců se třemi buňkami. Funkce LARGE používá hodnoty v oblasti buněk B9:B18 a vyhodnocuje se třikrát, jednou pro každý odkaz vrácený funkcí ŘÁDEK. Pokud chcete najít další hodnoty, přidejte do funkce NEPŘÍMÝ.ODKAZ větší oblast buněk. Stejně jako funkci SMALL, i tento vzorec můžete použít s jinými funkcemi, například SUMA a PRŮMĚR.

  • Součet oblasti obsahující chybové hodnoty

    Funkce SUMA v aplikaci Excel nefunguje, pokud se pokusíte sečíst oblast obsahující chybovou hodnotu, například #HODNOTA! nebo #NENÍ_K_DISPOZICI. Tento příklad ukazuje, jak sečíst hodnoty v oblasti s názvem Data, která obsahuje chyby:

    Pro řešení chyb použijte matice. Například =SUM(IF(ISERROR(Data),"",Data) sečte rozsah pojmenovaný Data i tehdy, pokud zahrnuje chyby, jako je #VALUE! nebo #NA!.

  • =SUMA(KDYŽ(JE.CHYBHODN(Data);"";Data))

    Vzorec vytvoří novou matici, která obsahuje původní hodnoty minus všechny chybové hodnoty. Počínaje vnitřními funkcemi směrem ven hledá funkce JE.CHYBHODN chyby v oblasti buněk (Data). Funkce KDYŽ vrátí jednu hodnotu, pokud se zadaná podmínka vyhodnotí jako PRAVDA, a jinou hodnotu, pokud se zadaná podmínka vyhodnotí jako NEPRAVDA. V tomto případě vrátí prázdné řetězce ("") pro všechny chybové hodnoty, protože se vyhodnotí jako PRAVDA, a vrátí zbývající hodnoty z oblasti (Data), protože se vyhodnotí jako NEPRAVDA, což znamená, že neobsahují chybové hodnoty. Funkce SUMA pak vypočítá součet pro filtrované pole.

  • Počet chybových hodnot v oblasti

    Tento příklad je podobný předchozímu vzorci, ale vrátí počet chybových hodnot v oblasti s názvem Data místo jejich odfiltrování:

    =SUMA(KDYŽ(JE.CHYBHODN(Data);1;0))

    Tento vzorec vytvoří matici obsahující hodnotu 1 pro buňky, které obsahují chyby, a hodnotu 0 pro buňky, které neobsahují chyby. Vzorec můžete zjednodušit a dosáhnout stejného výsledku odebráním třetího argumentu funkce KDYŽ, tedy takto:

    =SUMA(KDYŽ(JE.CHYBHODN(Data);1))

    Pokud nezadáte argument, funkce KDYŽ vrátí hodnotu NEPRAVDA, jestliže buňka neobsahuje chybovou hodnotu. Vzorec lze ještě dále zjednodušit:

    =SUMA(KDYŽ(JE.CHYBHODN(Data)*1))

    Tato verze funguje díky tomu, že PRAVDA*1=1 a NEPRAVDA*1=0.

Někdy je třeba sečíst hodnoty na základě určitých podmínek.

Matice můžete požít k výpočtům založeným na určitých podmínkách. =SUM(IF(Sales>0,Sales)) sečte všechny hodnoty větší než 0 v rozsahu pojmenovaném Prodeje (Sales).

Tento maticový vzorec například sečte v oblasti s názvem Prodej pouze kladná čísla, která ve výše uvedeném příkladu představuje buňky E9:E24:

=SUMA(KDYŽ(Prodej>0;Prodej))

Funkce KDYŽ vytvoří matici odpovídajících a neodpovídajících hodnot. Funkce SUMA v podstatě ignoruje neodpovídající hodnoty, protože 0+0=0. Oblast buněk, kterou v tomto vzorci používáte, se může skládat z libovolného počtu řádků a sloupců.

Můžete také sčítat hodnoty splňující více podmínek. Tento maticový vzorec například vypočítá hodnoty větší než 0 A menší než 2500:

=SUMA((Prodej>0)*(Prodej<2500)*(Prodej))

Mějte na paměti, že tento vzorec vrátí chybu, pokud oblast obsahuje jednu nebo více nečíselných buněk.

Můžete také vytvořit maticové vzorce, které používají typ podmínky NEBO. Můžete například sečíst hodnoty větší než 0 NEBO menší než 2500:

=SUMA(KDYŽ((Prodej>0)+(Prodej<2500);Prodej))

Funkce A a NEBO nelze v maticových vzorcích použít přímo, protože tyto funkce vracejí jeden výsledek (PRAVDA nebo NEPRAVDA) a maticové funkce vyžadují matice výsledků. Toto omezení můžete obejít pomocí logiky předvedené v předchozím vzorci. Jinými slovy provádíte matematické operace, například sčítání nebo násobení hodnot, které splňují podmínku NEBO nebo A.

Tento příklad ukazuje, jak odebrat nuly z oblasti v případě, že v dané oblasti potřebujete vypočítat průměrné hodnoty. Vzorec používá oblast dat s názvem Prodej:

=PRŮMĚR(KDYŽ(Prodej<>0;Prodej))

Funkce KDYŽ vytvoří matici hodnot, které nejsou rovny 0, a předá tyto hodnoty funkci PRŮMĚR.

Tento maticový vzorec porovná hodnoty dvou oblastí buněk s názvy Data1 a Data2 a vrátí počet rozdílů mezi nimi. Je-li obsah obou oblastí shodný, vzorec vrátí hodnotu 0. Tento vzorec je možné použít jen v případě, že obě oblasti buněk mají stejnou velikost a stejné rozměry. Pokud má například oblast MyData rozměr 3 řádky na 5 sloupců, musí mít oblast YourData také 3 řádky na 5 sloupců:

=SUMA(KDYŽ(Data1=Data2;0;1))

Vzorec vytvoří novou matici stejné velikosti jako oblasti, které porovnáváte. Funkce KDYŽ vyplní matici hodnotami 0 a 1 (0 pro neshodu a 1 pro stejné buňky). Funkce SUMA pak vrátí součet hodnot v matici.

Vzorec můžete zjednodušit takto:

=SUMA(1*(Data1<>Data2))

Tento vzorec – podobně jako vzorec, který počítá chybové hodnoty v oblasti – funguje díky tomu, že PRAVDA*1=1 a NEPRAVDA*1=0.

Tento maticový vzorec vrátí číslo řádku maximální hodnoty v jednosloupcové oblasti s názvem Data:

=MIN(KDYŽ(Data=MAX(Data);ŘÁDEK(Data);""))

Funkce KDYŽ vytvoří novou matici, která odpovídá oblasti Data. Pokud odpovídající buňka obsahuje maximální hodnotu v oblasti, bude matice obsahovat číslo řádku. V opačném případě bude matice obsahovat prázdný řetězec (""). Funkce MIN použije novou matici jako svůj druhý argument a vrátí nejmenší hodnotu, která odpovídá číslu řádku s maximální hodnotou v oblasti Data. Pokud oblast Data obsahuje několik shodných maximálních hodnot, vrátí vzorec číslo řádku první hodnoty.

Chcete-li, aby vzorec vracel skutečnou adresu buňky s maximální hodnotou, použijte tento vzorec:

=ODKAZ(MIN(KDYŽ(Data=MAX(Data);ŘÁDEK(Data);""));SLOUPEC(Data))

Podobné příklady najdete v ukázkovém sešitu na listu Rozdíly mezi datovými sadami.

Poděkování

Části tohoto článku vychází ze série sloupků Excel Power User (Excel pro pokročilé) od Colina Wilcoxe a upravených kapitol 14 a 15 z knihy Excel 2002 Formulas od Johna Walkenbacha, někdejšího specialisty MVP na Excel.

Potřebujete další pomoc?

Kdykoli se můžete zeptat odborníka z komunity Excel Tech nebo získat podporu v komunitách.

Viz také

Dynamické matice a chování přesahujících matic

Dynamické maticové vzorce vs. starší maticové vzorce CSE

Funkce FILTER

Funkce RANDARRAY

Funkce SEQUENCE

Funkce SORT

Funkce SORTBY

Funkce UNIQUE

#PŘESAH! v Excelu

Operátor implicitního průsečíku: @

Přehled vzorců

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.