
Összegzés
Az Excel LAMBDA funkció lehetővé teszi egyedi funkciók létrehozását, amelyek újból felhasználhatók a munkafüzetben, VBA vagy makrók nélkül.
Célja
Hozzon létre egyéni függvénytVisszatérési érték
A képlet szerintSzintaxis
= LAMBDA (paraméter,…, számítás)Érvek
- paraméter - A függvény bemeneti értéke.
- számítás - A függvény eredményeként végrehajtandó számítás. Az utolsó érvnek kell lennie.
Változat
Excel 365Használati megjegyzések
A számítógépes programozásban a LAMBDA egy névtelen funkcióra vagy kifejezésre utal. Az anonim függvény név nélkül definiált függvény. Az Excelben a LAMBDA függvény lehetővé teszi az adott képletfunkciók meghatározását és beillesztését, hasonlóan egy Excel-függvényhez. Meghatározása után egy LAMBDA függvény megnevezhető és újból felhasználható a munkafüzet másutt. Más szavakkal, a LAMBDA függvény egyéni függvények létrehozására szolgál.
Az egyedi LAMBDA funkció egyik legfontosabb előnye, hogy a képletben szereplő logika csak egy helyen létezik. Ez azt jelenti, hogy a problémák kijavításakor vagy a funkcionalitás frissítésekor csak egy kódot kell frissíteni, és a módosítások automatikusan továbbterjednek a munkafüzet LAMBDA funkciójának minden példányára. A LAMBDA funkcióhoz nincs szükség VBA-ra vagy makrókra.
1. példa | 2. példa | 3. példa
LAMBDA függvény létrehozása
A LAMBDA függvényeket általában a munkalap képletsorában hozzák létre és hibakeresik, majd a névkezelőbe költöztetve hozzárendelnek egy olyan nevet, amely bárhol használható a munkafüzetben.
A LAMBDA függvényen alapuló egyéni képlet létrehozásának és használatának négy alapvető lépése van:
- Ellenőrizze a használni kívánt logikát egy általános képlettel
- Hozzon létre és teszteljen a képlet általános (névtelen) LAMBDA verzióját
- Nevezze el és határozza meg a LAMBDA képletet a névkezelővel
- Tesztelje az új egyéni funkciót a megadott név használatával
Az alábbi példák részletesebben tárgyalják ezeket a lépéseket.
1. példa
A LAMBDA működésének bemutatásához kezdjük egy nagyon egyszerű képlettel:
=x*y // multiple x and y
Az Excelben ez a képlet tipikusan ilyen cellahivatkozásokat használ:
=B5*C5 // with cell references
Amint láthatja, a képlet jól működik, ezért készen állunk egy általános LAMBDA képlet (név nélküli változat) létrehozására. Az első szempont, amelyet figyelembe kell venni, ha a képlet bemeneteket (paramétereket) igényel. Ebben az esetben a válasz "igen" - a képlethez x és y értékre van szükség. Miután ez létrejött, elkezdjük a LAMBDA függvényt, és hozzáadjuk a szükséges paramétereket a felhasználói bemenethez:
=LAMBDA(x,y // begin with input parameters
Ezután hozzá kell adnunk a tényleges számítást, x * y:
=LAMBDA(x,y,x*y)
Ha ezen a ponton adja meg a képletet, kap egy #CALC-ot! hiba. Ez azért történik, mert a képletnek nincsenek beviteli értékei, amelyekkel dolgozhatna, mivel már nincsenek cellahivatkozások. A képlet teszteléséhez egy speciális szintaxist kell használnunk:
=LAMBDA(x,y,x*y)(B5,C5) // testing syntax
Ez a szintaxis, ahol a paramétereket egy LAMBDA függvény végén, külön zárójelben adják meg, egyedülálló a LAMBDA függvényekre. Ez lehetővé teszi a képlet tesztelését közvetlenül a munkalapon, még mielőtt a LAMBDA-t megnevezik. Az alábbi képernyőn láthatja, hogy az F5 általános LAMBDA függvénye pontosan ugyanazt az eredményt adja, mint az E5 eredeti képlete:
Most már készen állunk a LAMBDA függvény megnevezésére a Névkezelővel. Először válassza ki a képletet, * a tesztparamétereket nem tartalmazza a végén. Ezután nyissa meg a Névkezelőt a Control + F3 parancsikon segítségével, majd kattintson az Új gombra.
Az Új név párbeszédpanelen írja be az "XBYY" nevet, hagyja a hatókört beállítva a munkafüzetre, és illessze be a másolt képletet a "Hivatkozások" beviteli területre.
Győződjön meg arról, hogy a képlet egyenlőségjellel (=) kezdődik. Most, hogy a LAMBDA képletnek van neve, a munkafüzetben használható, mint bármely más függvény. Az alábbi képernyőn a G5 képletének lemásolása:
Az új egyéni függvény ugyanazt az eredményt adja vissza, mint a másik két képlet.
2. példa
Ebben a példában a gömb térfogatának kiszámításához képletet alakítunk át egyedi LAMBDA függvénnyé. A gömb térfogatának kiszámításához az általános Excel képlet a következő:
=4/3*PI()*A1^3 // volume of sphere
ahol A1 a sugarat jelenti. Az alábbi képernyőn ez a képlet látható működés közben:
Vegye figyelembe, hogy ehhez a képlethez csak egy bemenetre (sugárra) van szükség a térfogat kiszámításához, ezért a LAMBDA függvényünkhöz csak egy paraméterre (r) lesz szükség, amely első argumentumként jelenik meg. Itt van a képlet LAMBDA-vá alakítva:
=LAMBDA(r,4/3*PI()*r^3) // generic lambda
Visszatérve a munkalapra, az eredeti képletet lecseréltük az általános LAMBDA verzióra. Vegye figyelembe, hogy a tesztelési szintaxist használjuk, amely lehetővé teszi számunkra, hogy a B5-et csatlakoztassuk a sugárhoz:
Az általános LAMBDA képlet eredményei pontosan megegyeznek az eredeti képlettel, ezért a következő lépés a LAMBDA képlet meghatározása és elnevezése a Névkezelővel, a fentiek szerint. A LAMBDA függvényhez használt név bármilyen érvényes Excel név lehet. Ebben az esetben a képletet "SphereVolume" -nak nevezzük el.
Visszatérve a munkalapra, az általános (névtelen) LAMBDA képletet lecseréltük a megnevezett LAMBDA verzióra, és B5 értéket írtunk r-re. Figyelje meg, hogy az egyéni SphereVolume függvény által adott eredmények pontosan megegyeznek a korábbi eredményekkel.
3. példa
Ebben a példában létrehozunk egy LAMBDA függvényt a szavak számlálásához. Az Excelnek nincs funkciója erre a célra, de a LEN és SUBSTITUTE függvényeken alapuló egyéni képlettel megszámolhatja a szavakat egy cellával:
=LEN(TRIM(A1))-LEN(SUBSTITUTE(A1," ",""))+1
Olvassa el a részletes magyarázatot itt. Itt található a képlet egy munkalapon:
Figyelje meg, hogy helytelen 1-et kapunk, amikor a képlet üres cellát kap (B10). Az alábbiakban foglalkozunk ezzel a problémával.
Ehhez a képlethez csak egy bevitel szükséges, amely a szavakat tartalmazó szöveg. A LAMBDA függvényünkben ezt az argumentumot "szövegnek" nevezzük. Itt van a képlet LAMBDA-vá alakítva:
=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)
Megjegyzés: a "szöveg" jelenik meg első érvként, és a számítás a második és az utolsó argumentum. Az alábbi képernyőn az eredeti képletet lecseréltük az általános LAMBDA verzióra. Vegye figyelembe, hogy a tesztelési szintaxist használjuk, amely lehetővé teszi számunkra, hogy csatlakoztassuk a B5-et a szöveghez:
=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)(B5)
Az általános LAMBDA képlet eredményei megegyeznek az eredeti képlettel, ezért a következő lépés a LAMBDA képlet meghatározása és elnevezése a Névkezelővel, az előzőekben leírtak szerint. Ezt a képletet "CountWords" -nak fogjuk nevezni.
Az alábbiakban lecseréltük az általános (névtelen) LAMBDA képletet a megnevezett LAMBDA verzióra, és a B5 szöveget írtuk be. Figyeljük meg, hogy pontosan ugyanazokat az eredményeket kapjuk.
A Névkezelőben a CountWords meghatározásához használt képlet megegyezik a fentivel, a tesztelési szintaxis nélkül:
=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+1)
Az üres cella problémájának kijavítása
Mint fent említettük, a fenti képlet helytelen 1-es számot ad vissza, ha egy cella üres. Ez a probléma megoldható a +1 helyettesítésével az alábbi kóddal:
=LEN(TRIM(B5))-LEN(SUBSTITUTE(B5," ",""))+(LEN(TRIM(B5))>0)
Teljes magyarázat itt. A meglévő LAMDA képlet frissítéséhez ismét a Névkezelőt kell használnunk:
- Nyissa meg a Névkezelőt
- Válassza ki a "CountWords" nevet, és kattintson a "Szerkesztés" gombra
- Cserélje ki a "Hivatkozás erre" kódot ezzel a képlettel:
=LAMBDA(text,LEN(TRIM(text))-LEN(SUBSTITUTE(text," ",""))+(LEN(TRIM(text))>0))
A Névkezelő bezárása után a CountWords az üres cellákon megfelelően működik, az alábbiak szerint:
Megjegyzés: a Névkezelőben a kód egyszeri frissítésével a CountWords képlet összes példánya egyszerre frissül. Ez a LAMBDA -formula frissítésekkel létrehozott egyedi funkciók fő előnye, hogy egy helyen kezelhetők.