![](https://cdn.wiki-base.com/8828188/excel_formula_sum_first_n_matching_values__2.png.webp)
Formula generica
=SUM(INDEX(FILTER(range,logic),SEQUENCE(n,1,1,1)))
Sommario
Per sommare i primi n valori corrispondenti in un insieme di dati, è possibile utilizzare una formula basata sulle funzioni FILTER e SEQUENCE. Nell'esempio mostrato, la formula nella cella G5, copiata verso il basso, è:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,1,1)))
dove nome (SI5: SI16) e punteggio (DO5: SI16) sono intervalli denominati.
Spiegazione
La funzione FILTRO, nuova in Excel 365, può aiutare a semplificare alcuni complicati problemi di formula.
In questo esempio, l'obiettivo è sommare i primi 3 punteggi sia per Jake che per Hailey, in base all'ordine in cui appaiono nella tabella. Ci sono 12 punteggi in totale e Jake e Hailey hanno 6 punteggi ciascuno.
Lavorando dall'interno verso l'esterno, la prima attività è generare un elenco di punteggi per ogni nome. Questo viene fatto con la funzione FILTER:
FILTER(score,name=F5)
Con "Jake" nella cella F5, il risultato è un array con tutti i punteggi di Jake in questo modo:
(6;5;7;7;6;8)
Questa matrice viene restituita alla funzione INDICE come argomento della matrice:
INDEX((6;5;7;7;6;8),SEQUENCE(3,1,1,1))
La funzione SEQUENZA viene utilizzata per generare il valore per il numero di riga e restituisce un array con 3 numeri,
SEQUENCE(3,1,1,1) // returns (1;2;3)
A questo punto, possiamo scrivere la parte INDICE della formula in questo modo:
INDEX((6;5;7;7;6;8),(1;2;3))
INDICE restituisce i valori associati alle prime 3 righe dell'array alla funzione SOMMA:
=SUM((6;5;7)) // returns 18
e SUM restituisce la somma di questi valori come risultato finale in G5. Quando la formula viene copiata nella cella G6, il risultato è la somma dei primi 3 punteggi di Hailey.
Somma gli ultimi n valori corrispondenti
Per sommare gli ultimi n valori corrispondenti, puoi adattare la formula in questo modo:
=SUM(INDEX(FILTER(score,name=F5),SEQUENCE(3,1,SUM(--(name=F5)),-1)))
Questa formula è spiegata in maggior dettaglio qui.