Excel jest oficjalnie językiem programowania: Oto, co to oznacza
Jeśli myślałeś, że Microsoft Excel służy tylko do wprowadzania danych, pomyśl jeszcze raz. Program ewoluował w pełnoprawny język programowania, posiadający pełną moc maszyny Turinga, co sprawia, że siatka komórek staje się środowiskiem do programowania funkcjonalnego. Oto dlaczego to zmienia wszystko dla Ciebie.
Czym jest kompletność Turinga?
W informatyce kompletność Turinga jest złotym standardem mocy obliczeniowej. Nazwana na cześć Alana Turinga, kryptologa z czasów II wojny światowej, odnosi się do każdego systemu, który, mając wystarczająco dużo czasu i pamięci, potrafi rozwiązać każdy problem obliczeniowy, który może rozwiązać „prawdziwy” komputer.
Przez dziesięciolecia Excel był w zasadzie zaawansowanym kalkulatorem, gdzie do stosowania bardziej skomplikowanej logiki potrzebne były podatne na błędy, zagnieżdżone obejścia. Można było dodawać liczby, obliczać średnie lub wyszukiwać dane, ale ograniczały cię funkcje udostępnione przez Microsoft. Jeśli formuła nie istniała dla zadania, które chciałeś wykonać, napotykałeś na ślepy zaułek lub musiałeś pisać skomplikowane skrypty w VBA.
Dzięki osiągnięciu kompletności Turinga, natywny język formuł Excela zmienił się z ograniczonego narzędzia w uniwersalne, co oznacza, że pasek formuł jest teraz językiem zdolnym do tej samej logiki co Python, Java czy C++. Chociaż odradzałbym marnowanie czasu na tworzenie 16-bitowego procesora w Excelu, matematyczna rzeczywistość jest taka, że mogłoby się to zrobić. Ta zmiana oznacza, że granice tego, co można zbudować w arkuszu kalkulacyjnym, zostały oficjalnie zburzone. Jeśli potrafisz wymyślić algorytm, Excel ma teraz infrastrukturę logiczną, aby go wykonać.
Funkcja LAMBDA zmieniła wszystko
Jeśli kompletność Turinga jest silnikiem, to LAMBDA jest kierownicą. Chociaż Excel mógł od dziesięcioleci symulować maszyny Turinga za pomocą uciążliwych formuł, ta pojedyncza funkcja zniosła barierę pomiędzy pisaniem formuły a pisaniem oprogramowania. Historycznie formuły były uwięzione w komórce, w której je napisano, co oznaczało, że jeśli stworzyłeś genialny fragment logiki do obliczania określonego progu podatkowego, musiałeś kopiować i wklejać tę ogromną sekwencję tekstu za każdym razem, gdy chciałeś jej użyć.
LAMBDA pozwala definiować, nazywać i przechowywać własne funkcje niestandardowe, wprowadzając pojęcie abstrakcji do Excela. Możesz wziąć skomplikowane, trzydziesto-liniowe obliczenie i zredukować je do jednej, czytelnej nazwy, takiej jak Calculate_Risk(), a po jej zdefiniowaniu wywołujesz ją tak samo jak =SUMA lub =XLOOKUP.
Ta zmiana przekształciła pasek formuły w prawdziwe środowisko programistyczne, umożliwiając modułowość — gdzie możemy tworzyć bibliotekę własnych narzędzi działających w całym skoroszycie. Dając nam możliwość tworzenia własnego słownictwa, Microsoft dał nam klucz do tworzenia własnych mini-programów w obrębie arkusza.
Używanie rekurencji do rozwiązywania dowolnego problemu
W tradycyjnym programowaniu rekursja to technika, w której funkcja wywołuje sama siebie, aby rozwiązać mniejszą część większego problemu. Przez długi czas było to szczególnie trudne do osiągnięcia w Excelu — formuła odwołująca się do własnej komórki wywoływałaby błąd odwołania cyklicznego, powodując, że arkusz kalkulacyjny „załamywał ręce” w geście zamieszania.
Jednak LAMBDA teraz poprawnie obsługuje rekurencję w przypadku nazwanych funkcji wywołujących same siebie. Można to sobie wyobrazić jak zestaw rosyjskich matrioszek: funkcja otwiera jedną lalkę, znajdując w środku kolejną, i powtarza ten proces, aż dotrze do środka.
Ta funkcja umożliwia Excelowi obsługę bardzo złożonych struktur danych. Niezależnie od tego, czy próbujesz poruszać się po skomplikowanej hierarchii korporacyjnej, analizować długi ciąg nieuporządkowanego tekstu, czy obliczać odsetki w zmieniającym się czasie, rekursja pozwala formule działać dalej, aż logika zostanie spełniona.
Nie martw się o nieskończone pętle, które mogłyby zawiesić Twój komputer — Excel ma wbudowane ograniczenia dotyczące tego, ile razy formuła może wywołać samą siebie, aby wszystko pozostało stabilne.
W rezultacie nie chodzi już o pojedyncze obliczenie — chodzi o ciąg logicznych kroków, które mogą trwać tak długo, jak będzie to konieczne, aby znaleźć odpowiedź.
Tablice dynamiczne i „nieskończona” siatka
Podczas gdy LAMBDA zapewnia logikę, tablice dynamiczne dostarczają przestrzeń. W starym Excelu jedna formuła znajdowała się w jednej komórce. Jeśli chciałeś zobaczyć listę wyników, musiałeś ręcznie przeciągnąć uchwyt wypełniania w dół kolumny. Było to statyczne, kruche i podatne na błędy ludzkie.
Nowoczesny Excel używa zachowania wylewania danych — oznaczonego cienką niebieską ramką wokół obliczanego zakresu — co oznacza, że jedna formuła może zwrócić cały zakres danych, który dynamicznie zmienia rozmiar w zależności od wyniku. Jeśli Twoja formuła znajdzie 10 elementów, wypełni 10 komórek, a jeśli dane jutro wzrosną do 100 elementów, wynikowy zakres automatycznie się powiększy, aby je pomieścić.
To przekształca arkusz kalkulacyjny z statycznego rejestru w środowisko reaktywne. Zachowuje się mniej jak papierowa siatka, a bardziej jak nowoczesny interfejs aplikacji, w którym interfejs użytkownika (komórki) automatycznie dostosowuje się do danych źródłowych. W połączeniu z logiką turingowsko-zupełną oznacza to, że można tworzyć programy generujące własne tabele, raporty i pulpity nawigacyjne w czasie rzeczywistym. Siatka jest elastycznym płótnem, które powiększa się i pomniejsza w miarę wykonywania kodu.
Dlaczego kompletność Turinga ma dla ciebie znaczenie
Możesz się zastanawiać, dlaczego kompletność Turinga to coś więcej niż tylko ciekawostka w Excelu dla informatyków. Prawdziwa korzyść w świecie rzeczywistym sprowadza się do przenośności i bezpieczeństwa.
Jak wspomniałem wcześniej, historycznie, jeśli chciałeś wbudować zaawansowaną logikę w arkusz kalkulacyjny, musiałeś używać makr VBA. To powodowało dwa główne problemy. Po pierwsze, makra są znanym zagrożeniem bezpieczeństwa. W rzeczywistości w 2022 roku Microsoft zmienił domyślne ustawienia aplikacji Office, aby automatycznie blokowały makra VBA w plikach pobranych z internetu, a wiele działów IT blokuje pliki XLSM, aby zapobiec złośliwemu oprogramowaniu. Po drugie, ponieważ VBA to stara technologia, ma problemy z pracą z innymi narzędziami, w tym z Excelem w wersji internetowej i aplikacją mobilną Excel.
Ponieważ nowa moc programowania Excela jest wbudowana bezpośrednio w język formuł, twoje skomplikowane programy teraz znajdują się w standardowych, bezpiecznych plikach XLSX. Działają płynnie w przeglądarce, na iPadzie lub mogą być udostępniane przez Teams bez wywoływania ostrzeżeń bezpieczeństwa.
Ta zmiana demokratyzuje rozwój. Nie musisz uczyć się osobnego języka programowania ani uzyskiwać zgody działu IT na instalację specjalistycznych narzędzi — jeśli masz dostęp do komórki, masz dostęp do pełnowymiarowego środowiska programistycznego. Umożliwia to tworzenie solidnych narzędzi przypominających aplikacje, które są natywnie kompatybilne z nowoczesnym, opartym na chmurze sposobem pracy, jaki mamy dziś.
Wraz z tym, jak Excel staje się językiem Turingowsko kompletnym, nie musisz już wychodzić poza arkusz ani uczyć się dodatkowego języka, aby tworzyć złożone, zautomatyzowane systemy. Chociaż nie zastąpi to dedykowanego programowania przy ogromnych aplikacjach, zamienia arkusz kalkulacyjny w potężną platformę low-code. Jednak wraz z nową mocą pojawia się potrzeba lepszej organizacji. Tak jak inżynier oprogramowania dokumentuje swoje skrypty, powinieneś zacząć dokumentować swoje formuły Excela jak kod, aby zapewnić, że Twoja logika pozostanie czytelna dla każdego, kto korzysta z arkusza.




