Discussione Ufficiale Altro Google Sheet ed Apps Script per il monitoraggio del proprio budget

Una Discussione Ufficiale punta a raccogliere tutte le informazioni su un argomento o un fatto di attualità, con costanti aggiornamenti da parte del creatore e dei partecipanti.

Valley

Super Moderatore
10 Aprile 2011
9,088
422
4,264
3,033
Ultima modifica:

cdn-titolo-jpg.64296




Riprendendo le discussioni presenti sul budgeting presenti su inforge (es: Budgeting, è davvero così importante? e EXCEL | Monitoraggio dei portafogli / della finanza personale) apro questa discussione per presentare il nuovo progetto al quale mio sto dedicando in questo periodo (nei pochi momenti in cui non lavoro). Sto parlando di un file Google Sheet per il monitoraggio delle entrate e delle uscite, nonché del proprio patrimonio netto (net worth).

Tempo fa avevo iniziato a fare il nuovo file solo per me volendo iniziare a farne uno più serio di quello precedente. Nell'ultimo periodo però ho deciso di condividerlo creando così un file base fruibile da tutti.
Vi dico già che il file non è pronto :\ Come sempre penso che condividere assieme a voi lo sviluppo di questo possa essere interessante ed utile sia per me che per voi: più teste = più idee.

carson-arias-7Z03R1wOdmI-unsplash.jpg


Nessuno di noi è intelligente quanto tutti noi messi insieme
:yo:


L'idea sarebbe quindi quella di condividere con voi quello che sto facendo e quello che devo fare al fine di valutare assieme se ha senso, se si può fare meglio e se manca qualcosa.

Prima di partire è bene però comprendere alcuni termini:
Spreadsheet = file di Google Sheet
Sheet = un foglio di uno spreadsheet
Net worth = patrimonio netto
Expenses = uscite/spese/oneri
Income = entrate/proventi/rendite


1    Obiettivo

L'idea che ho in mente è quella di fare uno Spreadsheet base dal quale tutti possono crearsi la propria copia personale da utilizzare per monitorare il proprio patrimonio (da qui in avanti net worth o NW), le proprie spese e le entrate.


2    Struttura

L'idea è quella di fare un file che ricopre l'intero anno solare ed un secondo pluriennale che raccoglie alcuni dati dal primo file. Così facendo avremmo un file annuale per ogni anno solare ed un unico file pluriennale.
All'interno del file annuale ci saranno sheet per l'inserimento delle informazioni e sheet con tabelle riassuntive.
Il file pluriennale ancora non ho pensato come strutturarlo.


3    Strumenti

Google Sheet: l'idea è quella di utilizzarlo al posto di Excel per i motivi qui sotto elencati.
  • Molto intuitivo.
  • In cloud, quindi:
    • backup automatico;
    • facile da condividere;
    • facile da consultare, in qualsiasi momento, su più dispositivi.
  • Funzione QUERY molto potente e facile da utilizzare.
  • Possibilità di creare funzioni con un interfaccia molto chiara e pulita.
  • Nessun problema di compatibilità a livello di sistema operativo.
  • Lo conosco meglio di excel (vale? :\).


apps_script_1x_48dp.png
Google Apps Script


Apps Script: la potenza dei file excel (e quindi dei spreadsheet) non sta solo nelle formule ma anche nelle funzioni. Quest'ultime danno la possibilità di fare praticamente di tutto. In particolare Apps Script permette di utilizzare JavaScript, Html e Css all'interno dei propri Spreadsheet, dandoci la possibilità di ampliare i nostri orizzonti.

Altro: ancora da definire in base a cosa ci servirà. Probabile ad esempio la necessità di utilizzare un servizio terzo per ottenere prezzi, valute, ecc.. Da valutare più avanti.


4    Premesse

Ci vuole il giusto schermo per lavorare bene: lo Spreadsheet sarà progettato per un utilizzo su schermo grande nelle "fasi di compilazione", quindi utilizzerò nei fogli anche la larghezza e non solo la lunghezza (scorrevole). Per le "fasi di consultazione" vedrò quanto e se sarà possibile farlo il più mobile friendly anche se penso lo strutturerò per una lettura comoda su schermo medio-piccolo e basta. Vedremo :ehm:


5    Ma..un sito web?

L'idea che ho in mente è quella di fare uno Spreadsheet base dal quale tutti possono crearsi la propria copia personale da utilizzare per monitorare il proprio patrimonio (da qui in avanti net worth o NW), le proprie spese e le entrate. Per far si che si possa adattare a più persone e al tempo stesso che sia già abbastanza compilato da permettere un facile utilizzo, è necessario che il file si possa compilare automaticamente in gran parte.

Ma allora perché non fare un sito web?
Esistono già diverse aziende che offrono questi servizi ma tutte hanno il difetto di vincolare l'utente alla loro interfaccia. Ci sono servizi che permettono di modificare la visualizzazione del proprio budget, di personalizzarlo, ecc.. Il problema però è che c'è sempre quella piccola modifica che vorresti fare, quell'informazione che manca e che non puoi ottenere. Su Google Fogli invece l'utente può modificare a piacere tutto. In pochi minuti può aggiungere un foglio, generare un altro grafico, fare altri calcoli, ecc. È libero di fare quello che vuole.


6    Struttura della discussione

Nella discussione principale andremo a spiegare il progetto, la sua struttura, le idee e le bozze, di fatto andremo a progettare il file. In questa discussione invece verrà seguita la parte di sviluppo, in particolare seguiremo Apps Script, tutte le funzioni che andrò a scrivere, che troverò online, che mi direte voi, ecc. Andremo ad ottimizzare quelle già scritte (male eheh) da me, insomma un po' tutto l'aspetto di sviluppo del file.

Per non appesantire troppo il primo post, discuteremo delle varie funzioni nei commenti. Ogni "gruppo di funzioni" avrà un suo commento di presentazione contrassegnato da un Threadmarks così da non perderlo in mezzo a tutti i commenti. Nel primo post invece terremo un indice e una visione più generale dello sviluppo.


7    Struttura dello Spreadsheet

Elenco e spiegazione degli sheets presenti nello Spreadsheet.

7.1    Sheets





7.2    Apps Scripts

Elenco e spiegazione dei vari file .gs presenti nello Spreadsheet.



8    Muovere i primi passi

Lo spreadsheet è così pensato al momento:
  1. L'utente crea la sua copia personale.
  2. Compila » Expenses: Cat./Subcat. e » Income: Cat./Subcat. con le categorie e sottocategorie di suo interesse e spunta quelle che non vuole vengano considerate nelle tabelle riassuntive totali.
  3. Rinomina/crea gli sheet per i suoi conti.
  4. L'utente aggiunge le sue entrate/uscite per ogni conto e gli associa categoria e sottocategoria.
  5. L'utente aggiorna le tabelle mensili con l'apposito bottone.


9    Cosa sto facendo adesso

  • Migliorando la spiegazione delle funzioni inserendo i commenti
  • Migliorando questa discussione
  • Ottimizzazioni varie
  • Pagina dei grafici e statistiche varie


10    Come potete aiutarmi

  • Creandovi una copia e testando lo spreadsheet alla ricerca di bug
  • Controllando le funzioni e cercando di ottimizzarle. Tutte le funzioni sono state messe anche su github.
  • Altro che vi viene in mente


11    Crea la tua copia dello spreadsheet

Clicca qui sotto e crea la tua copia del file!


Visualizza allegato 64600
make with by Valley
(o almeno ci provo :V)
 
Update 0.2.0 - Aggiunta possibilità di escludere alcune categorie dalle somme totali
Update:
Ho sputato sangue ma penso di esserci riuscito.

Negli sheet » Expenses: Cat./Subcat. e » Income: Cat./Subcat. ora è presente una colonna dove poter spuntare le sottocategorie da escludere nel conto del Monthly Expenses Total e Monthly Income Total. Basterà spuntarle qui e quando si aggiorna la tabella dei totali (tramite l'apposito bottone), prima del ricalcolo verranno aggiornati i record presenti negli sheet con le entrate/uscite, andando a modificare due colonne (che verrano nascoste) con degli "0" (in caso siano da conteggiare) o "1" (in caso siano da escludere).

Fare sta roba mi è costato sangue, sudore e sclero ma grazie anche a @0xbro e @Toki.San ne sono venuto fuori, ottimizzando anche tutta la funzione che calcola i monthly total.


Ora devo:
- Nascondere le due colonne che dicevo prima.
- Studiare un sistema per gestire più conti. Al momento ne supporta due con nomi definiti (Hype e N26), devo fare un sistema che permetta di aggiungere X conti con il nome che si vuole.



Segui la discussione per non perderti gli update ;) Basta cliccare il bottone evidenziato in rosso nello screenshot qui sotto.

Schermata 2022-11-02 alle 20.24.38.png
 
  • Mi piace
  • Incredibile
Reazioni: 0xbro e Bonatz
Grande @Valley ! Questo è tanta roba per il budgeting personale, uno sheet del genere in rete ti costa minimo 50 dollari.
Sarei felice di contribuire, come ci organizziamo?
 
  • Mi piace
Reazioni: Valley
Progetto stupendo!
Sto iniziando ad interessarmi alla cosa pure io per avere ordine anche mentale... pur non avendo moltissime spese o entrare (ho appena finito un tirocinio universitario che a settembre diventa un apprendistato, mentre termino l'università, come inizio non mi sembra male) quindi è il momento di iniziare ad avere chiare le proprie finanze!

Ho seguito per qualche mese Mr Rip e la sua idea non è male, ma questa mi sembra un bel passo avanti!

Se servisse una mano con sheet e appscript ci ho già fatto alcune cosette quindi non mi è tutto nuovo.

Un appunto lo farei sul poter inserire spese o entrate non in euro, tenendo una storicità perlomeno mensile, con appscript si può pure segnare il tasso di cambio da google finance ogni giorno per una maggiore precisione dei dati (almeno io ho fatto delle cose con appscript non dentro ai documenti google, ma con html, css e con grafica sua che aveva le automazioni con recupero dati da fogli ed eseguiva operazioni in autonomia, però tutto questo lo faccio su un account workspace aziendale, non ho idea se con un semplice gmail si abbia tutto disponibile)
 
  • Incredibile
Reazioni: Valley
Finalmente sta finendo la stagione dura a lavoro. Nelle prossime settimane spero di riuscire a metterci mano.
Sto iniziando a progettare una prima bozza di statistiche così da fare una prima versione :)
 
  • Mi piace
Reazioni: Kuniraia
Dimmi il tuo telegram che mano a mano che vado avanti magari ti contatto se ho problemi o anche per ottimizzare il file ;D
Che studi?

Telegram: @niconiconick
Sto finendo gli ultimi 4 esami per la triennale in informatica... intanto ho proseguito dove avevo fatto il tirocinio con un part-time sia per entrare nel mondo del lavoro che per mettermi qualcosa da parte, oltretutto considerando la flessibilità con un parttime verticale e la vicinanza a casa, ci vado in bicicletta, intanto imparo cose senza molte pretese. Poi quando sarà il momento mi farò valere sul mercato hahahaha
In questo periodo sono un po' full però darei una occhiata più che volentieri al file e se c'è da scambiare informazioni o problemi!
 
  • Grazie
Reazioni: Valley
Update 0.0.1 . varie
Piccolo update:
  • Rinominato "Monthly Expenses" e "Monthly Income" in "Monthly Expenses / Bank account" e "Monthly Income / Bank account".
  • Fixato diversi bug negli sheet "Monthly Expenses / Bank account" e "Monthly Income / Bank account", ora dovrebbero funzionare.
  • Fatto prima parte del sistema per gestire più conti: ogni conto avrà il suo foglio entrate/uscite e quando si generano in automatico gli sheet "Monthly Expenses" e "Monthly Income" in questi verranno generati i dati per ogni conto.
  • Sto facendo gli sheet "Monthly Expenses Total" e "Monthly Income Total". Altro non sono che la somma dei vari conti per avere un'unica tabella entrate uscite riassuntiva. Sto valutando come farlo.
 
  • Mi piace
Reazioni: Kuniraia
Ultima modifica:
variables.gs
Qui sono presenti le variabili principali, come quelle che vengono utilizzate in più funzioni. In questo modo le dichiaro una volta sola in un unico file.

 
  • Mi piace
Reazioni: niconiconi
Ultima modifica:
menu.gs
File che racchiude tutti i menu dello spreadsheet. I menu vengono generati e posizionati nella barra in alto di Google Sheet. Al momento c'è un solo menu che ha come scopo facilitare la navigazione tra gli sheets.
Schermata 2022-11-29 alle 18.35.41.png


Schermata 2022-11-29 alle 18.35.49.png

 
  • Mi piace
Reazioni: hackynonpointer
Ultima modifica:
monthlyStats.gs
File che si occupa di aggiornare le tabelle riassuntive mensili dei singoli conti per le entrate ed uscite. Verifica se l'utente vuole aggiornare le entrate o le uscite, prepara alcune variabili, pulisce lo sheet da vecchi dati, verifica per quanti conti deve fare l'update ed infine esegue categoryStats() e subCategoryStats().

 
  • Mi piace
Reazioni: Cashkush
Ottimo lavoro Valley , anche da noi a lavoro si usa molto google sheet e vari script su excel , aspetto ancora contenuti in merito !!

Chi è furbo segue perchè a lavoro sapere usare questo strumento significa gradi in più sul CCNL .

bella!
 
  • Grazie
Reazioni: Valley
Sistema per gestire più conti completato (direi eheh).

Adesso nascondo quelle due colonne e poi penso ad una prima bozza per le statistiche con grafici
Il sistema conti è già implementato o no? Mi pare di capire che nel "menu" non cambia nulla...
Io ho inserito 4 conti, provato a generare sia income che expenses e pure le stats totali, ma nel foglio "Stats - Inc./Exp." ottengo solo la riga Entrate compilata mentre quella uscite ha "#REF!" per ogni cella, questo porta poi i conti a essere tutti "#REF!"
 
  • Mi piace
Reazioni: Valley
Ultima modifica:
Si non ho al momento le casistiche iniziali, quindi se metti i record di più mesi dovrebbe funzionare (salvo le stats). Se metti un solo mese o pochi record potrebbero esserci errori ancora non controllati. Quando finirò la prima bozza completa (sheet annuale e sheet pluriannuale) passo a farmi un caso da zero, vedere i problemi e fixarli. Per questo i test come quelli che stai facendo te sono oro! Grazie :D
Si avendo spese su più conti il sistema mostrava le stats di solo 2 (i due fogli che avevo solo rinominato) ma mi sembrava comunque giusto.

Potresti spiegarti meglio? Mi interessa molto sapere come un esterno si sente di fronte al file: se non sa come muoversi, se lo trova lento, quali punti difficili da comprendere, ecc.
Mi ha lasciato un po' perplesso all'inizio il fatto di avere un unico file per ingressi/uscite, anche se riguardandolo c'è un senso visto che si ragiona a livello di "conto corrente", solo che a fine anno bisognerà scorrere molto in giù...


Tieni conto che l'unica comparazione posso farla con l'excel di Mr.Rip visto in qualche suo video e nella copia pubblicamente accessibile a tutti. Lui usa un documento per anno dove con 12 fogli segna le spese di ogni mese e un documento di riepilogo che racchiude tutti gli anni... certo che ora pensandoci viene a perdersi il concetto di conto.


Alla fine ho comunque inserito le transazioni di gennaio 2022 come prova, anche per non mettere troppi dati. E non mi sembra di aver riscontrato problemi (report con solo 2 conti, menu con il nome dei due conti tuoi, ma cose che comunque hai già detto essere in lavorazione).
Messaggio unito automaticamente:

Aggiungo anche che ho provato a cercare delle app/siti che facessero più o meno le cose di questo excel che si vuole creare, con l'idea che minimo serve app mobile e web, che sia gratuito e che permetta di gestire non solo le spese ma anche un report relativo ai singoli conti.

Dopo aver visto varie app, tra cui alcune morte o non più aggiornate (sicuramente da sviluppatori che come in questo caso hanno pensato di farla loro perchè non trovavano qualcosa che gli andasse bene) sono finito su un progetto opensource e selfhosted da dover quindi mettere da qualche parte (dispongo già di un piccolo server che pago 2,50€/mese ma in questo modo effettivamente i dati sono nel mio server e da li non si muovono) si tratta di Firefly III è un po' ostico all'inizio difatti ero dubbioso che fosse una buona alternativa... in un pomeriggio sono riuscito ad inserire tutte le transazioni da marzo 2022 (quando ho aperto il primo conto e iniziato a lavorare) e per il momento tengo traccia di 4 conti correnti, come soluzione mi incuriosisce ma non so se staccarmi totalmente da un foglio google... per cui siamo ancora in ballo
 
  • Love
Reazioni: Valley
Adesso scrivo la discussione relativa alla parte di programmazione ma nel mentre c'è da capire come organizzare il foglio per il net worth (e di conseguenza anche il resto del file).

Al momento abbiamo solo entrate ed uscite.
Quali altre voci metteresti nel calcolo del patrimonio netto? Direi di farne un elenco (senza esagerare eheh) e dare priorità alle voci più comuni così da proseguire con quelle.
Io sto prendendo come spunto il file di Mr. Rip ma non vorrei basarmi solo su quello.
 
Progetto stupendo!
Sto iniziando ad interessarmi alla cosa pure io per avere ordine anche mentale... pur non avendo moltissime spese o entrare (ho appena finito un tirocinio universitario che a settembre diventa un apprendistato, mentre termino l'università, come inizio non mi sembra male) quindi è il momento di iniziare ad avere chiare le proprie finanze!

Ho seguito per qualche mese Mr Rip e la sua idea non è male, ma questa mi sembra un bel passo avanti!

Se servisse una mano con sheet e appscript ci ho già fatto alcune cosette quindi non mi è tutto nuovo.

Un appunto lo farei sul poter inserire spese o entrate non in euro, tenendo una storicità perlomeno mensile, con appscript si può pure segnare il tasso di cambio da google finance ogni giorno per una maggiore precisione dei dati (almeno io ho fatto delle cose con appscript non dentro ai documenti google, ma con html, css e con grafica sua che aveva le automazioni con recupero dati da fogli ed eseguiva operazioni in autonomia, però tutto questo lo faccio su un account workspace aziendale, non ho idea se con un semplice gmail si abbia tutto disponibile)
Mi sono scordato di scriverlo ma l'idea è di rendere il file "multi-valuta". L'utente seleziona quali vuole e in automatico vengono poi fatte tutte le conversioni in tempo reale (per quanto riguarda le statistiche).

Per quanto riguarda html, css ecc.. Si può fare, ci ho pensato molto. È esteticamente più figo ma rende il tutto modificabile da meno persone mentre la mia idea è fare un file abbastanza "libero". Su questo però ci sto ancora pensando.

Dimmi il tuo telegram che mano a mano che vado avanti magari ti contatto se ho problemi o anche per ottimizzare il file ;D
Che studi?
 
Telegram: @niconiconick
Sto finendo gli ultimi 4 esami per la triennale in informatica... intanto ho proseguito dove avevo fatto il tirocinio con un part-time sia per entrare nel mondo del lavoro che per mettermi qualcosa da parte, oltretutto considerando la flessibilità con un parttime verticale e la vicinanza a casa, ci vado in bicicletta, intanto imparo cose senza molte pretese. Poi quando sarà il momento mi farò valere sul mercato hahahaha
In questo periodo sono un po' full però darei una occhiata più che volentieri al file e se c'è da scambiare informazioni o problemi!
Daje magari quando faccio uscire la prima versione ci dai un occhio (tanto il codice sarà pubblico) e vediamo come ottimizzarlo / cosa aggiungere ;)
 
Update 0.1.0 - Nuovi sheets "Monthly Expenses/Income Total"
Update:
Fatti gli sheet "Monthly Expenses Total" e "Monthly Income Total". Ora sto facendo un sistema per escludere dai conti in questi due sheet i trasferimenti di fondi da un conto all'altro (che di fatto non so ne un ingresso ne un uscita).


Segui la discussione per non perderti gli update ;) Basta cliccare il bottone evidenziato in rosso nello screenshot qui sotto.

Schermata 2022-11-02 alle 20.24.38.png
 
Update:
Ho sputato sangue ma penso di esserci riuscito.

Negli sheet » Expenses: Cat./Subcat. e » Income: Cat./Subcat. ora è presente una colonna dove poter spuntare le sottocategorie da escludere nel conto del Monthly Expenses Total e Monthly Income Total. Basterà spuntarle qui e quando si aggiorna la tabella dei totali (tramite l'apposito bottone), prima del ricalcolo verranno aggiornati i record presenti negli sheet con le entrate/uscite, andando a modificare due colonne (che verrano nascoste) con degli "0" (in caso siano da conteggiare) o "1" (in caso siano da escludere).

Fare sta roba mi è costato sangue, sudore e sclero ma grazie anche a @0xbro e @Toki.San ne sono venuto fuori, ottimizzando anche tutta la funzione che calcola i monthly total.


Ora devo:
- Nascondere le due colonne che dicevo prima.
- Studiare un sistema per gestire più conti. Al momento ne supporta due con nomi definiti (Hype e N26), devo fare un sistema che permetta di aggiungere X conti con il nome che si vuole.



Segui la discussione per non perderti gli update ;) Basta cliccare il bottone evidenziato in rosso nello screenshot qui sotto.

Schermata 2022-11-02 alle 20.24.38.png

Non ho ancora nascosto le due colonne (asd) ma ho quasi completato il sistema per gestire più conti. Al momento ne supporterà al massimo 5. Possono bastare?
 
Update 0.3.0 - Aggiunto sistema per gestire fino a 5 conti
Sistema per gestire più conti completato (direi eheh).

Adesso nascondo quelle due colonne e poi penso ad una prima bozza per le statistiche con grafici
 
Ultima modifica:
categoryStats.gs
File che si occupa di generare le tabelle mensili per singolo conto con valori raggruppati per categoria.

 
Ultima modifica:
subCategoryStats.gs
File che si occupa di generare le tabelle mensili per singolo conto con valori raggruppati per sottocategoria.

 
Ultima modifica:
monthlyStatsTotal.gs
File che si occupa di aggiornare le tabelle riassuntive mensili totali (tutti i conti messi assieme) per le entrate ed uscite. Verifica se l'utente vuole aggiornare le entrate o le uscite, prepara alcune variabili, pulisce lo sheet da vecchi dati, verifica quali sottocategorie deve escludere dal conteggio ed infine esegue categoryStatsTotal() e subCategoryStatsTotal().

 
Ultima modifica:
categoryStatsTotal.gs
File che si occupa di generare le tabelle mensili totali con valori raggruppati per categoria.