Miliony lidí programují v Excelu. Jen tomu tak neříkají

Excel není jen tabulka. V milionech buněk vznikají pravidla, automatizace i důležité firemní procesy. Často bez toho, aby je jejich autoři považovali za programování.
Nálepky:
Soubor se může jmenovat Plan_2026_final_v12_OPRAVA.xlsx. Má třicet listů, několik skrytých sloupců a jednu buňku, do které se „nesmí sahat“. Původní autor už ve firmě nepracuje, ale každý měsíc se soubor otevře, přepíše se pár čísel a podle výsledku se upraví rozpočet, pošle objednávka nebo rozepíšou směny.
Nikdo mu nejspíš neříká aplikace. Nemá vlastní web, obrazovku s chybami ani poznámky k vydání. Přesto přijímá vstupy, zpracovává je podle předem napsaných pravidel a vrací výsledek, podle kterého jednají další lidé. To je program. Jen se neposílá na server, ale jako příloha e-mailu.
Excel je v tomhle výjimečně dobrý. Člověk, který rozumí cenotvorbě, skladu nebo účetnictví, může postavit užitečný výpočet hned nad svými daty. Nemusí čekat, až pravidla přeloží analytik, programátor a nakonec tester. Vidí čísla, změní předpoklad a okamžitě pozná, co to udělá s výsledkem.
Potíž nepřichází ve chvíli, kdy někdo napíše první vzorec. Přichází až tehdy, když se z něj stane pravidelná práce pro více lidí. Sešit zůstane na pohled dokumentem, ale ve skutečnosti začne řídit pravidelný kus provozu. A ten už potřebuje víc než jen pozornost při ručních úpravách.
Buňky jsou malé kusy programu
Vzorec v buňce vezme vstup, něco s ním udělá a předá výsledek další buňce. Když se změní cena, sazba nebo počet kusů, Excel přepočítá vše, co na nich závisí. Vzniká tak soustava malých pravidel, která se spouštějí nad novými daty.
Excel navíc dávno umí víc než součet a vyhledání hodnoty. Funkce LAMBDA dovoluje vytvořit vlastní pojmenovaný výpočet s parametry a používat ho na více místech v sešitu. Power Query zase načte data z jiných zdrojů, vyčistí je a při dalším importu zopakuje stejný postup. A skripty v novějších verzích Excelu dokážou automatizovat opakované kroky nebo předat výsledek dalšímu procesu. Microsoft tyto nástroje rozlišuje podle toho, zda je cílem hlavně převést data, nebo řídit práci uvnitř sešitu.
Není nutné tyto možnosti zveličovat. Většina dobrých sešitů žádné složité automatizace nepotřebuje. Podstatné je, že hranice mezi „přehledem pro vlastní potřebu“ a programem je v Excelu velmi nízko. Často ji překročíte dávno předtím, než do souboru přibude makro.
Největší výhoda se může obrátit proti autorovi
V klasickém vývoji se pravidla, data a obrazovka pro uživatele většinou oddělují. V Excelu mohou ležet vedle sebe: v horní části listu jsou vstupy, o pár řádků níž mezivýsledky, vedle nich ruční oprava a o sloupec dál poznámka, která vysvětluje výjimku. Autor se v tom vyzná, protože si soubor postupně postavil sám. Kdo ho převezme, musí nejdřív zjistit, co je vstup, co výpočet a co jen poznámka.
Přesunutí sloupce může změnit význam výpočtu. Přepsání vzorce číslem může změnit pravidlo, aniž by to kdo zaregistroval. Barva buňky může znamenat povinný vstup, varování nebo jen dávnou estetickou volbu. Historie souboru sice umí vrátit starší verzi, hůř už odpoví na jednoduchou otázku: co se změnilo v pravidle a proč se kvůli tomu změnil výsledek?
Excel kvůli tomu není potřeba odepisovat. Jen je dobré vnímat, že některé sešity mají jinou roli než běžný dokument. U dokumentu je podstatné, kdo upravil text. V sešitu s výpočty může stejná změna upravit pravidlo, podle něhož vychází výsledek.
Když tabulka řídí skutečný svět
V říjnu 2020 oznámila britská Public Health England, že technický problém v automatickém procesu vynechal z denních statistik 15 841 případů covidu. Týkal se předání pozitivních výsledků do přehledů a do trasovacího systému; lidé, kteří měli pozitivní test, svůj výsledek obdrželi. První prohlášení PHE mluvilo jen o technickém problému. Pozdější odpověď ministerstva zdravotnictví v parlamentu už uvádí, že některé excelové soubory použité při přenosu dat překročily povolenou velikost a nenahrály se. Excel tedy s chybou souvisel, ale selhal hlavně způsob, jak byl zapojený do předávání velkého objemu dat.
Podobný, i když mnohem finančnější, příklad přináší kauza London Whale v bance JPMorgan. Senátní vyšetřovací zpráva popisuje tabulku, která zachycovala rozdíl mezi interně vykazovanými ztrátami a jiným způsobem jejich ocenění. V polovině března 2012 ukazovala nejméně 432 milionů dolarů neohlášených ztrát; banka zároveň nedokázala vysvětlit dvě různé hodnoty pro stejný den. Ze zprávy Senátu plyne, že důležitá informace může zůstat v pomocném souboru vedle oficiálních výstupů.
Studie Stephena G. Powella, Kennetha R. Bakera a Barryho Lawsona z Tuck School of Business při Dartmouth College prozkoumala 25 hotových provozních tabulek z pěti organizací. Autoři potvrdili 117 chyb a u sedmi z nich přesáhl dopad 10 milionů dolarů. Studie nezkoumala cvičné úlohy, ale sešity, které firmy skutečně používaly.
Programování, které se za programování nepovažuje
Vývojář se nad podobným souborem nejspíš nejdřív pozastaví nad logikou promíchanou s daty, obtížně dohledatelnými změnami a vzorci, které putují po listech. To jsou reálné slabiny. Stejně reálná je ale výhoda, kvůli které Excel pořád žije v tolika firmách: pravidla v něm vznikají přímo u lidí, kteří rozumějí ceně, skladu, výrobě nebo účetnictví.
Účetní si může zkusit jiný způsob zaokrouhlení, plánovač přepočítat kapacitu a obchodník změnit podmínky slevy. Všichni vidí data i výsledek najednou. V tom je Excel blízký programování, ale zároveň od něj zůstává neobvykle přístupný: pravidlo nemusí nejdřív projít několika lidmi, aby se dostalo k člověku, který mu rozumí.
Možná nejzajímavější na Excelu není samotná tabulka, ale změna pohledu. Když sešit přijímá data, zpracuje je podle pravidel a ovlivňuje další postup, je to malý program, i když vznikl tím, že někdo zkopíroval vzorec do dalšího řádku.