Microsoft představil operátor implicitního průniku jako součást podstatného upgradu jazyka vzorců v Excelu pro podporu dynamických polí. Dynamické matice přinášejí do Excelu významné nové možnosti a funkce pro výpočty.
Upgradovaný jazyk vzorce
Upgradovaný jazyk vzorců v Excelu je prakticky identický se starým jazykem, s tím rozdílem, že používá operátor @ k označení, kde může dojít k implicitnímu průniku, zatímco starý jazyk to dělal potichu. V důsledku toho si můžete všimnout, že se v některých vzorcích, které otevřete v dynamické matici, objeví znaky @. Vzorce budou dál počítat stejným způsobem jako doposud.
Co je implicitní průnik?
Logika implicitního průniku redukuje mnoho hodnot na jednu hodnotu. Excel to udělal proto, aby vzorec vrátil jedinou hodnotu, protože buňka mohla obsahovat jenom jednu hodnotu. Pokud vzorec vrátil jedinou hodnotu, implicitní průnik neudělal nic (i když technicky probíhal na pozadí). Logika funguje následovně:
- Pokud je hodnota jedna položka, vrátí ji.
- Pokud je hodnotou oblast, vrátí hodnotu z buňky na stejném řádku nebo sloupci jako vzorec.
- Pokud je hodnota matice, vyberte hodnotu vlevo nahoře.
S příchodem dynamických polí se Excel už nemusí omezovat na vracení jednotlivých hodnot ze vzorců, takže tichý implicitní průnik už není nutný. Tam, kde by starý vzorec mohl neviditelně vyvolat implicitní průnik, Excel s podporou dynamických polí zobrazí, kde by k němu došlo s @.
Proč právě symbol @?
Symbol @ se už používá v odkazech na tabulky k označení implicitního průniku. Podívejte se na následující vzorec v tabulce =[@Column1]. Znak @ označuje, že vzorec používá implicitní průnik k načtení hodnoty na stejném řádku z [Sloupec1].
Můžete odebrat znak @?
Často je to možné. Závisí na tom, co vrátí část vzorce napravo od @:
- Pokud vrací jedinou hodnotu (což je nejčastější případ), po odebrání znaku @ se nic nezmění.
- Pokud vrátí oblast nebo matici, odebrání znaku @ způsobí, že se rozšíří do sousedních buněk.
Pokud automaticky přidanou značku @ odeberete a později sešit otevřete ve starší verzi Excelu, zobrazí se jako starší maticový vzorec (zabalený do složených závorek {}). Toto chování zajišťuje, že starší verze neaktivuje implicitní průnik.
Kdy přidáme @ do starých vzorců?
Obecně platí, že funkce, které vracejí vícebuňkové oblasti nebo matice, mají předponu @, pokud jste je vytvořili ve starší verzi Excelu. Chování vzorce se nijak nemění – teď vidíte jenom dříve neviditelný implicitní průsečík. Mezi běžné funkce, které vracejí vícebuňkové oblasti, patří funkce INDEX, OFFSET a uživatelem definované funkce. Běžnou výjimkou je, pokud jsou zabalené ve funkci, která přijímá pole nebo oblast (například SUM() nebo AVERAGE()).
Další podrobnosti najdete v tématu Excelové funkce, které vracejí oblasti nebo matice .
Příklady
| Původní vzorec | Jak je vidět v Excelu s dynamickým polem | Vysvětlení |
|---|---|---|
| =SUMA(A1:A10) | =SUMA(A1:A10) | Beze změny – Nemůže dojít k žádnému implicitnímu průniku, protože funkce SUMA očekává rozsahy nebo pole. |
| =A1+A2 | =A1+A2 | Žádná změna – Nemůže dojít k žádnému implicitnímu průsečíku. |
| =A1:A10 | =@A1:A10 | Dojde k implicitnímu průniku a Excel vrátí hodnotu přidruženou k řádku, ve kterém se vzorec nachází. |
| =INDEX(A1:A10;B1) | =@INDEX(A1:A10,B1) | Může dojít k implicitnímu průniku. Funkce INDEX může vrátit matici nebo oblast, pokud je její druhý nebo třetí argument 0. |
| =POSUN(A1:A2;1;1) | =@OFFSET(A1:A2;1;1) | Může dojít k implicitnímu průniku. Funkce POSUN může vrátit vícebuňkovou oblast. Když se tak stane, spustí implicitní průnik. |
| =MYUDF() | =@MYUDF() | Může dojít k implicitnímu průniku. Vytváření vlastních funkcí v Excelu může vracet pole. V takovém případě původní vzorec spustí implicitní průnik. |
Použití operátoru @ v nových vzorcích
Pokud v Excelu vytvoříte nebo upravíte vzorec, který obsahuje operátor @, může se zobrazit jako _xlfn. SINGLE() v Excelu před dynamickým polem
K tomuto chování dochází při potvrzení smíšeného vzorce. Smíšený vzorec je vzorec, který spoléhá na výpočet matice i na implicitní průnik. Predynamické pole Excel tuto kombinaci nepodporuje. Předdynamická matice Excel podporuje pouze vzorce, které v celém rozsahu provádějí i) implicitní průnik nebo ii) výpočet matice.
Pokud je povolená dynamická matice, aplikace Excel rozpozná vytvoření smíšeného vzorce, navrhne variantu vzorce, která používá implicitní průnik. Pokud zadáte =A1:A10+@A1:A10, tento příkaz, zobrazí se například následující dialogové okno:
Pokud se rozhodnete odmítnout vzorec navržený dialogovým oknem, smíšený vzorec =A1:A10+@A1:A10 se potvrdí. Pokud později tento vzorec otevřete v Excelu v predynamické matici, bude vzorec vypadat jako =A1:A10+_xlfn.SINGLE(A1:A10) s operátory @ ve smíšeném vzorci, které se zobrazí jako _xlfn.SINGLE(). Když aplikace Excel vyhodnotí tento vzorec, vrátí #NAME! která označuje chybu.
Potřebujete další pomoc?
Kdykoli se můžete zeptat odborníka z technické komunity Excelu nebo získat podporu v komunitách.