- LET priraďuje názvy k medzivýsledkom a zlepšuje prehľadnosť a výkon.
- LAMBDA vytvára vlastné funkcie a overuje ich platnosť volaním v bunke.
- Príkazy BYROW, BYCOL, MAP, SCAN, REDUCE a MAKEARRAY používajú LAMBDA na polia.
- Pripravené príklady: medzisúčty, mapovania, kumulatívne súčty a generovanie matíc.
Pri práci s údajmi v Exceli nastane bod, kedy sa opakované vzorce a nekonečné rozsahy stanú nezvládnuteľnými; vtedy prichádzajú na rad funkcie LET a LAMBDA , dva kľúčové prvky na vytváranie prehľadných, opakovane použiteľných a rýchlejšie udržiavateľných výpočtov.
Pomocou týchto funkcií a niekoľkých moderných maticových funkcií , ktoré sa na ne spoliehajú, môžete definovať medziľahlé názvy, zapuzdriť výpočty a aplikovať transformácie na matice, akoby ste prechádzali slučkou; BYROW, BYCOL, MAP, SCAN, REDUCE a MAKEARRAY sú čerešničkou na torte, ktorá vám umožňuje elegantne a efektívne aplikovať funkciu LAMBDA na riadky, stĺpce alebo prvky matice.
Čo sú LET a LAMBDA v Exceli?
Funkcia LAMBDA vám umožňuje vytvárať vlastné funkcie pomocou vlastného jazyka vzorcov programu Excel bez makier alebo VBA: definujete parametre, napíšete výpočet a ak chcete, zavoláte ho s argumentmi, aby ste získali okamžitý výsledok.
Funkcia LET sa na druhej strane používa na priradenie názvov k medzivýsledkom v rámci toho istého vzorca , takže ich môžete opakovane použiť bez nutnosti prepočítavania, čím získate čitateľnosť a efektivitu v zložitých tabuľkách.
Okolo funkcie LAMBDA sa objavili funkcie, ktoré zaobchádzajú s maticami, akoby to boli kolekcie, ktoré sa majú prechádzať: BYROW (po riadkoch), BYCOL (po stĺpcoch), MAP (mapuje prvky), SCAN (akumuluje a vracia medziľahlé stavy), REDUCE (vracia iba konečnú akumulovanú hodnotu) a MAKEARRAY (generuje matice na požiadanie).
Predstavte si túto sadu ako nástroje, ktoré simulujú slučky a prechody matíc : odovzdáte LAMBDA funkciu s požadovanou transformáciou a Excel urobí zvyšok, pričom vráti vektory alebo matice s výsledkami.
Výsledkom je, že môžete vytvárať sofistikované výpočty bez použitia pomocných stĺpcov alebo externého kódu; všetko je zapuzdrené v čistých vzorcoch s menším rizikom chýb a lepšou údržbou.
Ako otestovať a definovať LAMBDA bez chýb
Dobrým postupom je vytvoriť a overiť funkciu LAMBDA priamo v bunke pred jej definovaním ako opakovane použiteľnej funkcie: definovať parametre, napísať výpočet a na koniec pridať testovacie volanie s požadovanými argumentmi.
Ak nevykonáte toto testovacie volanie, je relatívne ľahké naraziť na chybu #CALC! v neúplných vzorcoch; posledné volanie vynúti vyhodnotenie výpočtu a potvrdí, že štruktúra je správna.
Najprehľadnejší spôsob práce je: LAMBDA(parameter1; parameter2; …; výpočet)(argument1; argument2; …) ; teda do jednej bunky zapíšete definíciu a jej vykonanie na overenie výsledku.
Napríklad, ak chcete k číslu pripočítať 1, môžete skúsiť: =LAMBDA(number; number + 1)(1)Tento výraz vráti hodnotu 2, čo potvrdzuje, že LAMBDA a jej volanie sú dobre naplánované.
Po overení môžete túto LAMBDA funkciu zaregistrovať ako vlastnú funkciu (s názvom) alebo ju vložiť do iných vzorcov a funkcií poľa na riešenie ambicióznejších problémov.
LET: syntax, argumenty a úvahy

Všeobecná syntax príkazu LET je: =LET(nombre1; nombre_valor1; cálculo_o_nombre2; )jeho cieľom je pomenovanie medzivýsledkov a použiť tieto názvy v konečnom výpočte.
Kľúčové argumenty funkcie LET: názov1 (povinné) je prvý identifikátor, ktorý priradíte; musí začínať písmenom, nemôže byť výsledkom vzorca a nesmie byť v konflikte so syntaxou rozsahu v Exceli .
Argument `name_value1` (povinný) je hodnota alebo výraz, ktorý bude priradený k `name1` ; týmto spôsobom sa vyhnete opakovaniu toho istého výpočtu a zlepšíte výkon , ak ho budete znova používať.
Tretí argument, calculation_or_name2 (povinný), môže byť jedna z dvoch vecí: buď konečný výpočet , ktorý použije všetky deklarované názvy, alebo druhý názov, ktorý sa má definovať; ak sa rozhodnete deklarovať názov, budete musieť zadať aj value_name2 a calculation_or_name3.
hodnota_názvu2 (voliteľné) priradí hodnotu názvu deklarovanému v predchádzajúcom kroku; ak pokračujete v reťazení názvov, opakujte vzor názov/hodnota, kým posledný argument nie je výpočet.
Nakoniec, argument calculation_or_name3 (voliteľné) môže byť konečný výpočet alebo tretí názov; nezabudnite, že posledný argument funkcie LET musí byť vždy výpočet , ktorý vráti očakávaný výsledok.
Tento škálovateľný vzor umožňuje prehľadne reťaziť definície a zabraňuje duplicite výrazov v rámci toho istého vzorca; skrátka, LET zjednodušuje, objasňuje a zrýchľuje prácu s zložitými zošitmi.
Moderné maticové funkcie využívajúce LAMBDA
Tieto funkcie prechádzajú maticami aplikovaním transformácie definovanej pomocou LAMBDA a správajú sa ako iterátory; umožňujú medzisúčty podľa riadkov alebo stĺpcov , mapovania, kumulatívne súčty a vytváranie vlastných matíc.
BYROW: Aplikuje LAMBDA na každý riadok
Funkcia BYROW vyhodnotí LAMBDA funkciu pre každý riadok vo vstupnom rozsahu a vráti stĺpcový vektor s výsledkami; je ideálna na vytváranie medzisúčtov alebo riadkových indikátorov bez pomocných stĺpcov.
Jeho syntax je: =BYROW(rango; LAMBDA(fila; cálculo_por_fila)), kde parameter front predstavuje aktuálny riadok, ktorý funkcia spracováva; LAMBDA vráti jednu hodnotu na riadok.
Praktický príklad: ak je vaša matica v B2:D7 a chcete spočítať každý riadok, v E2 napísať =BYROW(B2:D7; LAMBDA(fila; SUMA(fila))); dostaneš vektor so súčtom každého riadku, pripravené na použitie v analýze alebo grafike.
BYCOL: aplikuje LAMBDA na každý stĺpec
Funkcia BYCOL funguje podobne ako BYROW, ale iteruje cez stĺpce; vracia stĺpcový vektor s jedným výsledkom pre každý stĺpec v zdrojovom rozsahu.
Syntax je: =BYCOL(rango; LAMBDA(columna; cálculo_por_columna))parameter stĺp sprístupní aktuálny stĺpec funkcii LAMBDA, ktorá vygeneruje jednu hodnotu na stĺpec.
Praktický príklad: s údajmi v B2:D7, miesto v B8 vzorec =BYCOL(B2:D7; LAMBDA(columna; PROMEDIO(columna))); dostaneš vektor s priemerom každého stĺpca, užitočné ako súhrn alebo kontrola kvality.
MAKEARRAY: Vytvorenie vypočítaných polí
Funkcia MAKEARRAY generuje pole zadanej veľkosti, pričom každý prvok vypočítava pomocou funkcie LAMBDA, ktorá prijíma index riadka a index stĺpca; v niektorých španielskych prostrediach sa to označuje ako ARCHIVOMAKEARRAY.
Jeho všeobecná forma je: =MAKEARRAY(n_filas; n_columnas; LAMBDA(fila; columna; cálculo_por_posición))Každý prienik riadkov/stĺpcov prechádza cez LAMBDA a vráti požadovanú hodnotu pre danú súradnicu.
Príklad identifikátora pozície: v ľubovoľnej bunke použite =ARCHIVOMAKEARRAY(3; 2; LAMBDA(fila; col; -(fila&col))) vytvoriť pole 3 riadky krát 2 stĺpce kde každý prvok zreťazuje svoj riadok a stĺpec (a je nútený číslovať znamienkom mínus).
Ďalší príklad kombinácie viacerých funkcií: =LET(arrPos; ARCHIVOMAKEARRAY(3; 2; LAMBDA(fila; col; -(fila&col))); arrPosF; COINCIDIR(arrPos; K.ESIMO.MENOR(arrPos; SECUENCIA(6))); INDICE(G8:G13; arrPosF))S touto konštrukciou, generujete pozície, získavate 6 menších a pomocou INDEXU ich namapujete na rozsah.
MAP: transformácia prvku na prvok
MAP berie jedno alebo viacero polí a vracia ďalšie rovnakej veľkosti aplikovaním funkcie LAMBDA na každý prvok; je ideálny na čistenie, normalizáciu alebo podmienené označenia bez pomocných stĺpcov.
Základná syntax je: =MAP(matriz; LAMBDA(valor; transformación)); ak odovzdáte viacero polí, LAMBDA dostane viacero parametrov, jeden pre každé pole; výsledok zachováva rozmery vstupnej matice.
Klasický príklad na označovanie párnych a nepárnych čísel v A21:A26: =MAP($A$21:$A$26; LAMBDA(param1; SI(ES.PAR(param1); param1; "-")))Každý prvok sa teda nahradí sám sebou, ak je párny, alebo spojovníkom, ak nie je; všetko spracovanie je vektorové.
SKENOVANIE: akumulované s prechodnými stavmi
Funkcia SCAN prechádza poľom s akumulujúcou sa LAMBDA funkciou a vracia všetky medziľahlé stavy, nielen konečný; je ideálna na sčítanie súčtov, percentuálnych kumulatív a výpočtov, ktoré závisia od predchádzajúceho výsledku.
Štruktúra je: =SCAN(valor_inicial; matriz; LAMBDA(acumulador; valor; nuevo_acumulado))Kde počiatočná_hodnota akumulátor sa spustí, matice je rozsah, ktorý sa má spracovať, a LAMBDA definuje prechod medzi štátmi.
Pre klasický jackpot A31:A36píše: =SCAN(0; A31:A36; LAMBDA(acum; param1; acum + param1)); dostaneš postupnosť parciálnych súčtov v jednom kroku.
A ak chcete kumulatívny pomer, môžete kombinovať LET a SCAN: =LET(total; SUMA(A31:A36); SCAN(0; A31:A36; LAMBDA(acum; param1; (acum + param1))) / total)Tu najprv vypočítate spolu s LET a potom každý prechodný stav vydelíte týmto súčtom.
ZNÍŽIŤ: konečná nahromadená suma
Funkcia REDUCE funguje podobne ako funkcia SCAN, ale vracia iba posledný stav akumulátora, to znamená, že redukuje celé pole na jednu hodnotu použitím transformácie definovanej funkciou LAMBDA.
Jeho vzorec je: =REDUCE(valor_inicial; matriz; LAMBDA(acumulador; valor; nuevo_acumulado)); konečná hodnota je zvyčajne súčet, súčin, logický prienik alebo výsledok procesu, ktorý vás zaujíma.
Príklad konečného priebežného súčtu na A1:A6: =REDUCE(0; A1:A6; LAMBDA(acum; param1; acum + param1)); v jednom výraze, dostanete celkovú sumu bez odhalenia medzikrokov.
Vášnivý spisovateľ o svete bajtov a technológií všeobecne. Milujem zdieľanie svojich vedomostí prostredníctvom písania, a to je to, čo urobím v tomto blogu, ukážem vám všetko najzaujímavejšie o gadgetoch, softvéri, hardvéri, technologických trendoch a ďalších. Mojím cieľom je pomôcť vám orientovať sa v digitálnom svete jednoduchým a zábavným spôsobom.