Oprogramowanie  /  Artykuł

Pisałeś złożone formuły w Excelu, ale czegoś ci brakowało? Teraz rozwiniesz skrzydła

Picture of the author

Każdy, kto napisał bardziej złożoną formułę w Excelu, przeciągnął ją na kilka komórek lub uzależnił od niej wynik innej formuły, może sobie pogratulować. To pierwszy krok w stronę programowania.

Tak naprawdę przez wiele lat zostanie tzw. power userem miało swoje dalsze kroki. Po złożonych formułach w Excelu można było pisać np. skrypty automatyzujące pracę lub nawet tworzyć całe aplikacje oparte na narzędziach biurowych takich jak Excel.

Excel sam w sobie posiada możliwość pisania własnych skryptów - nie jest to jednak oczywiste. Otwórzcie jednak Excela, stwórzcie pusty arkusz i wciśnijcie Alt-F11. Zobaczycie zadziwiająco archaiczny, od wielu lat nieaktualizowany interfejs, przypominający Visual Studio sprzed 15 lat. To właśnie jest środowisko, które w tej chwili umożliwia pisanie własnych funkcji, które rozszerzają możliwości Excela. Własne funkcje możemy pisać w języku VBA - Visual Basic for Applications.

Do czego możemy użyć pisania funkcji? W skrócie - do zapisania obliczeń, które są zbyt złożone dla formuł i które chcemy wywoływać z wielu miejsc. Wyobraźmy sobie np. kod sprawdzający PESEL. Teoretycznie możemy zapisać go jako formułę, ale jeśli chcemy użyć go w innym miejscu, musimy go przekopiować. Podobnie musimy pamiętać o jego zmianie, jeśli znajdziemy i poprawimy w nim błąd. Definicja funkcji jest w jednym miejscu i jest wywoływana tam, gdzie jest potrzebna - to podstawowa różnica pomiędzy funkcją i formułą.

Excel posiada szereg funkcji wbudowanych. Zapewne każdy używający Excela użył ich wielokrotnie: są to słowa kluczowe typu DATA(), ZŁĄCZ.TEKST() czy SUMA(). Funkcjami są też wyrażenia matematyczne, którym przekazujemy parametry, np. SINUS().

Funkcje można definiować również w języku JavaScript, ale mam wrażenie, że jest to jeszcze bardziej skomplikowane niż pisanie ich w VBA.

A gdyby tak można było zapisywać formuły jako funkcje?

Każdy średnio zaawansowany użytkownik Excela potrafi zrobić cuda w formułach. Gdy rośnie liczba przetwarzanych danych, formuły stają się błogosławieństwem, ale i przekleństwem. Szczególnie problematyczne staje się poprawianie ich w każdej komórce, w której jest skopiowana lub „przeciągnięta”.

A gdyby tak można było zdefiniować formułę raz, nie pisząc w żadnym języku programowania, i wywoływać ją tam, gdzie potrzebujemy? Wyobraźmy sobie choćby najprostszą formułę, obliczającą podatek o podanej stawce.

Jak ogłosił Brian Jones na oficjalnym blogu poświęconym Excelowi, użytkownicy pakietu biurowego Microsoft Office otrzymają taką możliwość. Funkcja została nazwana Lambda - co jest pojęciem znanym programistom i oznacza właśnie między innymi funkcje tworzone ad hoc z wyrażeń.

Funkcje Excel Lambda będą musiały być zdefiniowane w nazwanej komórce (tzn. takiej której zmienimy nazwę z domyślnej opartej na adresie typu B1). Będą mogły również wywoływać się wzajemnie, a nawet… wywoływać same siebie, umożliwiając programowanie rekurencji. To bardzo dobra wiadomość dla wszystkich, którym tych możliwości brakowało w Excelu.

Nowa funkcja jest dostępna w wersji Beta (trzeba być użytkownikiem programu Insider), jednak po zakończeniu testów zostanie udostępniona wszystkim.

przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst


przeczytaj następny tekst