SUMIF

  • Scopo: Somma le celle di un intervallo che soddisfano un criterio specifico.
  • Sintassi: SUMIF(intervallo, criterio, [intervallo_somma])
    • intervallo: Lโ€™intervallo di celle da valutare in base al criterio.
    • criterio: La condizione che determina quali celle devono essere sommate.
    • intervallo_somma (opzionale): Lโ€™intervallo di celle da sommare. Se omesso, vengono sommate le celle nellโ€™intervallo stesso.
  • Esempio: SUMIF(A1:A10, ">5", B1:B10) somma i valori nellโ€™intervallo B1:B10 per cui i corrispondenti valori in A1:A10 sono maggiori di 5.

SUMIFS

  • Scopo: Somma le celle di un intervallo che soddisfano una serie di criteri.
  • Sintassi: SUMIFS(intervallo_somma, intervallo_criterio1, criterio1, [intervallo_criterio2, criterio2], ...)
    • intervallo_somma: Lโ€™intervallo di celle da sommare (notare che nel SUMIF questo รจ il terzo parametro e non il primo)
    • intervallo_criterio1: Lโ€™intervallo di celle da valutare in base al primo criterio.
    • criterio1: La condizione per il primo intervallo.
    • intervallo_criterio2, criterio2, โ€ฆ (opzionale): Ulteriori intervalli di celle e criteri.
  • Esempio: SUMIFS(B1:B10, A1:A10, ">5", C1:C10, "<10") somma i valori in B1:B10 per cui i corrispondenti valori in A1:A10 sono maggiori di 5 e i corrispondenti valori in C1:C10 sono minori di 10.

COUNTIF

  • Scopo: Conta il numero di celle in un intervallo che soddisfano un criterio specifico.
  • Sintassi: COUNTIF(intervallo, criterio)
    • intervallo: Lโ€™intervallo di celle da valutare.
    • criterio: La condizione che determina quali celle devono essere contate.
  • Esempio: COUNTIF(A1:A10, ">5") conta quante celle in A1:A10 contengono valori maggiori di 5.

SUMPRODUCT

  • Scopo: Moltiplica gli elementi corrispondenti di uno o piรน array e restituisce la somma dei prodotti, quello che in fisica viene detto prodotto scalare.
  • Sintassi: SUMPRODUCT(array1, [array2], [array3], ...)
    • array1: Il primo array (intervallo) di numeri da moltiplicare.
    • array2, array3, โ€ฆ (opzionale): Ulteriori array di numeri da moltiplicare. Tutti gli array devono avere le stesse dimensioni.
  • Esempio: SUMPRODUCT(A1:A10, B1:B10) moltiplica ciascun elemento di A1 per elemento corrispondente in B1 e restituisce la somma di questi prodotti.

Aggiungere delle condizioni

Posso sfruttare il fatto che un array di booleani si rappresenti come un array di [0,1], per cui un valore moltiplicato per 0 fornisce 0 mentre per 1 fornisce se stesso, per aggiungere delle condizioni al SUMPRODUCT Per esempio SUMPRODUCT((A1:A5 > 2), (B1:B5 < 40), C1:C5) fornisce la somma di tutti gli elementi nel range C1:C5 che hanno il corrispondente valore nella colonna A maggiore di 2 e quello nella colonna B minore di 40. La stessa cosa la posso fare con il * in questo modo: SUMPRODUCT((A1:A5 > 2) * (B1:B5 < 40) * C1:C5).

Funzioni di ricerca

INDEX

La funzione INDEX restituisce il valore di una cella all'intersezione di una riga e una colonna specifiche all'interno di un intervallo.

Sintassi: INDEX(intervallo, numero_riga, [numero_colonna])

  • intervallo: Lโ€™intervallo da cui recuperare il valore.
  • numero_riga: Il numero della riga allโ€™interno dellโ€™intervallo.
  • numero_colonna: (Opzionale) Il numero della colonna allโ€™interno dellโ€™intervallo. Se omesso, verrร  restituito il valore nella stessa colonna dellโ€™intervallo specificato.

Esempio:

=INDEX(A1:C3, 2, 3)

Restituisce il valore della cella alla seconda riga e terza colonna dellโ€™intervallo A1:C3. Eโ€™ comodo quando voglio estrarre il valore di una cella variabile: la cella da estrarre cambia in base a determinati variabili. Ovviamente se invece voglio estrarre il valore di una cella costante basta fare il classico =CELLA.

Ultimo valore diverso da vuoto

Voglio scrivere lโ€™ultimo valore diverso da vuoto della riga A1:A10. Sfrutto counta, che fornisce il numero di celle non vuote in un certo intervallo, per ottenere la colonna di cui vorrรฒ andare a prendere il valore della cella e costruisco quindi la formula in questo modo.

=index(A1:A10;1;counta(A1:A10))

MATCH

La funzione MATCH cerca un elemento in un intervallo e restituisce la posizione relativa dellโ€™elemento allโ€™interno dellโ€™intervallo.

Sintassi: MATCH(chiave_ricerca, intervallo, [tipo_correspondance])

  • chiave_ricerca: Il valore da cercare.
  • intervallo: Lโ€™intervallo di celle in cui cercare.
  • tipo_correspondance: (Opzionale) Il tipo di corrispondenza. Puรฒ essere 1 (corrispondenza meno di, ordinato in ordine crescente), 0 (corrispondenza esatta) o -1 (corrispondenza piรน di, ordinato in ordine decrescente).

Esempio:

=MATCH("Mela", A1:A5, 0)

Cerca โ€œMelaโ€ nellโ€™intervallo A1:A5 e restituisce la posizione relativa.

INDEX + MATCH

MATCH trova la posizione di un valore in un intervallo, mentre INDEX utilizza quella posizione per restituire un valore da un altro intervallo. Supponiamo di avere una tabella con i dati dei dipendenti come segue e devo trovare il dipartimento di un dipendente dato il suo nome.

ABC
NomeDipartimentoStipendio
MariaMarketing50000
LucaVendite55000
AnnaIT60000
PaoloHR45000
  1. Usare MATCH per trovare la posizione del nome del dipendente in quanto la funzione MATCH cercherร  il nome del dipendente nella colonna A e restituirร  la posizione relativa.
=MATCH("Anna", A2:A5, 0)

La formula restituirร  3, poichรฉ โ€œAnnaโ€ รจ al terzo posto nellโ€™intervallo A2:A5.

  1. Usare INDEX per trovare il valore nel dipartimento corrispondente in quanto la funzione INDEX utilizzerร  la posizione trovata da MATCH per restituire il valore dalla colonna B.
    =INDEX(B2:B5, MATCH("Anna", A2:A5, 0))

La formula restituirร  โ€œITโ€, che รจ il dipartimento di โ€œAnnaโ€.

XLOOKUP

La funzione XLOOKUP cerca un valore in un intervallo e restituisce un valore corrispondente da un altro intervallo. Eโ€™ la versione moderna della combinazione tra INDEX e MATCH detta sopra.

Sintassi: XLOOKUP(chiave_ricerca, intervallo_ricerca, intervallo_restituzione, [valore_se_non_trovato], [modalitร _corrispondenza], [modalitร _ricerca])

  • chiave_ricerca: Il valore da cercare.
  • intervallo_ricerca: Lโ€™intervallo in cui cercare il valore.
  • intervallo_restituzione: Lโ€™intervallo da cui restituire il valore corrispondente.
  • valore_se_non_trovato: (Opzionale) Il valore da restituire se non viene trovata una corrispondenza.
  • modalitร _corrispondenza: (Opzionale) Specifica il tipo di corrispondenza (esatta o approssimativa).
  • modalitร _ricerca: (Opzionale) Specifica la modalitร  di ricerca (dallโ€™alto al basso o dal basso allโ€™alto).

Esempio:

=XLOOKUP("Mela", A1:A5, B1:B5, "Non trovato")

Cerca โ€œMelaโ€ nellโ€™intervallo A1:A5 e restituisce il valore corrispondente dallโ€™intervallo B1:B5.

VLOOKUP

La funzione VLOOKUP cerca un valore nella prima colonna di un intervallo e restituisce un valore in una colonna specificata della stessa riga.

Sintassi: VLOOKUP(chiave_ricerca, intervallo, indice_colonna, [is_sorted])

  • chiave_ricerca: Il valore da cercare.
  • intervallo: Lโ€™intervallo di celle in cui cercare.
  • indice_colonna: Il numero della colonna nellโ€™intervallo da cui restituire il valore.
  • is_sorted: (Opzionale) Indica se lโ€™intervallo รจ ordinato. TRUE (ordinato) o FALSE (non ordinato).

Esempio:

=VLOOKUP("Mela", A1:C5, 3, FALSE)

Cerca โ€œMelaโ€ nella prima colonna dellโ€™intervallo A1:C5 e restituisce il valore nella terza colonna della stessa riga.

Funzioni accessorie

ROW

La funzione ROW restituisce il numero della riga di una cella specificata. Se non viene specificata alcuna cella, restituisce il numero della riga della cella in cui viene inserita la funzione.

Sintassi: ROW([riferimento])

  • riferimento: (Opzionale) La cella o lโ€™intervallo di celle di cui si vuole ottenere il numero della riga. Se omesso, si utilizza la posizione della cella che contiene la funzione.

Esempi:

=ROW(A5)

Restituisce 5, poichรฉ la cella A5 si trova nella quinta riga.

=ROW()

Se inserita nella cella B3, restituisce 3, poichรฉ la funzione si trova nella terza riga.

COL

La funzione COL restituisce il numero della colonna di una cella specificata. Se non viene specificata alcuna cella, restituisce il numero della colonna della cella in cui viene inserita la funzione.

Sintassi: COL([riferimento])

  • riferimento: (Opzionale) La cella o lโ€™intervallo di celle di cui si vuole ottenere il numero della colonna. Se omesso, si utilizza la posizione della cella che contiene la funzione.

Esempi:

=COL(C2)

Restituisce 3, poichรฉ la colonna C รจ la terza colonna.

=COL()

Se inserita nella cella D4, restituisce 4, poichรฉ la funzione si trova nella quarta colonna.

INDIRECT

La funzione INDIRECT restituisce il contenuto di una cella specificata come testo, permettendo di costruire riferimenti dinamici basati sul contenuto di altre celle.

Sintassi: INDIRECT(riferimento_cella, [รจ_a1])

  • riferimento_cella: Una stringa che rappresenta un riferimento di cella.
  • รจ_a1: (Opzionale) Un valore booleano che specifica se il riferimento รจ in formato A1 (TRUE o omesso) o in formato R1C1 (FALSE).

Esempi:

=INDIRECT("A1")

Restituisce il valore della cella A1. In questo esempio lโ€™utilizzo non ha senso in quanto รจ identico a fare =A1 ma invece ha molto piรน senso quando la stringa di testo contenente la cella viene costruita concatenando altri valori come nellโ€™esempio sotto.

=INDIRECT("B" & 2)

Restituisce il valore della cella B2, concatenando la colonna โ€œBโ€ con il numero 2.

Utilizzo Combinato

Lโ€™uso combinato di queste funzioni puรฒ risultare molto potente. Ecco alcuni esempi pratici:

  1. Somma di una colonna variabile: Supponiamo di voler sommare tutti i valori di una colonna specificata in una cella, ad esempio nella cella D1.

    Valore in D1: B

    Formula per la somma:

    =SUM(INDIRECT(D1 & "1:" & D1 & "10"))

    Questa formula somma i valori dalla cella B1 alla cella B10, basandosi sul contenuto della cella D1.

  2. Riferimento dinamico con ROW e COL: Se si desidera creare un riferimento dinamico che cambia in base alla posizione della cella in cui รจ inserita la formula, si possono usare ROW e COL insieme a INDIRECT.

    Supponiamo di avere una formula nella cella C3 e di voler fare riferimento alla cella che si trova una riga sotto e una colonna a destra.

    Formula:

    =INDIRECT(ADDRESS(ROW() + 1, COL() + 1))

    Se inserita in C3, la formula restituirร  il valore della cella D4.

  3. Creare un intervallo dinamico per una funzione: Immagina di voler creare un intervallo dinamico che si estende da una cella specifica fino alla fine dei dati in una colonna.

    Valore di partenza in E1: A1

    Formula per definire lโ€™intervallo dinamico:

    =INDIRECT(E1 & ":" & "A" & ROW(A:A))

    Questa formula crea un intervallo che parte da A1 e si estende fino allโ€™ultima riga con dati nella colonna A.

Questi esempi mostrano come combinare ROW, COL e INDIRECT per creare riferimenti e intervalli dinamici in Google Sheets, rendendo i fogli di calcolo piรน flessibili e potenti.

Mutuo

PMT

Permette di ottenere lโ€™ammontare della rata di un prestito basato su tassi di interesse e periodi di ammortamento costanti, come tipicamente un mutuo a tasso fisso classico. La sintassi della funzione PMT รจ la seguente:

PMT(tasso, num_rate, valore_attuale, [valore_futuro], [tipo])
  • tasso: Il tasso di interesse per periodo. Se il tasso di interesse รจ annuale e i pagamenti sono mensili, questo valore non deve essere diviso per 12 ma la formula corretta รจ . Alcune banche (esempio banca Sella) perรฒ fanno banalmente diviso 12.
  • num_rate: Il numero totale di pagamenti del prestito. Se per esempio ho un mutuo di 10 anni con pagamento mensile sarร 
  • valore_attuale: valore del prestito.

Tasso variabile

La funzione PMT funziona come sopra tranne per alcuni accorgimenti:

  • Il primo parametro indica il tasso di interesse al periodo precedente
  • Il numero di rate รจ variabile e descresce col passare del tempo, indica quindi le rate rimanenti e non il numero complessivo
  • Il valore attuale indica il debito residuo al periodo precedente

IPMT

Permette di calcolare lโ€™importo degli interessi pagati di una determinata rata di un prestito ammortizzato. La sintassi della funzione IPMT รจ la seguente:

IPMT(tasso, periodo, numero_periodi, capitale, [valore_futuro], [tipo])
  • tasso: Il tasso di interesse per periodo. Se il tasso di interesse รจ annuale e i pagamenti sono mensili, questo valore non deve essere diviso per 12 ma la formula corretta รจ $(1+tasso)^{\frac{1}{12}}-1
  • $. Alcune banche (esempio banca Sella) perรฒ fanno banalmente diviso 12.
  • periodo: Il periodo (quindi il numero del pagamento) per cui si vuole calcolare lโ€™interesse. Esempio se voglio la terza rata questo valore sarร  3 (inizia a contare da 1). Deve essere un numero compreso tra 1 e numero_periodi.
  • numero_periodi: Il numero totale di periodi di pagamento (es. per un prestito di 5 anni con pagamenti mensili, numero_periodi sarร  60).
  • capitale: Lโ€™importo del prestito.

RATE

Permette di calcolare il tasso di interesse per un periodo specifico, come il tasso di interesse di un prestito o di un investimento.

RATE(periodi, pagam, valore_attuale)
  • periodi: Il numero totale di periodi di pagamento (esempio il numero di mesi) per il prestito o lโ€™investimento.
  • pagam: Il pagamento effettuato in ciascun periodo. Questo valore rimane costante durante tutta la durata del prestito o dellโ€™investimento e include capitale e interessi, ma non altre spese o tasse. Questo valore deve essere negativo.
  • pv: Il valore del prestito

NPER

Permette di determinare il numero di periodi necessari per estinguere un prestito dato un tasso di interesse costante e pagamenti periodici costanti.

NPER(tasso, pagamento, valore_attuale, [valore_futuro], [tipo])
  • tasso: Il tasso di interesse per periodo.
  • pagamento: Lโ€™importo della rata
  • valore_attuale: Lโ€™importo del prestito