Formula Excel: somma per giorno della settimana -

Sommario

Formula generica

=SUMPRODUCT((WEEKDAY(dates)=day_num)*values)

Sommario

Per sommare i dati per giorno della settimana (cioè somma per lunedì, martedì, mercoledì, ecc.), È possibile utilizzare la funzione SUMPRODUCT insieme alla funzione WEEKDAY.

Nell'esempio mostrato, la formula in H4 è:

=SUMPRODUCT((WEEKDAY(dates,2)=G4)*amts)

Spiegazione

Potresti chiederti perché non stiamo usando la funzione SUMIF o SUMIFS? Questi sembrano essere un modo ovvio per sommare i giorni della settimana. Tuttavia, senza aggiungere una colonna helper con un valore del giorno della settimana, non è possibile creare un criterio per SOMMA.SE che tenga conto del giorno della settimana.

Invece, usiamo la pratica funzione SUMPRODUCT, che gestisce gli array con grazia senza la necessità di usare Control + Shift + Enter.

Stiamo usando SUMPRODUCT con un solo argomento, che consiste in questa espressione:

(WEEKDAY(dates,2)=G4)*amts

Lavorando dall'interno verso l'esterno, la funzione WEEKDAY è configurata con l'argomento opzionale 2, che fa sì che restituisca i numeri 1-7 rispettivamente per i giorni dal lunedì alla domenica. Questo non è necessario, ma rende più facile elencare i giorni in ordine e raccogliere i numeri nella colonna G in sequenza.

WEEKDAY valuta ogni valore nell'intervallo denominato "date" e restituisce un numero. Il risultato è un array come questo:

(3; 5; 3; 1; 2; 2; 4; 2)

I numeri restituiti da WEEKDAY vengono quindi confrontati con il valore in G4, che è 1.

(3; 5; 3; 1; 2; 2; 4; 2) = 1

Il risultato è una matrice di valori VERO / FALSO.

(FALSE; FALSE; FALSE; TRUE; FALSE; FALSE; FALSE; FALSE)

Successivamente, questo array viene moltiplicato per i valori nell'intervallo denominato "amts". SUMPRODUCT funziona solo con i numeri (non testo o booleani) ma le operazioni matematiche costringono automaticamente i valori VERO / FALSO a uno e zero, quindi abbiamo:

(0; 0; 0; 1; 0; 0; 0; 0) * (100; 250; 75; 275; 250; 100; 300; 125)

Che produce:

(0; 0; 0; 275; 0; 0; 0; 0)

Con solo questo singolo array da elaborare, SUMPRODUCT somma gli elementi e restituisce il risultato.

Articoli interessanti...