- Sytuacja
- Dane firmy żyją w kilkunastu arkuszach, a kilka osób edytuje je na zmianę
- Najczęstszy sygnał
- Nikt nie wie, który plik jest aktualny, a terminy i rabaty pilnuje się w głowie
- Jak przejść
- Etapami: porządek w danych, jeden moduł, krótka praca równoległa, kolejne moduły
- Czy zrobisz to sam?
- Przegląd arkuszy i porządki tak. System buduje programista razem z Tobą
Szybka odpowiedź
Firma powinna przenieść dane z Excela do własnego programu, gdy kilka osób pracuje na tych samych danych, a arkusze zaczynają generować błędy: wiele wersji pliku, brak historii zmian, rabaty bez kontroli, terminy pilnowane w pamięci i te same dane przepisywane do oferty, umowy i na stronę WWW. Program przeglądarkowy trzyma jeden rekord na pojazd, klienta czy umowę, pilnuje uprawnień, sam wysyła przypomnienia i zapisuje, kto co zmienił. Przejście robi się etapami, zaczynając od uporządkowania danych, a eksport do Excela zostaje.
Excel jest świetnym narzędziem i nie namawiam nikogo, żeby go wyrzucał. Problem zaczyna się wtedy, gdy firma rośnie, a arkusz z narzędzia do liczenia staje się bazą danych dla kilku działów. Najpierw jest jeden plik z flotą. Potem dochodzi cennik, plik z prowizjami, osobny arkusz przeglądów i OC, kopie robione „na wszelki wypadek”. Po dwóch latach dane żyją w kilkunastu plikach, a każdy z nich ma swojego opiekuna.
W tym tekście pokazuję, po czym poznać, że arkusze przestały wystarczać, jak wygląda system, który zbudowałem dla firmy sprzedającej i wynajmującej pojazdy użytkowe, jak płyną w nim dane i jak przejść z Excela do programu bez paraliżu firmy. Na końcu piszę uczciwie, kiedy własny program nie ma sensu i lepiej wybrać coś prostszego.
7 sygnałów, że Excel przestał wystarczać
Jeden sygnał to jeszcze nie powód do budowy systemu. Trzy lub więcej naraz to już zwykle koszt, którego nikt nie liczy, bo rozkłada się na drobne straty czasu i pojedyncze wpadki.
- Wiele wersji tego samego pliku
Na dysku leżą „FINAL”, „FINAL_v3” i „FINAL_v3_poprawiona”. Każdy zapisuje kopię, bo boi się nadpisać cudzą pracę. Po tygodniu nikt nie wie, w którym pliku jest aktualna cena albo status pojazdu.
- Plik zablokowany, bo ktoś go otworzył
Komunikat „tylko do odczytu” oznacza, że druga osoba czeka albo zapisuje własną kopię. Wersje w chmurze z jednoczesną edycją pomagają, ale nie rozwiązują problemu: nadal każdy może zmienić każdą komórkę.
- Brak historii zmian, którą da się czytać
Historia wersji pliku pokaże, że coś się zmieniło, ale nie odpowie prosto na pytanie „kto obniżył cenę tego pojazdu i kiedy”. Przy sporze z klientem albo przy rozliczeniu prowizji to pytanie pada zawsze.
- Rabaty bez akceptacji
Handlowiec wpisuje rabat w ofercie i wysyła ją klientowi. O tym, że rabat był większy niż ustalony, właściciel dowiaduje się z faktury. Arkusz nie zatrzyma wysyłki i nie poprosi nikogo o zgodę.
- Terminy pilnowane w głowie
Przegląd techniczny, koniec OC, koniec umowy najmu. Jeśli o terminach pamięta jedna osoba albo kolorowa komórka bez legendy, to urlop tej osoby jest ryzykiem dla firmy.
- Te same dane przepisywane kilka razy
Numer VIN, cena i parametry pojazdu trafiają do arkusza, potem do oferty w Wordzie, do umowy, na stronę WWW i do ogłoszenia. Każde przepisanie to okazja do literówki, a na stronie WWW wisi czasem pojazd sprzedany tydzień temu.
- Prowizje liczone ręcznie
Na koniec miesiąca ktoś zbiera dane z kilku plików i liczy prowizje. Plik „do sprawdzenia” krąży między osobami, a handlowcy dopytują, dlaczego wyszło mniej niż myśleli.

Drugi obraz, który widzę bardzo często, to sam arkusz. Numery VIN wpisane raz ze spacjami, raz z myślnikami. Daty w trzech formatach, w tym „1 grudnia” jako tekst. Ten sam pojazd w dwóch wierszach. Kolory, które coś znaczą, ale nikt nie zapisał co. Do tego formuła z ostrzeżeniem wielkimi literami, żeby jej nie ruszać, i plik zablokowany, bo otworzyła go inna osoba.

Przykład z praktyki: jeden system zamiast kilkunastu arkuszy
Tak wyglądała sytuacja w firmie, która sprzedaje i wynajmuje pojazdy użytkowe: przyczepy różnych typów, chłodnie, wywrotki. Flota, rezerwacje, oferty, cenniki, terminy przeglądów i prowizje były w osobnych, starych arkuszach. Zbudowałem dla niej jeden system przeglądarkowy. Pracownicy logują się do niego z komputera lub telefonu, każdy na własne konto i widzi tylko te zakładki, do których ma dostęp.
| Moduł | Co w nim jest | Co zastąpił |
|---|---|---|
| Wynajem | Flota, grafik rezerwacji, umowy i protokoły, faktury i kaucje, serwis, przeglądy i OC, przypomnienia | Arkusz floty, arkusz przeglądów i OC, kalendarz rezerwacji, foldery z umowami |
| Sprzedaż | Oferty, akceptacja rabatów, umowy sprzedaży, dokumenty dla klienta | Oferty w edytorze tekstu, rabaty uzgadniane telefonicznie |
| Zakupy | Rejestr stanów: koszt zakupu, cena katalogowa, status sprzedaży | Kilka „aktualnych” cenników |
| Rozliczenia | Raporty prowizji naliczanych z wpłat | Ręczne liczenie prowizji w arkuszu |
| Zadania | Zadania przypisane do osób i rekordów | Karteczki, komunikator, pamięć |
| Administracja | Użytkownicy, uprawnienia, limity rabatów, dziennik zmian | Brak odpowiednika |
Na start dnia każdy widzi pulpit: ile pojazdów jest wynajętych i wolnych, co jest najpilniejsze i co czeka na jego decyzję. Dzwonek u góry zbiera powiadomienia, np. o zaakceptowanym rabacie albo nowym zapytaniu ze strony.

Grafik rezerwacji pokazuje oś czasu dla każdego pojazdu: najem, aneks, serwis, rezerwację. Kliknięcie paska otwiera umowę, protokoły i historię zmian. Czerwona obwódka oznacza, że lista kontrolna przed wydaniem pojazdu nie jest kompletna.

Jak płyną dane: od zakupu do prowizji
Największa zmiana nie polega na tym, że dane są „w programie”. Polega na tym, że każda informacja jest wpisywana raz, a pozostałe moduły z niej korzystają. Oto droga pojazdu przez system.
Sercem całości jest rejestr stanów w module Zakupy. To jedyne miejsce, w którym zmienia się cenę katalogową. Oferta, ogłoszenie na stronie i raport marży czytają cenę stąd, więc nie ma już dwóch „aktualnych” cenników.

Przy ofercie system porównuje rabat z limitem przypisanym handlowcowi. Jeśli rabat mieści się w limicie, oferta idzie od razu. Jeśli nie, trafia na listę do akceptacji i do tego czasu nie da się jej wysłać klientowi. Administrator widzi rabat, limit i marżę po rabacie, więc decyduje w kilka sekund.

Dokumenty dla klienta nie muszą krążyć mailem. Klient dostaje link, loguje się na swoje konto i widzi umowę do podpisu, oferty, protokoły i faktury. Jak taki portal zaprojektować i zabezpieczyć, opisuję w osobnym tekście o portalu klienta B2B.
Co się zmienia na co dzień
Właściciele najczęściej pytają mnie nie o technologię, tylko o to, co konkretnie zmieni się w pracy zespołu. Poniżej porównanie na przykładzie opisanego systemu.
| Sprawa | Na arkuszach | W systemie |
|---|---|---|
| Terminy przeglądów, OC, końca najmu | Kolor komórki i pamięć jednej osoby | Codzienny e-mail z terminami na 30 dni do zespołu |
| Najemca przed przeglądem | Ktoś dzwoni, jeśli pamięta | Automatyczne przypomnienie e-mailem dla najemcy |
| Sprawy do decyzji | Telefon, komunikator, karteczka | Dzwonek powiadomień w panelu |
| Oferta na stronie WWW | Ręczna edycja, często z opóźnieniem | Cena i status zmieniają się na stronie po kilku minutach |
| Rabaty | Bez kontroli przed wysyłką | Limit na handlowca, powyżej limitu akceptacja |
| Dostęp do danych | Kto ma plik, ten widzi i zmienia wszystko | Osobne loginy i uprawnienia do każdej zakładki |
| Kto co zmienił | Nie wiadomo albo trzeba szukać w wersjach | Dziennik zmian: kto, co, kiedy, z wartością przed i po |
| Analiza w Excelu | Jest | Zostaje: eksport list i raportów do pliku |

Dziennik zmian to funkcja, którą doceniają wszyscy, choć nikt jej nie zamawia na początku. Każda zmiana ceny, rabatu, statusu czy uprawnień zapisuje się z nazwiskiem, datą i wartością przed i po. Zmiany robione przez system, np. wysłane przypomnienie, też są widoczne.

Bezpieczeństwo: co daje osobne konto zamiast wspólnego pliku
Arkusz na dysku współdzielonym ma jeden poziom dostępu: ktoś ma plik albo go nie ma. Do tego plik łatwo skopiować na pendrive’a albo wysłać mailem. W systemie przeglądarkowym standardem powinny być:
- osobne konto dla każdej osoby, bez wspólnych loginów, z uprawnieniami ustawianymi osobno do każdej zakładki (brak dostępu, podgląd, edycja),
- blokada logowania po serii nieudanych prób, która utrudnia zgadywanie haseł,
- CAPTCHA na formularzu logowania, żeby automaty nie próbowały tysięcy haseł,
- wygasanie sesji po okresie bezczynności, co chroni dane na komputerze zostawionym bez opieki,
- dziennik zmian, który pokazuje także zmiany uprawnień,
- połączenie szyfrowane i kopie zapasowe bazy danych poza serwerem, na którym działa system.
Po odejściu pracownika wyłączasz jedno konto i masz pewność, że nie zabrał dostępu do danych. Więcej o zasadach ochrony danych w małej firmie piszę we wpisie jak zabezpieczyć dane firmowe przed utratą i wyciekiem.
Przejście z Excela do systemu krok po kroku
Najczęstszy błąd to próba przeniesienia wszystkiego naraz, łącznie z bałaganem. Poniżej kolejność, która sprawdziła się w praktyce.
- Przejrzyj wszystkie arkusze
Zrób listę plików, zakładek i osób, które je zmieniają. Przy każdym pliku zapisz, do czego służy i skąd biorą się w nim dane. Zwykle okazuje się, że połowa plików to kopie albo wyciągi z innych. To najtańszy etap i możesz go zrobić sam.
- Ustal model danych
Każdy pojazd, klient i umowa ma być jednym rekordem z unikalnym identyfikatorem. Dla pojazdu naturalnym kluczem jest numer VIN, dla firmy NIP, dla umowy jej numer. Zamiast kolorów pojawiają się statusy z listy, a zamiast dopisków w uwagach osobne pola. Uproszczony szkic takiego modelu wygląda tak:
pojazd (id, vin UNIQUE, typ, status, cena_katalogowa, koszt_zakupu, na_stronie_www) klient (id, nip UNIQUE, nazwa, email, telefon) umowa (id, numer UNIQUE, rodzaj [najem|sprzedaż], pojazd_id, klient_id, od, do, status) termin (id, pojazd_id, rodzaj [przegląd|OC|koniec_najmu], data) zmiana (id, kto, kiedy, tabela, rekord_id, pole, przed, po) - Wyczyść dane przed importem
Usuń duplikaty, ujednolić formaty dat, popraw zapis numerów VIN (bez spacji i myślników, wielkimi literami). Prawidłowy VIN ma 17 znaków, więc wiersz z inną długością to sygnał do sprawdzenia. Tekst w polu daty, np. „1 grudnia”, trzeba zamienić na datę albo oznaczyć do wyjaśnienia. Czyszczenie robię skryptem, a listę wątpliwych wierszy oddaję osobie, która zna dane.
// ujednolicenie numeru VIN przed importem vin = vin.toUpperCase().replace(/[\s-]/g, ''); if (vin.length !== 17) doWyjasnienia.push(wiersz); - Zaimportuj i pracuj krótko równolegle
Po imporcie przez ustalony czas zespół pracuje w systemie, a arkusze zostają tylko do porównania. Ten okres ma mieć datę końca, zapisaną i ogłoszoną. Potem arkusze przechodzą w tryb tylko do odczytu i trafiają do archiwum.
- Wdrażaj modułami
Zacznij od obszaru, który najbardziej boli, często od floty i terminów albo od ofert i rabatów. Kolejne moduły dokładaj, gdy pierwszy działa i zespół się do niego przyzwyczaił. Moduł po module łatwiej też rozłożyć koszt w czasie.
- Przeszkól zespół i przygotuj podręcznik dla administratora
Krótkie szkolenie dla każdej grupy użytkowników i podręcznik dla osoby, która zarządza kontami, uprawnieniami, limitami rabatów i zasadami prowizji. Administrator po stronie firmy nie musi umieć programować, ale musi wiedzieć, gdzie co się ustawia.
Program, który wiernie odtwarza arkusz z kolorami i kolumną „UWAGI”, odziedziczy jego problemy. Czas spędzony na modelu danych i czyszczeniu zwraca się najszybciej ze wszystkich etapów.
Ile to kosztuje i ile trwa
Na koszt i czas wpływają głównie: liczba modułów i ekranów, liczba ról i reguł (limity rabatów, zasady prowizji, akceptacje), integracje ze stroną WWW, pocztą, księgowością czy KSeF, ilość i jakość danych do przeniesienia, generowanie dokumentów PDF i podpis przez klienta, a także utrzymanie po wdrożeniu. Jak policzyć budżet metodą „zakres × dni pracy” i czego oczekiwać w wycenie, opisuję w tekście ile kosztuje program dla firmy na zamówienie. Jeśli system ma wystawiać lub pobierać faktury, zobacz też, jak wygląda integracja własnego systemu z KSeF przez API.
Kiedy nie robić własnego programu
Własny system nie zawsze jest dobrą odpowiedzią. Nie polecam go, gdy:
- Twój proces jest typowy. Jeśli potrzebujesz zwykłego lejka sprzedaży, kontaktów i zadań, gotowy CRM zrobi to taniej i szybciej. Jak to rozstrzygnąć, opisuję we wpisie oprogramowanie na zamówienie czy gotowy CRM lub ERP.
- Problem dotyczy jednego arkusza i dwóch osób. Wtedy często wystarczy etap pośredni: Arkusze Google z walidacją danych, chronionymi zakresami i kilkoma skryptami, które wysyłają przypomnienia. Przykłady z gotowym kodem są w tekście Google Apps Script: automatyzacje arkuszy.
- Nie ma w firmie osoby, która będzie właścicielem systemu. Ktoś musi decydować o uprawnieniach, zasadach i priorytetach zmian. Bez tego każdy program zarośnie wyjątkami.
- Proces jeszcze się zmienia co miesiąc. Najpierw ustal, jak firma ma pracować, potem to zaprogramuj.
Kiedy lepiej to zlecić
Przegląd arkuszy, spis problemów i listę „co boli najbardziej” zrobisz sam i warto od tego zacząć. Programisty potrzebujesz, gdy:
- dane z kilku arkuszy mają trafić do jednej bazy, a ich jakość jest różna,
- potrzebujesz uprawnień, akceptacji, dziennika zmian i automatycznych powiadomień,
- system ma się łączyć ze stroną WWW, pocztą, księgowością albo portalem klienta,
- chcesz, żeby ktoś najpierw rozpisał zakres i etapy, zanim podejmiesz decyzję o budżecie.
Takie systemy buduję w ramach automatyzacji procesów i programów na zamówienie, a utrzymanie, kopie i konta pracowników mogę wziąć na siebie w ramach obsługi IT dla firm.
Pracujesz na arkuszach i czujesz, że to już nie wystarcza?
Opisz, jak dziś pracujecie, a powiem, co warto przenieść najpierw. Rozmowę i przegląd arkuszy robimy zdalnie, z firmami z całej Polski, a w Sieradzu i okolicach mogę przyjechać. Wycenę dostajesz przed rozpoczęciem pracy.
Najczęstsze pytania
Czy da się zaimportować dane z obecnych plików Excel?
Tak. Dane z arkuszy importuje się skryptem, ale najpierw trzeba je wyczyścić: usunąć duplikaty, ujednolicić daty i identyfikatory, np. numery VIN. Wiersze, których nie da się poprawić automatycznie, trafiają na listę do wyjaśnienia przez osobę, która zna dane.
Czy po wdrożeniu systemu nadal mogę korzystać z Excela?
Tak. Dobrze zaprojektowany system pozwala wyeksportować listy i raporty do pliku Excel, więc analizy i wykresy nadal zrobisz w arkuszu. Zmienia się tylko to, że źródłem danych jest system, a nie kolejna kopia pliku.
Czy system działa na telefonie?
System przeglądarkowy działa na komputerze, tablecie i telefonie bez instalowania aplikacji. Ekrany używane w terenie, np. lista kontrolna przy wydaniu pojazdu, warto zaprojektować od razu z myślą o małym ekranie.
Kto jest właścicielem kodu i danych?
Dane zawsze powinny należeć do firmy i dać się wyeksportować. Prawa do kodu reguluje umowa: przeniesienie autorskich praw majątkowych wymaga formy pisemnej i wymienienia pól eksploatacji. Ustal to przed startem prac i potwierdź treść umowy z prawnikiem.
Jak system ma się do RODO?
System z osobnymi kontami, uprawnieniami i dziennikiem zmian ułatwia kontrolę nad danymi osobowymi w porównaniu z plikami kopiowanymi między osobami. Jeśli wykonawca lub firma hostingowa ma dostęp do danych, potrzebna jest umowa powierzenia przetwarzania. Zakres obowiązków potwierdź z prawnikiem lub inspektorem ochrony danych.