- LET přiřazuje názvy mezivýsledkům a zlepšuje přehlednost a výkon.
- LAMBDA vytváří vlastní funkce a ověřuje je voláním v buňce.
- Funkce BYROW, BYCOL, MAP, SCAN, REDUCE a MAKEARRAY používají funkci LAMBDA na pole.
- Připravené příklady: mezisoučty, mapování, kumulativní a maticové generování.
Při práci s daty v Excelu nastane bod, kdy opakované vzorce a nekonečné rozsahy se stávají nezvládnutelnými; a právě zde přicházejí na řadu funkce LET a LAMBDA, dva klíčové prvky pro vytváření čistých, opakovaně použitelných a rychleji udržovatelných výpočtů.
S těmito funkcemi a s několika moderní maticové funkce které se na nich spoléhají, můžete definovat mezilehlé názvy, zapouzdřovat výpočty a aplikovat transformace na matice, jako byste dělali smyčky; BYROW, BYCOL, MAP, SCAN, REDUCE a MAKEARRAY Jsou třešničkou na dortu, která vám umožňuje elegantně a efektivně aplikovat LAMBDA na řádky, sloupce nebo prvky matice.
Co jsou LET a LAMBDA v Excelu?
Funkce LAMBDA umožňuje vytvářet vlastní funkce pomocí samotného jazyka excelovské vzorce, bez maker nebo VBA: definujete parametry, zapíšete výpočet a pokud chcete, zavoláte ho s argumenty, abyste získali okamžitý výsledek.
Funkce LET se na druhou stranu používá k přiřadit názvy mezivýsledkům v rámci stejného vzorce, takže je můžete opakovaně použít bez nutnosti přepočítávání, což vám zajistí čitelnost a efektivitu ve složitých tabulkách.
Kolem funkce LAMBDA se objevily funkce, které zacházejí s poli, jako by to byly kolekce, které je třeba procházet: BYROW (po řádcích), BYCOL (po sloupcích), MAP (prvky mapy), SCAN (akumuluje a vrací mezilehlé stavy), SNÍŽIT (vrací pouze konečnou kumulativu) a MAKEARRAY (generuje matice na vyžádání).
Představte si tuto sadu jako nástroje, které simulovat smyčky a procházení políPředáte LAMBDA funkci s požadovanou transformací a Excel se postará o zbytek a vrátí vektory nebo matice s výsledky.
Výsledkem je, že můžete vytvářet sofistikované výpočty bez použití pomocných sloupců nebo externího kódu; vše je zapouzdřeno v čistých recepturách, s menším rizikem chyb a lepší údržbou.
Jak otestovat a definovat LAMBDA bez chyb
Dobrá praxe je sestavit a validovat LAMBDA přímo v buňce Před definováním jako opakovaně použitelné funkce: definujte parametry, napište výpočet a na konec přidejte testovací volání s požadovanými argumenty.
Pokud neprovedete ten zkušební hovor, je relativně snadné na to narazit. chyba #CALC! V neúplných vzorcích vás poslední volání nutí vyhodnotit výpočet a potvrdit, že struktura je správná.
Nejjasnější způsob práce je: LAMBDA(parametr1; parametr2; …; výpočet)(argument1; argument2; …); takže do jedné buňky zapíšete definici a její provedení pro ověření výsledku.
Například chcete-li k číslu přičíst 1, můžete zkusit: =LAMBDA(number; number + 1)(1)Tento výraz vrací hodnotu 2, což potvrzuje, že LAMBDA a její volání jsou dobře naplánované.
Po ověření můžete danou LAMBDA funkci zaregistrovat jako vlastní funkci (s názvem) nebo vložte to do jiných vzorců a maticové funkce pro řešení ambicióznějších problémů.
LET: syntaxe, argumenty a úvahy

Obecná syntaxe příkazu LET je: =LET(nombre1; nombre_valor1; cálculo_o_nombre2; ); jeho cílem je pojmenování mezivýsledků a použít tato jména v konečném výpočtu.
Klíčové argumenty LET: name1 (povinné) je první identifikátor, který přiřadíte; musí začínat písmenem, nesmí být výsledkem vzorce a nemůže vstoupit do konfliktu s syntaxe rozsahu v aplikaci Excel.
Argument název_hodnota1 (povinné) je hodnota nebo výraz, který bude přidružen k name1Tímto způsobem se vyhnete opakování stejného výpočtu a zlepšit výkon pokud ho budete znovu používat.
Třetí argument, název_výpočtu_nebo_název2 (povinné), může to být jedna ze dvou věcí: buď konečný výpočet který používá všechny deklarované názvy nebo druhý název, který bude definován; pokud se rozhodnete deklarovat název, budete muset také poskytnout název_hodnota2 y název_výpočtu_nebo_název3.
název_hodnota2 (volitelné) přiřadí hodnotu názvu deklarovanému v předchozím kroku; pokud budete pokračovat v řetězení názvů, opakujte vzor název/hodnota, dokud poslední argument není výpočet.
Konečně, název_výpočtu_nebo_název3 (volitelné) může být konečný výpočet nebo třetí jméno; nezapomeňte, že Poslední argument funkce LET musí být vždy výpočtem. který vrací očekávaný výsledek.
Tento škálovatelný vzor umožňuje jasné řetězení definic a zabraňuje duplikování výrazů ve stejném vzorci; zkrátka, LET zjednodušuje, zpřehledňuje a zrychluje složité pracovní sešity.
Moderní maticové funkce využívající LAMBDA
Tyto funkce procházejí pole s použitím transformace definované pomocí LAMBDA a chovají se, jako by byly iterátory; uveďte mezisoučty podle řádku nebo sloupce, mapování, akumulované a konstrukci vlastních matic.
BYROW: Aplikuje LAMBDA na každý řádek
BYROW Vyhodnotí LAMBDA funkci pro každý řádek ve vstupním rozsahu a vrátí sloupcový vektor výsledků; je ideální pro vytváření mezisoučtů nebo indikátorů řádek po řádku bez pomocných sloupců.
Jeho syntaxe je: =BYROW(rango; LAMBDA(fila; cálculo_por_fila)), kde parametr fronta představuje aktuální řádek, který funkce zpracovává; LAMBDA vrací jednu hodnotu na řádek.
Praktický příklad: pokud je vaše matice v B2:D7 a chcete sečíst každý řádek, E2 psát =BYROW(B2:D7; LAMBDA(fila; SUMA(fila))); dostaneš vektor se součtem každého řádku, připraveno k použití v analýze nebo grafice.
BYCOL: aplikuje LAMBDA na každý sloupec
BYCOL Funguje podobně jako BYROW, ale prochází sloupce; vrací sloupcový vektor s jedním výsledkem pro každý sloupec ve zdrojovém rozsahu.
Syntaxe je: =BYCOL(rango; LAMBDA(columna; cálculo_por_columna))parametr sloupec zpřístupní aktuální sloupec funkci LAMBDA, která vytváří jednu hodnotu na sloupec.
Praktický příklad: s daty v B2:D7, místo v B8 vzorec =BYCOL(B2:D7; LAMBDA(columna; PROMEDIO(columna))); dostaneš vektor s průměrem každého sloupce, užitečné jako shrnutí nebo kontrola kvality.
MAKEARRAY: vytvoření vypočítaných polí
MAKEARRAY generuje matici o vámi zadané velikosti a každý prvek vypočítává pomocí funkce LAMBDA, která přijímá index řádku a index sloupce; v některých španělských prostředích je to vnímáno jako VYTVOŘIT SOUBOR.
Jeho obecný tvar je: =MAKEARRAY(n_filas; n_columnas; LAMBDA(fila; columna; cálculo_por_posición))Každý průnik řádků/sloupců prochází funkcí LAMBDA a vrací požadovanou hodnotu pro danou souřadnici.
Příklad identifikátoru pozice: v libovolné buňce použijte =ARCHIVOMAKEARRAY(3; 2; LAMBDA(fila; col; -(fila&col))) vytvořit pole 3 řádky krát 2 sloupce kde každý prvek zřetězí svůj řádek a sloupec (a je nucen číslovat se znaménkem mínus).
Další příklad kombinace několika funkcí: =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 konstrukcí, generujete pozice, získáváte 6 nezletilých a pomocí INDEXU je namapujete na rozsah.
MAP: transformace prvku na prvek
MAP vezme jedno nebo více polí a vrátí další stejné velikosti aplikací funkce LAMBDA na každý prvek; je to ideální pro čištění, normalizace nebo podmíněné tagy bez pomocných sloupů.
Základní syntaxe je: =MAP(matriz; LAMBDA(valor; transformación)); pokud předáte více polí, LAMBDA obdrží více parametrů, jeden pro každé pole; výsledek zachovává rozměry vstupní matice.
Klasický příklad pro označování sudých a lichých čísel v A21:A26: =MAP($A$21:$A$26; LAMBDA(param1; SI(ES.PAR(param1); param1; "-")))Každý prvek je tedy nahrazen sám sebou, pokud je sudý, nebo pomlčkou, pokud není; veškeré zpracování je vektorové.
SCAN: akumulováno s mezilehlými stavy
SCAN Iteruje polem s akumulátorem LAMBDA a vrací všechny mezilehlé stavy, nejen konečný; je ideální pro průběžné součty, kumulativní procenta a výpočty, které závisí na předchozím výsledku.
Struktura je: =SCAN(valor_inicial; matriz; LAMBDA(acumulador; valor; nuevo_acumulado))Kde počáteční_hodnota akumulátor se spustí, matice je rozsah, který má být zpracován, a LAMBDA definuje přechod mezi státy.
Pro klasický jackpot A31:A36napsat: =SCAN(0; A31:A36; LAMBDA(acum; param1; acum + param1)); dostaneš posloupnost parciálních součtů v jednom kroku.
A pokud chcete kumulativní poměr, můžete kombinovat LET a SCAN: =LET(total; SUMA(A31:A36); SCAN(0; A31:A36; LAMBDA(acum; param1; (acum + param1))) / total)Zde nejprve vypočítáte celkem s LET a pak každý mezilehlý stav vydělíte tímto součtem.
SNÍŽIT: konečná akumulovaná
SNÍŽIT Funguje to jako SCAN, ale vrací pouze poslední stav akumulátoru, tj. redukuje celé pole na jednu hodnotu použití transformace definované pomocí LAMBDA.
Jeho vzorec je: =REDUCE(valor_inicial; matriz; LAMBDA(acumulador; valor; nuevo_acumulado)); konečná hodnota je obvykle součet, součin, logický průnik nebo výsledek procesu, který vás zajímá.
Příklad konečného průběžného součtu na A1:A6: =REDUCE(0; A1:A6; LAMBDA(acum; param1; acum + param1))v jednom výrazu, získáte celkovou sumu bez odhalování mezikroků.
Vášnivý spisovatel o světě bytů a technologií obecně. Rád sdílím své znalosti prostřednictvím psaní, a to je to, co budu dělat v tomto blogu, ukážu vám všechny nejzajímavější věci o gadgetech, softwaru, hardwaru, technologických trendech a dalších. Mým cílem je pomoci vám orientovat se v digitálním světě jednoduchým a zábavným způsobem.