Joseph ha un foglio di lavoro che contiene un elenco di valori. Alcuni di questi valori sono superiori a zero e altri sono inferiori. Può usare la funzione SOMMA per calcolare una somma dei valori, ma in realtà vuole calcolare una somma del valore assoluto di ogni elemento nell’elenco. Quindi, la somma dei tre valori -33, 14, -5 sarebbe 52 invece di -24.

Non esiste una funzione intrinseca che puoi utilizzare per creare la somma desiderata, ma puoi creare una formula per eseguire l’attività. Un metodo consiste nell’usare la funzione SOMMA.SE, nel modo seguente:

=SUMIF(A1:A10,">0")-SUMIF(A1:A10,"<0")

Il primo SOMMA.SE somma tutti i valori maggiori di zero e il secondo somma tutti quelli minori di zero. Pertanto, con i quattro valori -33, 14, -5, 42, il primo SUMIF risulterebbe in una somma di 56 (14 + 42) e il secondo in una somma di -38 (-33 + -5). Quando sottrai la seconda somma dalla prima (56 – -38) ottieni un risultato finale di 94, che è la somma di tutti i valori assoluti.

Un altro approccio consiste nell’usare la funzione SUMPRODUCT. La seguente formula produrrà il risultato desiderato:

=SUMPRODUCT(ABS(A1:A10))

La funzione viene in genere utilizzata per moltiplicare tra loro diversi elementi di array e quindi sommare tali prodotti. Poiché viene fornito un solo array (A1: A10), non viene eseguita alcuna moltiplicazione, ma viene restituita una somma dei valori assoluti desiderati.

È inoltre possibile ottenere il risultato desiderato utilizzando una formula di matrice, una funzionalità comoda ma utilizzata di rado di Excel. Supponendo che i tuoi valori siano nell’intervallo A1: A10, digita questa formula:

=SUM(ABS(A1:A10))

Non premere Invio; invece premere Ctrl + Maiusc + Invio, che significa che si tratta di una formula di matrice. Se la formula è inserita correttamente, vedrai parentesi graffe attorno alla formula nella barra della formula:

{=SUM(ABS(A1:A50))}

Quello che fa la formula è creare internamente la colonna intermedia (che è una matrice di valori) che sono i singoli valori assoluti di A1: A10. Quindi somma questo array e visualizza il risultato.

Infine, se preferisci, puoi creare la tua funzione definita dall’utente (una macro) che restituirà la somma dei valori assoluti in un intervallo.

La seguente è una macro che eseguirà questa operazione:

Function SumAbs(Rng As Range) As Double     Result = 0     On Error GoTo Done     For Each element In Rng         Result = Result + Abs(element)

Next element Done:

SumAbs = Result End Function

Puoi usare la funzione inserendo una semplice formula nel tuo foglio di lavoro:

=SumAbs(A1:A10)

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (2913) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: