Ako používať funkciu Excel LAMBDA

Obsah

Zhrnutie

Funkcia Excel LAMBDA poskytuje spôsob vytvárania vlastných funkcií, ktoré sa dajú opakovane použiť v celom zošite bez VBA alebo makier.

Účel

Vytvorte si vlastnú funkciu

Návratová hodnota

Ako je definované vzorcom

Syntax

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

Argumenty

  • parameter - Vstupná hodnota pre funkciu.
  • výpočet - výpočet, ktorý sa má vykonať ako výsledok funkcie. Musí to byť posledný argument.

Verzia

Excel 365

Poznámky k použitiu

V počítačovom programovaní označuje LAMBDA anonymnú funkciu alebo výraz. Anonymná funkcia je funkcia definovaná bez názvu. V programe Excel poskytuje funkcia LAMBDA spôsob, ako definovať a zapuzdriť konkrétne funkcie vzorca, podobne ako funkcia programu Excel. Po definovaní možno funkciu LAMBDA pomenovať a znova použiť inde v zošite. Inými slovami, funkcia LAMBDA je spôsob vytvárania vlastných funkcií.

Jednou z kľúčových výhod vlastnej funkcie LAMBDA je, že logika obsiahnutá vo vzorci existuje iba na jednom mieste. To znamená, že existuje iba jedna kópia kódu, ktorá sa má aktualizovať pri opravovaní problémov alebo aktualizácii funkčnosti, a zmeny sa automaticky rozšíria na všetky inštancie funkcie LAMBDA v zošite. Funkcia LAMBDA nevyžaduje VBA ani makrá.

Príklad 1 | Príklad 2 | Príklad 3

Vytvorenie funkcie LAMBDA

Funkcie LAMBDA sa zvyčajne vytvárajú a ladia na paneli vzorcov v pracovnom hárku. Potom sa presunú do správcu mien, aby priradili názov, ktorý je možné použiť kdekoľvek v zošite.

Existujú štyri základné kroky pri vytváraní a používaní vlastného vzorca založeného na funkcii LAMBDA:

  1. Pomocou štandardného vzorca overte logiku, ktorú použijete
  2. Vytvorte a otestujte všeobecnú (nepomenovanú) verziu vzorca LAMBDA
  3. Pomenujte a definujte vzorec LAMBDA pomocou správcu mien
  4. Vyskúšajte novú vlastnú funkciu pomocou definovaného názvu

Nasledujúce príklady podrobnejšie pojednávajú o týchto krokoch.

Príklad 1

Na ilustráciu toho, ako funguje LAMBDA, začnime veľmi jednoduchým vzorcom:

=x*y // multiple x and y

V programe Excel by tento vzorec používal zvyčajne také odkazy na bunky, ako je tento:

=B5*C5 // with cell references

Ako vidíte, vzorec funguje dobre, takže sme pripravení prejsť k vytvoreniu všeobecného vzorca LAMBDA (nepomenovaná verzia). Prvá vec, ktorú je potrebné zvážiť, je to, či vzorec vyžaduje vstupy (parametre). V tomto prípade je odpoveď „áno“ - vzorec vyžaduje hodnotu pre x a hodnotu pre y. Keď je to zavedené, začneme funkciou LAMBDA a pridáme požadované parametre pre vstup používateľa:

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

Ďalej musíme pridať skutočný výpočet, x * y:

=LAMBDA(x,y,x*y)

Ak v tomto okamihu zadáte vzorec, dostanete #CALC! chyba. Stáva sa to preto, lebo vzorec nemá žiadne vstupné hodnoty, s ktorými by sa dalo pracovať, pretože už neexistujú odkazy na bunky. Na otestovanie vzorca musíme použiť špeciálnu syntax, ako je táto:

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

Táto syntax, kde sú parametre dodávané na konci funkcie LAMBDA v samostatnej zátvorke, je pre funkcie LAMBDA jedinečná. To umožňuje, aby bol vzorec testovaný priamo v hárku predtým, ako bude pomenovaná LAMBDA. Na obrazovke nižšie vidíte, že generická funkcia LAMBDA vo F5 vráti presne rovnaký výsledok ako pôvodný vzorec v E5:

Teraz sme pripravení pomenovať funkciu LAMBDA pomocou Správcu mien. Najskôr vyberte vzorec, * na konci nezahrňte * testovacie parametre. Ďalej otvorte Správcu mien pomocou skratky Control + F3 a kliknite na Nové.

V dialógovom okne Nový názov zadajte názov „XBYY“, nechajte rozsah nastavený na zošit a prilepte vzorec, ktorý ste skopírovali do vstupnej oblasti „Odkazuje na“.

Zaistite, aby vzorec začínal znamienkom rovnosti (=). Teraz, keď má vzorec LAMBDA názov, možno ho v zošite použiť ako ktorúkoľvek inú funkciu. Na obrazovke pod vzorom v G5, skopírovaným nadol, je:

Nová vlastná funkcia vráti rovnaký výsledok ako ďalšie dva vzorce.

Príklad 2

V tomto príklade prevedieme vzorec na výpočet objemu gule do vlastnej funkcie LAMBDA. Všeobecný excelový vzorec na výpočet objemu gule je:

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

kde A1 predstavuje polomer. Na obrazovke nižšie je uvedený tento vzorec v akcii:

Všimnite si, že tento vzorec vyžaduje na výpočet objemu iba jeden vstup (polomer), takže našej funkcii LAMBDA bude stačiť iba jeden parameter (r), ktorý sa zobrazí ako prvý argument. Tu je vzorec prevedený na LAMBDA:

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

Späť v pracovnom hárku sme pôvodný vzorec nahradili všeobecnou verziou LAMBDA. Všimnite si, že používame testovaciu syntax, ktorá nám umožňuje pripojiť B5 pre rádius:

Výsledky generického vzorca LAMBDA sú úplne rovnaké ako pôvodný vzorec, takže ďalším krokom je definovanie a pomenovanie tohto vzorca LAMBDA pomocou Správcu mien, ako je vysvetlené vyššie. Názov použitý pre funkciu LAMBDA môže byť akýkoľvek platný názov programu Excel. V takom prípade pomenujeme vzorec „SphereVolume“.

Späť v pracovnom hárku sme nahradili všeobecný (nepomenovaný) vzorec LAMBDA pomenovanou verziou LAMBDA a zadali sme B5 pre r. Všimnite si, že výsledky vrátené vlastnou funkciou SphereVolume sú úplne rovnaké ako predchádzajúce výsledky.

Príklad 3

V tomto príklade vytvoríme funkciu LAMBDA na počítanie slov. Excel nemá na tento účel funkciu, ale môžete počítať slová s bunkou s vlastným vzorcom založeným na funkciách LEN a SUBSTITUTE takto:

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

Prečítajte si podrobné vysvetlenie tu. Tu je vzorec v akcii v pracovnom hárku:

Všimnite si, že dostávame nesprávny počet 1, keď vzorec dostane prázdnu bunku (B10). Tomuto problému sa budeme venovať nižšie.

Tento vzorec vyžaduje iba jeden vstup, čo je text obsahujúci slová. V našej funkcii LAMBDA pomenujeme tento argument ako „text“. Tu je vzorec prevedený na LAMBDA:

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

Ako prvý argument sa zobrazí text. Text je druhým a posledným argumentom. Na obrazovke nižšie sme pôvodný vzorec nahradili všeobecnou verziou LAMBDA. Všimnite si, že používame testovaciu syntax, ktorá nám umožňuje pripojiť B5 pre text:

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

Výsledky generického vzorca LAMBDA sú rovnaké ako pôvodný vzorec, takže ďalším krokom je definovanie a pomenovanie tohto vzorca LAMBDA pomocou Správcu mien, ako už bolo vysvetlené vyššie. Tento vzorec pomenujeme „CountWords“.

Ďalej sme nahradili všeobecný (nepomenovaný) vzorec LAMBDA pomenovanou verziou LAMBDA a pre text sme zadali B5. Všimnite si, že dostávame úplne rovnaké výsledky.

Vzorec použitý v Správcovi mien na definovanie CountWords je rovnaký ako vyššie, bez testovacej syntaxe:

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

Oprava problému s prázdnou bunkou

Ako bolo uvedené vyššie, vyššie uvedený vzorec vráti nesprávny počet 1, keď je bunka prázdna. Tento problém je možné vyriešiť nahradením +1 kódom uvedeným nižšie:

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

Úplné vysvetlenie tu. Na aktualizáciu existujúceho pomenovaného vzorca LAMDA musíme znova použiť Správcu mien:

  1. Otvorte Správcu mien
  2. Vyberte názov „CountWords“ a kliknite na „Upraviť“
  3. Nahraďte kód „Odkazuje na“ týmto vzorcom:

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

Akonáhle je Správca mien zatvorený, CountWords funguje správne na prázdnych bunkách, ako je vidieť nižšie:

Poznámka: Aktualizáciou kódu raz v Správcovi mien sa aktualizujú všetky inštancie vzorca CountWords naraz. To je kľúčová výhoda vlastných funkcií vytvorených pomocou LAMBDA - aktualizácie vzorcov je možné spravovať na jednom mieste.

Zaujímavé články...