Elegem lett, megcsináltam magam: családi költségvető „alkalmazást” készítettem Numbers alapon – 1. rész

Költségvetés

Miután hónapokig kergettem a különféle költéskövető, budget-elő alkalmazásokat iOS platformon, rá kellett jönnöm, hogy a best in class továbbra is a YNAB. Ám 6 év előfizetés után sokalltam az előfizetés árát (45$ ~ 20 000 Ft / év), valamint a menetközben alakuló infláció sem segített a dolgon.

Kezdetben a különféle ingyenes / free tier / light alkalmazásokat nézegettem, de mindegyikben van/volt valami funkcionális hiány, amely végül megölte. Például:

  • vezetett számlák limitálása
  • tranzakciók számosságának korlátozása
  • több pénznem használata

Így, tegnap este leültem, végiggondoltam, hogy igazából mire is van szükségem és elkezdtem megcsinálni Numbers alapon. (Azért Numbers, mert van annyira jó mint az Excel – ezen a szinten biztos – és mivel itthon csupa Apple eszközzel rendelkezünk, természetesnek tűnt, plusz így nem license köteles – az Excel-lel szemben.)

Az elvárásaim a következőek voltak:

  • több számla kezelése
  • „végtelen” tranzakció
  • több pénzem támogatása (HUF, USD és EUR)
  • többen is fogjuk használni (ketten)
  • szinkronizálódjon az eszközök ill. személyek között

Az elvárásokból az utolsó két pontot le is ütöm az iCloud-on tárolással illetve az iCloud megosztás lehetőségével, valamint a végtelen tranzakció is kvázi megoldott.

Nem fogom azt állítani, hogy nem lehetne-e bizonyos dolgokat szebben vagy hatékonyabban megcsinálni, én erre jutottam. Helyenként a Numbers más logikával dolgozik mint az Excel (legalább is az én tudás szintemen mindenképpen). A leírás során az eredményre fogok fókuszálni, nem pedig az odavezető útra, az implementáció során természetesen volt „újratervezés” párszor, de csak elértem amit szerettem volna.

Apple Numbers

Egy pár mondatos kitérőt engedjetek meg, segíteni fogja a leírás érthetőségét, mert itt-ott az Excel-től eltér. Röviden:

  • a képlet szerkesztő ahol tud, a munkalapon lévő címkékkel dolgozik. Ez helyenként elsőre zavaró lehet, de hozzá lehet szokni. Tehát például: A =SUM(F) képlet vizuálisan így fog megjelenni, ha az F oszlopnak van egy fejléc cellája „Összegek” felirattal: =SUM(Összegek).
  • A Numbers-ben lehet több táblázatot is csinálni egy munkalapon, így ha másik munkalapról akarunk mondjuk egy adott cellát referenciaként meghivatkozni, akkor a cellát tartalmazó táblázatot is meg kell említeni. Például:
    • Árfolyam::Table 1::$B$1: meghivatkozza az Árfolyam munkalap Table 1 táblázat B1-es celláját
    • Árfolyam::Table 2::$E$2: meghivatkozza az Árfolyam munkalap Table 2 táblázat E2-es celláját

Aki nem látott még Numbers-t annak az Árfolyamos példa így néz ki a programban:

Munkalapok

Összesen 6+1 munkalap készült el:

  1. Számlák: összesítő nézet a vezetett számlákról, valamint azok összegéről.
  2. Tranzakciók (HUF): azokat a tranzakciókat rögzítő munkalap, amelyek forint alapon történtek a vonatkozó számlákon
  3. Tranzakciók (EUR): azokat a tranzakciókat rögzítő munkalap, amelyek euró alapon történtek a vonatkozó számlákon
  4. Tranzakciók (USD): azokat a tranzakciókat rögzítő munkalap, amelyek dollár alapon történtek a vonatkozó számlákon
  5. Kategóriák: a pénzmozgásokhoz tartozó rendszerező kategóriákat tartalmazza
  6. Árfolyam: A dollár és az euró árfolyamát lekövető segéd munkalap
  7. Kimutatás (opcionális): egy pivot táblát tartalmaz a Tranzakciók (HUF) munkalapon található táblázat tartalmából (lényegében ezt használom kategória összegző kimutatáshoz).

A mostani, első bejegyzésben a számlák és árfolyam munkalapok elkészítéséről mesélek.

Árfolyam munkalap

Ahogy írtam ez egy segédmunkalap lesz, amelyet majd a Számlák munkalapnál fogok segítségül hívni. Roppant egyszerű táblázat:

AB
1ValutaMennyiség
2USDXXX
3EURYYY

A Numbers-nek van egy olyan függvénye, amit CURRENCY()-nek hívnak. Ez képes arra, hogy a forrás – cél pénznemeknél a tőzsdei adatokból lekéri az aktuális értékeket. Tudom, hogy nem banki pontosságot fog produkálni, de kimutatás szempontjából elégséges (nekem). A formula:

  • B2-es cella (XXX): =CURRENCY($A2;"HUF";0)
  • B3-as cella (YYY): =CURRENCY($A3;"HUF";0)

Az eredmény így néz ki:

Előnézet

Számlák munkalap

A számlák munkalap lesz a fő munkalapunk, áttekintést fog adni a vezetett számláink helyzetéről. Minden számlának az alábbi paraméterei vannak:

  • kód: rövid 1-3 betűs kód, a tranzakcióknál fogom használni, bármi lehet, lényeg, hogy egyedi legyen
  • tulajdonos: könyebb érthetőség, hogy kinek a nevéhez tartozik a számla
  • megnevezése: itt jelölöm, hogy folyószámla, hitelszámla, deviza számla stb.
  • megjelenített név: ezzel a névvel jelenik meg az adott számla a többi munkalapon, pivot táblában
  • egyenleg: a számla saját pénznemében
  • egyenleg forintban „Mai árfolyamon” címkével: az árfolyam segéd munkalap alapján kalkulált forint értéke mai napon

A példa táblázat így néz ki:

ABCDEF
1KódTulajdonosMegnevezésMegjelenítésEgyenlegMai árfolyamon
2TFTamásFolyószámlaTamás – Folyószámla0 HUF0 HUF
3TDTamásEuró számlaTamás – Euró számla0 EUR0 HUF
4BFBarbiFolyószámlaBarbi – Folyószámla0 HUF0 HUF
5BKBarbiKészpénzBarbi – Készpénz0 HUF0 HUF
6BDBarbiDollár számlaBarbi – Dollár számla0 USD0 HUF
7
8Összesen0 HUF

Az Összesen sorban pedig egy egyszerű =SUM(F2:F6) a felette lévő cellák értékeire.

Balról jobbra haladva az oszlopok úgy alakulnak, hogy:

  • az A oszlopban látható értékek azok a B és C oszlopok kezdőbetűiből állnak elő
  • a D oszlop szintén a B és C oszlopból áll elő, csak itt szép formátumra van alakítva
  • az E oszlop a következő leírásban előállított munkalapokból fog táplálkozni
  • az F oszlop pedig az E oszlopban látott érték szorozva a korábban már létrehozott Árfolyam munkalapon kikalkulált értékkel, pénznem azonosan.

Numbers képletekkel, az ebben a leírásban releváns oszlopokkal:

  • A oszlop: =UPPER(CONCATENATE(LEFT($B2;1);LEFT($C2;1);))
  • D oszlop: =CONCATENATE($B2;" - ";$C2)
  • F oszlop: =$E2×Árfolyam::Table 1::$B$N

Természetesen az F oszlopnál a referencia cellát igazítsuk a pénznemnek megfelelően az N értéknél. A végeredmény így fog kinézni:

Számlák előkép

Az első részre ennyit, pár nap múlva jövök a következővel, ahol összerakom a Kategóriákat és a forint alapú tranzakciókat.