Mógłby ich w tej ciężkiej (naprawdę, ciężkiej!) pracy zastąpić komputer, ale to nie takie proste. Każdy z nich liczy coś trochę innego, więc każdy potrzebowałby innego programu. Na dodatek schematy obliczeń czasami się zmieniają, więc i programy trzeba by modyfikować. Koszty rosną — zastosowanie komputera staje się niezbyt opłacalne. I jeszcze aspekt psychologiczny. Ludzie nie bardzo rozumieją sposób pracy maszyny, trudno im się przestawić, bo są od wielu lat przyzwyczajeni do swoich formularzy i tabelek.
A właśnie, tabelek. Może więc zrobić program, który postawi do dyspozycji użytkownika tabelkę. Musi to być tabelka uniwersalna, po to, żeby mogła służyć wszystkim. Dlatego, gdy po raz pierwszy pojawia się na ekranie komputera ma tylko ponumerowane wiersze i kolumny. Użytkownik sam będzie je nazywał zgodnie ze swoimi potrzebami i on określi, co znajdzie się w poszczególnych rubrykach, czy komórkach. Komórka (ang. „cell”) to miejsce, przeznaczone na jedną daną — liczbę lub tekst, powstałe na przecięciu wiersza i kolumny. W razie potrzeby skorzystania z danej wpisanej w komórkę bardzo łatwo się do niej odwołać — wystarczy podać numery wiersza i kolumny.
Chcielibyśmy bardzo, żeby nasza tabelka była „rozumna”. Na przykład, gdy wpiszemy do niej dane, to mogłaby policzyć i wpisać do odpowiednich komórek sumy wierszy i kolumn. Albo obliczyć średnią arytmetyczną, czy też policzyć ile liczb jest wpisanych w wierszach między siódmym a jedenastym. Pomysłowość ludzi przy stwarzaniu sobie najdziwniejszych potrzeb jest niezwykła. A przecież chcieliśmy mieć tabelkę dobrą dla wszystkich. Nie na więc innego wyjścia, każdy będzie musiał sam ustalać, co ma obliczać jego tabelka. A jak mu się zmienią potrzeby, to sobie sam zmodyfikuje tabelce.
Jak to rozwiązać od strony technicznej (pamiętajmy, że nie żądamy od ludzi umiejętności programowania)? Otóż do komórki niekoniecznie trzeba wpisywać liczbę, czy tekst. Zamiast tego można podać wzór (wyrażenie arytmetyczne) na obliczenie wartości, która ma się w tej komórce znaleźć. Komputer ma wykonać obliczenia i sam wpisać ich wynik. A wzór zapamiętać na później, bo jeśli tylko zmienią się występujące we wzorze dane, to musi obliczenie wykonać ponownie i uaktualnić zawartość komórki. Teraz wystarczy tylko dodać, że jako dane we wzorze mogą wystąpić wartości innych komórek, i już jesteśmy w domu. Możemy w naszej tabelce przewidzieć takie obliczenia, jakie nam się podoba.
Oczywiście chcemy, żeby pisanie wzorów było możliwie najwygodniejsze. Warunek ten będzie spełniony, gdy pozwolimy użytkownikowi umieszczać we wzorach wszystko, co tylko może mu się przydać, a więc liczby, typowe funkcje matematyczne (sinus, cosinus, logarytm, pierwiastki itd.), zawartość pojedynczych komórek i całych grup komórek. Np. ważna jest możliwość obliczenia sumy lub iloczynu wszystkich elementów wybranej kolumny lub wiersza. Można też kazać policzyć, ile wartości jest wpisanych w zadanym fragmencie tabeli. Typowe funkcje to MAX i MIN — znajdowanie odpowiednio największego i najmniejszego elementu oraz znajdowanie średniej arytmetycznej dla grupy liczb.
Wspólną cechą ostatnio wymienionych działań jest to, że wszystkie operują na grupie komórek. Określić tę grupę można na wiele sposobów — im więcej jest możliwości, tym łatwiej użytkownikowi znaleźć coś dla siebie. Podstawowe to, wspomniana już pojedyncza kolumna lub wiersz. Dalej, wszystkie komórki z kilku kolumn lub kilku wierszy. I wreszcie, wszystkie dane z prostokąta powstałego na przecięciu grupy kolumn z grupą wierszy.
W tej chwili potrafimy zbudować tabelę pasującą idealnie do naszych potrzeb. Ale gdy już będzie gotowa, to trzeba wprowadzić do niej dane. Nic prostszego, kursor wskazuje na miejsce, w którym program umieści to, co wpiszemy. Używając klawiszy sterujących kursorem, możemy go łatwo przesunąć do dowolnej innej komórki. Jako dodatkowe udogodnienie możemy raz wpisane wartości kopiować do innych pozycji tabelki. Przypomnę tu raz jeszcze, że jeśli wstawimy nową wartość w miejscu, które jest użyte we wzorze na obliczanie zawartości innej komórki, to program natychmiast to zauważa, oblicza nową wartość i wpisuje na miejsce starej. Dzięki temu, jeśli np. określiliśmy ostatnią komórkę w kolumnie jako sumę pozostałych wartości, to zmieniając liczby wpisane w tej kolumnie, nie musimy już więcej martwić się o sumę — program sam będzie ją na bieżąco aktualizował. Przy okazji można wskazać jeszcze jedno zastosowanie „elektronicznych tabelek”: planowanie, czyli co będzie jeśli...? Przygotowujemy wzory potrzebnych obliczeń, wprowadzamy komplet danych, a potem możemy zmieniać pojedyncze wielkości i obserwować jak zmieniają się wyniki.
Ale wróćmy do wprowadzania danych. Świat jest duży a ekran mały. Jak, w czytelny sposób, zmieścić na małym ekranie wielki fragment? To się niestety nie da zrobić. Ale można inaczej. Cały formularz (inna nazwa naszej tabelki) siedzi w pamięci operacyjnej, a ekran traktujemy jako okienko, przez które można patrzeć na jego fragment. Oczywiście to „okienko” można przesuwać po całym formularzu. Np. jeśli kursor znajduje się w skrajnie prawej kolumnie ekranu i spróbujemy go przesunąć dalej w prawo, to, aby przejść do następnej kolumny, Kursor „popchnie” w prawo cały ekran — pierwsza z lewej kolumna zniknie, a za to pojawi się na ekranie niewidoczna dotychczas kolumna z prawej strony. Oczywiście to samo można zrobić w kierunku góra-dół. Można też, przy pomocy specjalnych komend „skakać” ekranem dalej niż o jedną kolumnę czy wiersz.
Jak zapewne zauważyli stali Czytelnicy, „Przed ekranem” nie publikuje pozycji fantastyczno-naukowych. Z tej obserwacji łatwo wysnuć słuszny wniosek, że programy do tworzenia formularzy (ang. „spreadsheet”) istnieją naprawdę, a nie w sferze marzeń czy planów. Przykłady — proszę bardzo. Oto nazwy programów, z którymi zetknąłem się na naszym rynku: „Multiplan” na IBM PC, „EasyCalc” i „EasyCalc Result” na Commodore C-64, „VU-Calc” na Spectrum.
Andrzej Pilaszek