A munkám során heti szinten használok egy Excel-alapú riportot, amely egy weboldal háttérrendszeréből exportált adatokra épül. Az adatfrissítést egy saját fejlesztésű makró automatizálja, ami jelentősen gyorsítja a folyamatot. A fájl azonban meglehetősen komplex: nagy méretű, és több külső forrásból származó táblázatra támaszkodik.
Az egyik ilyen adatforrásban egyszer egy változtatás történhetett, ami a frissítéseknél fel sem tűnt elsőre: a nyers exportfájl dátum oszlopában az értékek nem egységes formátumban szerepeltek.
A probléma: „Dátum” oszlop kétféle adattípussal
Az egyik külső nyers fájlban a „CREATE_DATE” / „dátum” jellegű oszlop nem egységesen érkezett:
- A sorok egy részében a dátum valódi Excel dátumként (számként tárolva) szerepelt, pl. 2026.01.02 22:31.
- Más sorokban ugyanaz a mező szövegként érkezett, pl. 2026-01-02 22:09:40.032 (kötőjeles, milliszekundumos, importból jövő timestamp).
A vegyesség leglátványosabb jele az volt, hogy a dátumok különböző igazítással jelentek meg:

Miért veszélyes ez egy riportban?
A hiba nem „csak esztétikai” volt, hanem több láncreakciót okozott:
- Szűrés és rendezés: a szövegként tárolt dátumok nem ugyanúgy rendeződnek, mint a valódi dátumok.
- Pivot és kimutatások: a dátum szerinti csoportosítás (hét/hónap/év) bizonyos soroknál elcsúszhat vagy nem működik.
- Képletek: a dátumra épülő képletek (pl. HÉT/HÓ/ÉV oszlopok) eltérő eredményeket adhatnak, vagy hibát dobhatnak.
- Makró futás: a makró által elvárt típus (Date) helyett text érkezik → ez könnyen okoz hibát vagy rejtett adatszennyezést.
Összességében: esetünkben a riport ugyan „lefutott”, de a kimenet minősége romlott, a szöveg típusú „dátumok” nem kerültek bele megfelelően a kimutatásokba.
A megoldási stratégia: normalizált dátum képlettel
A cél az volt, hogy a riportban legyen egy olyan dátum mező, ami:
- Minden sorban valódi dátum (Excel dátumszám),
- Független attól, hogy a forrás szöveg vagy dátum,
- Időrészt levág (ha csak dátum kell),
- Nem kézi beavatkozás, hanem automatizálható (makróval/frissítéssel is).
Ezért a dátummezőhöz egy olyan képlet került be, ami két ágat kezel:
- Ha a forrás cella már eleve dátum/szám → INT() levágja az időrészt és dátum marad.
- Ha a forrás szöveg → a képlet kiveszi a dátum részt, egységesíti a formátumot, majd DATE()-tel valódi Excel dátummá alakítja.
Példa jelleggel (konceptuálisan):
=IF(ISNUMBER(forrás),
INT(forrás),
DATE(év, hónap, nap)
)
Igen ám, viszont férfiasan bevallom, a képletet nem sikerült magamtól megírni. Sem ChatGPT-vel. Ekkor jött az Excelbe integrált Copilot.
Hogyan segített az Excelbe integrált Copilot licensz?

A Copilot licensz több ponton is gyorsította és biztosabbá tette a megoldást:
Gyors diagnózis: A vegyes igazítás alapján azonnal felvetette a dátum-szöveg kettősségét, így nem kellett hosszasan manuálisan keresgélni, hogy miért viselkedik furcsán a rendezés/pivot.
Robusztus képlet-javaslat: Olyan képletet javasolt, ami kezeli mind a valódi dátumot, mind a timestamp jellegű szöveget – és közben levágja az időt, ami sok riportban alapelvárás.
Tudásmegosztás: A Copilot abban is segített, hogy a megoldás ne csak „működjön”, hanem érthető legyen: lépésről lépésre megfogalmazhatóvá vált, mi történik a képletben, így később is könnyen karbantartható.
de a legfontosabb, mivel az AI már az Excelbe volt építve, így a Copilot egyből átlátta az egész fájlt. Nem kellett minden részletet elmagyarázni neki, mint pl. egy külsős ChatGPT-nek. Tudta melyik oszlopban mi van, hol milyen érték szerepel. Ez meggyorsította és leegyszerűsítette a promptolást.
Íme a végső képlet:
=HA(SZÁM(D2);
INT(D2);LET(t;HELYETTE(BAL(D2;10);"-";".");
DÁTUM(ÉRTÉK(BAL(t;4));ÉRTÉK(KÖZÉP(t;6;2));ÉRTÉK(KÖZÉP(t;9;2))))
)

