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,261
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)
 
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
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)
 
  • Incredibile
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)
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?
 
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
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.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
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 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
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:
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: Conti
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
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.

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

 
Update:

Unita la discussione vecchia con la nuova. Alla fine avere due discussioni divise non mi garbava più.
Pubblicata la prima bozza del file, così che tutti possano vederla e contribuire. Pubblicate tutte le funzioni e condivise su github.

Si va avanti ;)
 
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