De ceva vreme încoace se tot anunță apariția metafuncției Lambda() cea care permite crearea de funcții personalizate în Excel fără utilizarea de VBA.
Personal, odată cu limitările și riscurile care apar în utilizarea macrourilor VBA am evitat constant să le utilizez sau predau, chiar dacă mulți clienți de Excel au solicitat constant cunoștințe suplimentare în acest domeniu. Pentru cei care nu știu prea multe, VBA era utilizat pentru a crearea funcțiilor personalizate sau pentru manipularea datelor în foile de calcul.
Manipularea datelor este rezolvată de ceva vreme prin utilizarea pachetelor Power Query care permit: importul, manipularea, transformarea și încărcarea datelor din diferite surse.
De câteva zile a apărut în versiunea de Excel din Office 365 funcția Lambda() alături de alte funcții corelate:
- REDUCE – Reduce o matrice (bloc de celule) la o valoare acumulată prin aplicarea unei funcții LAMBDA fiecărei valori și returnând valoarea totală în celula rezultat;
- SCAN – Scanează o matrice (bloc de celule) aplicând un LAMBDA fiecărei valori și returnează o matrice care are fiecare valoare intermediară;
- MAKEARRAY – Returnează o matrice calculată (bloc de celule) cu dimensiunea de rânduri și coloane specificate, prin aplicarea unei funcții LAMBDA;
- BYCOL – Aplică o funcție LAMBDA fiecărei coloane dintr-un bloc de celule (matrice) și returnează o matrice a rezultatelor cu același număr de coloane dar cu o singură linie cu rezultatele cumulate ale execuției LAMBDA;
- BYROW – Aplică o funcție LAMBDA fiecărei linii dintr-un bloc de celule (matrice) și returnează o matrice a rezultatelor cu același număr de linii dar cu o singură coloană cu rezultatele cumulate ale execuției LAMBDA;
- ISOMITTED – funcție de testare a parametrilor dintr-o funcție LAMBDA;
- MAP – Returnează o matrice formată prin maparea fiecărei valori din matrice(e) (blocul de valori) la o nouă valoare prin aplicarea unei funcții LAMBDA pentru a crea o nouă matrice de valoari.
Versiunea mea de Excel: Microsoft® Excel® for Microsoft 365 MSO (Version 2201 Build 16.0.14827.20186) 64-bit. Nu sunt înrolat în Office Insider, deci mesajul din paginile de help nu mai este de actualitate.
Structura funcției Lambda() de pe pagina oficială:
În continuare voi prezenta un exemplu simplu de creare a unei funcții personalizate pentru calculul prețului cu TVA pentru anumite produse.
În prima parte se creează și testează funcția cu parametrii dedicați:
În care:
- Valoare și Cotatva – sunt parametrii
- Valoare+valoare*cotatva este formula de calcul
- (B4;C4) – celulele în care sunt valorile parametrilor pentru testarea formulei.
Metoda aceasta o folosim doar pentru a compune și testa funcția. După validare funcției și rezultatului adăugăm funcția fără parametrii de testare în Name Manager din Formulas.
După definirea numelui fTVA putem folosi acum funcția fTVA() cu cei doi parametri.
În acest exemplu am folosit o contantă (19%) ca parametru al funcție fTVA()
Sper să fie util cuiva!