Jak používat funkci Excel LAMBDA -

Obsah

souhrn

Funkce Excel LAMBDA poskytuje způsob vytváření vlastních funkcí, které lze znovu použít v celém sešitu bez VBA nebo maker.

Účel

Vytvořte vlastní funkci

Návratová hodnota

Jak je definováno vzorcem

Syntax

= LAMBDA (parametr,…, výpočet)

Argumenty

  • parametr - Vstupní hodnota pro funkci.
  • výpočet - výpočet, který se má provést jako výsledek funkce. Musí to být poslední argument.

Verze

Excel 365

Poznámky k použití

V počítačovém programování odkazuje LAMBDA na anonymní funkci nebo výraz. Anonymní funkce je funkce definovaná bez názvu. V aplikaci Excel poskytuje funkce LAMBDA způsob, jak definovat a zapouzdřit konkrétní funkce vzorce, podobně jako funkce aplikace Excel. Jakmile je funkce LAMBDA definována, může být pojmenována a znovu použita jinde v sešitu. Jinými slovy, funkce LAMBDA je způsob, jak vytvořit vlastní funkce.

Jednou z klíčových výhod vlastní funkce LAMBDA je, že logika obsažená ve vzorci existuje pouze na jednom místě. To znamená, že existuje pouze jedna kopie kódu, která se má aktualizovat při opravě problémů nebo aktualizaci funkce, a změny se automaticky rozšíří na všechny instance funkce LAMBDA v sešitu. Funkce LAMBDA nevyžaduje VBA ani makra.

Příklad 1 | Příklad 2 | Příklad 3

Vytvoření funkce LAMBDA

Funkce LAMBDA se obvykle vytvářejí a ladí na řádku vzorců v listu, poté se přesunou do správce jmen a přiřadí název, který lze použít kdekoli v sešitu.

Existují čtyři základní kroky k vytvoření a použití vlastního vzorce založeného na funkci LAMBDA:

  1. Ověřte logiku, kterou použijete se standardním vzorcem
  2. Vytvořte a otestujte obecnou (nepojmenovanou) verzi vzorce LAMBDA
  3. Pojmenujte a definujte vzorec LAMBDA pomocí správce jmen
  4. Vyzkoušejte novou vlastní funkci pomocí definovaného názvu

Níže uvedené příklady podrobněji pojednávají o těchto krocích.

Příklad 1

Abychom ilustrovali, jak LAMBDA funguje, začněme velmi jednoduchým vzorcem:

=x*y // multiple x and y

V aplikaci Excel by tento vzorec obvykle používal odkazy na buňky takto:

=B5*C5 // with cell references

Jak vidíte, vzorec funguje dobře, takže jsme připraveni přejít k vytvoření obecného vzorce LAMBDA (nepojmenovaná verze). První věc, kterou je třeba zvážit, je, pokud vzorec vyžaduje vstupy (parametry). V tomto případě je odpověď „ano“ - vzorec vyžaduje hodnotu pro x a hodnotu pro y. S tímto ustanovením začneme s funkcí LAMBDA a přidáme požadované parametry pro vstup uživatele:

=LAMBDA(x,y // begin with input parameters

Dále musíme přidat skutečný výpočet, x * y:

=LAMBDA(x,y,x*y)

Pokud v tomto okamžiku zadáte vzorec, dostanete #CALC! chyba. K tomu dochází, protože vzorec nemá žádné vstupní hodnoty, se kterými by mohl pracovat, protože již neexistují žádné odkazy na buňky. K otestování vzorce musíme použít speciální syntaxi, jako je tato:

=LAMBDA(x,y,x*y)(B5,C5) // testing syntax

Tato syntaxe, kde jsou parametry dodávány na konci funkce LAMBDA v samostatné sadě závorek, je pro funkce LAMBDA jedinečná. To umožňuje, aby byl vzorec testován přímo na listu, než bude pojmenován LAMBDA. Na obrazovce níže vidíte, že obecná funkce LAMBDA ve F5 vrací přesně stejný výsledek jako původní vzorec v E5:

Nyní jsme připraveni pojmenovat funkci LAMBDA pomocí Správce jmen. Nejprve vyberte vzorec, * na konci nezahrneme * testovací parametry. Dále otevřete Správce jmen pomocí zkratky Control + F3 a klikněte na Nový.

V dialogovém okně Nový název zadejte název „XBYY“, ponechejte sadu oborů sešitu a vložte zkopírovaný vzorec do vstupní oblasti „Odkazuje na“.

Ujistěte se, že vzorec začíná znaménkem rovná se (=). Nyní, když má vzorec LAMBDA název, lze jej v sešitu použít jako jakoukoli jinou funkci. Na obrazovce pod vzorcem v G5, zkopírovaným dolů, je:

Nová vlastní funkce vrací stejný výsledek jako ostatní dva vzorce.

Příklad 2

V tomto příkladu převedeme vzorec pro výpočet objemu koule do vlastní funkce LAMBDA. Obecný vzorec aplikace Excel pro výpočet objemu koule je:

=4/3*PI()*A1^3 // volume of sphere

kde A1 představuje poloměr. Následující obrazovka ukazuje tento vzorec v akci:

Všimněte si, že tento vzorec vyžaduje pouze jeden vstup (poloměr) pro výpočet objemu, takže naše funkce LAMBDA bude potřebovat pouze jeden parametr (r), který se zobrazí jako první argument. Zde je vzorec převedený na LAMBDA:

=LAMBDA(r,4/3*PI()*r^3) // generic lambda

Zpět v listu jsme původní vzorec nahradili obecnou verzí LAMBDA. Všimněte si, že používáme testovací syntaxi, která nám umožňuje připojit B5 pro rádius:

Výsledky obecného vzorce LAMBDA jsou přesně stejné jako původní vzorec, takže dalším krokem je definování a pojmenování tohoto vzorce LAMBDA pomocí Správce jmen, jak je vysvětleno výše. Název používaný pro funkci LAMBDA může být jakýkoli platný název aplikace Excel. V tomto případě pojmenujeme vzorec „SphereVolume“.

Zpět v listu jsme nahradili obecný (nepojmenovaný) vzorec LAMBDA pojmenovanou verzí LAMBDA a zadali jsme B5 pro r. Všimněte si, že výsledky vrácené vlastní funkcí SphereVolume jsou přesně stejné jako předchozí výsledky.

Příklad 3

V tomto příkladu vytvoříme funkci LAMBDA pro počítání slov. Excel pro tento účel nemá funkci, ale můžete počítat slova s ​​buňkou s vlastním vzorcem založeným na funkcích LEN a SUBSTITUTE, jako je tato:

=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1

Přečtěte si podrobné vysvětlení zde. Zde je vzorec v akci v listu:

Všimněte si, že dostáváme nesprávný počet 1, když vzorec dostane prázdnou buňku (B10). Tomuto problému se budeme věnovat níže.

Tento vzorec vyžaduje pouze jeden vstup, což je text obsahující slova. V naší funkci LAMBDA pojmenujeme tento argument „text“. Zde je vzorec převedený na LAMBDA:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)

Jako první argument se zobrazí text a jako druhý argument se použije výpočet. Na obrazovce níže jsme původní vzorec nahradili obecnou verzí LAMBDA. Všimněte si, že používáme testovací syntaxi, která nám umožňuje připojit B5 pro text:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)(B5)

Výsledky obecného vzorce LAMBDA jsou stejné jako původní vzorec, takže dalším krokem je definování a pojmenování tohoto vzorce LAMBDA pomocí Správce jmen, jak již bylo vysvětleno dříve. Pojmenujeme tento vzorec „CountWords“.

Níže jsme nahradili obecný (nepojmenovaný) vzorec LAMBDA pojmenovanou verzí LAMBDA a zadali jsme B5 pro text. Všimněte si, že máme přesně stejné výsledky.

Vzorec použitý ve Správci jmen k definování CountWords je stejný jako výše, bez syntaxe testování:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)

Oprava problému s prázdnou buňkou

Jak bylo uvedeno výše, výše uvedený vzorec vrací nesprávný počet 1, když je buňka prázdná. Tento problém lze vyřešit nahrazením +1 následujícím kódem:

=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+(LEN(TRIM(B5))>0)

Úplné vysvětlení zde. Chcete-li aktualizovat stávající pojmenovaný vzorec LAMDA, musíme znovu použít Správce jmen:

  1. Otevřete Správce jmen
  2. Vyberte název „CountWords“ a klikněte na „Upravit“
  3. Nahraďte kód „Odkazuje na“ tímto vzorcem:

=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+(LEN(TRIM(text))>0))

Jakmile je Správce jmen uzavřen, CountWords funguje správně na prázdné buňky, jak je vidět níže:

Poznámka: Aktualizací kódu jednou ve Správci jmen se aktualizují všechny instance vzorce CountWords najednou. To je klíčová výhoda vlastních funkcí vytvořených pomocí LAMBDA - aktualizace vzorců lze spravovat na jednom místě.

Zajímavé články...