Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Somma di soli valori numerici in una colonna o in un range

4 views
Skip to first unread message

osval...@gmail.com

unread,
Jan 5, 2008, 9:42:11 AM1/5/08
to
Ciao ragazzi, come si fa a sommare i soli valori numerici, in questo
caso espressi in EURO ,di una colonna o di un range? Per esempio

A
31/09/07
EURO 200
28/10/07
EURO 120
30/11/07
EURO 100

Tot EURO 420

quindi sommare solo EURO nella colonna, ma se si tratta di un range per
esempio A1 D200, come posso fare?.
Grazie a tutti

elby

unread,
Jan 5, 2008, 10:49:03 AM1/5/08
to

Ciao
In A1:D200 i tuoi dati
In E1 la formula =CELLA("Formato";A1) da copiare fino a H200
Dove vuoi in una sola cella :
=SOMMA(($A$1:$D$200)*(($E$1:$H$200="G")+($E$1:$H$200="C2")))
da inserire come matriciale con Maisc + Ctrl + Invio
Ciao Elio

osval...@gmail.com

unread,
Jan 5, 2008, 10:58:52 AM1/5/08
to
> Ciao Elio- Nascondi testo tra virgolette -
>
> - Mostra testo tra virgolette -

Grazie Elio, quindi anche solo la somma della colonna A ha comunque
bisogno di una colonna appoggio e una matriciale?
Senza colonna appoggio non e' possibile?, sai perche' te lo chiedo?,
ho gia' un certo numero di colonne ed ho gia' sviluppato il codice vba
ora aggiungere colonne e' un casino, volevo farne a meno, cosa mi dici?

Pippo

unread,
Jan 5, 2008, 12:12:11 PM1/5/08
to

<osval...@gmail.com> ha scritto nel messaggio
news:537f6789-1cf0-4b7f...@i7g2000prf.googlegroups.com...

Potresti, tramite Vba, utilizzare una funzione definita dall'utente.

Dai uno sguardo al link http://tinyurl.com/2txv9s per imparare ad utilizzare
le suddette funzioni, e poi,

*sostituisci*, la funzione dell'esempio, con la seguente:

'=================================================

Public Function SommaEuro(rng As Range) As Double

Dim cella As Range

Dim s As Double

s = 0

For Each cella In rng

With cella

If IsNumeric(.Value) Then

s = s + (.Value)

End If

End With

Next

SommaEuro = s

End Function

'================================================


Ciao
Pippo


osval...@gmail.com

unread,
Jan 5, 2008, 4:11:06 PM1/5/08
to
On 5 Gen, 18:12, "Pippo" <nos...@nospam.it> wrote:
> <osvaldac...@gmail.com> ha scritto nel messaggionews:537f6789-1cf0-4b7f...@i7g2000prf.googlegroups.com...

>
> > Ciao ragazzi, come si fa a sommare i soli valori numerici, in questo
> > caso espressi in EURO ,di una colonna o di un range? Per esempio
>
> > A
> > 31/09/07
> > EURO 200
> > 28/10/07
> > EURO 120
> > 30/11/07
> > EURO 100
>
> > Tot EURO 420
>
> > quindi sommare solo EURO nella colonna, ma se si tratta di un range per
> > esempio A1 D200, come posso fare?.
>
> Potresti, tramite Vba, utilizzare una funzione definita dall'utente.
>
> Dai uno sguardo al linkhttp://tinyurl.com/2txv9sper imparare ad utilizzare

> le suddette funzioni, e poi,
>
> *sostituisci*, la funzione dell'esempio, con la seguente:
>
> '=================================================
>
> Public Function SommaEuro(rng As Range) As Double
>
> Dim cella As Range
>
> Dim s As Double
>
> s = 0
>
> For Each cella In rng
>
> With cella
>
> If IsNumeric(.Value) Then
>
> s = s + (.Value)
>
> End If
>
> End With
>
> Next
>
> SommaEuro = s
>
> End Function
>
> '================================================
>
> Ciao
> Pippo

Grazie Pippo, mi servirebbe sapere come posso modificare la funzione
per ottenere anche un altro risultato, te lo descrivo

A1
mm 300
EURO 100
mm 200
EURO 100
mm 100
EURO 100
mm 300
EURO 200
mm 200
EURO 200

ottenere la somma dei mm e la somma degli EURO, ovvero mm 1100 e EURO 700

ti ringrazio
osvaldaccio

Pippo

unread,
Jan 5, 2008, 4:58:45 PM1/5/08
to

<osval...@gmail.com> ha scritto nel messaggio
news:fabe57b1-9512-4c45...@m34g2000hsf.googlegroups.com...

I tuoi dati, sono disposti in modo alternato o casuale?

La Riga "pari" della colonna "A" contiene *sempre* i dati in "mm" e quella
dispari *sempre* i dati in "euro"?

Cmq, sarebbe opportuno, che i dati per colonne, siano *tutti* dello stesso
"tipo"!

Non potresti organizzare i tuoi dati diversamente, ad es., inserendo in A2=
mm 300; B2= euro 100;..?

Ciao
Pippo

osval...@gmail.com

unread,
Jan 5, 2008, 5:23:52 PM1/5/08
to
On 5 Gen, 22:58, "Pippo" <nos...@nospam.it> wrote:
> <osvaldac...@gmail.com> ha scritto nel messaggionews:fabe57b1-9512-4c45...@m34g2000hsf.googlegroups.com...

>
>
>
>
>
> > On 5 Gen, 18:12, "Pippo" <nos...@nospam.it> wrote:
> >> <osvaldac...@gmail.com> ha scritto nel
> >> messaggionews:537f6789-1cf0-4b7f...@i7g2000prf.googlegroups.com...
>
> >> > Ciao ragazzi, come si fa a sommare i soli valori numerici, in questo
> >> > caso espressi inEURO,di una colonna o di un range? Per esempio

>
> >> > A
> >> > 31/09/07
> >> > EURO200
> >> > 28/10/07
> >> > EURO120
> >> > 30/11/07
> >> > EURO100
>
> >> > TotEURO420
>
> >> > quindi sommare soloEUROnella colonna, ma se si tratta di un range per

> >> > esempio A1 D200, come posso fare?.
>
> >> Potresti, tramite Vba, utilizzare una funzione definita dall'utente.
>
> >> Dai uno sguardo al linkhttp://tinyurl.com/2txv9sperimparare ad
> Pippo- Nascondi testo tra virgolette -

>
> - Mostra testo tra virgolette -

Purtroppo caro pippo non posso, trattasi di orrende tabelle
millesimali che vanno conteggiate come ti ho detto, pero' potrebbe
esserci un'altra soluzione
essendo le tabelle a righe alterne, si potrebbe fare fare la somma
delle righe pari per esempio B14 B16 B18 B20 B22 che contengono i mm e
B15 B17 B19 B21 ecc..
che contengono formato EURO , ma capisci che trattandosi di 500 righe non
posso scrivere =SOMMA(B14;B16;B18;B20;B22)ecc.. per 500 volte, percio'
prova a trovare una soluzione.
Tieni presente che le righe EURO sono formattate in Contabilita' e due
decimali, le righe mm sono formattate con un formato personalizzato
tipo mm 100,45.


Pippo

unread,
Jan 5, 2008, 5:53:51 PM1/5/08
to

<osval...@gmail.com> ha scritto nel messaggio
news:6f56bda8-b56f-4ec4...@i72g2000hsd.googlegroups.com...


>> > A1
>> > mm 300
>> > EURO100
>> > mm 200
>> > EURO100
>> > mm 100
>> >EURO100
>> > mm 300
>> >EURO200
>> > mm 200
>> >EURO200
>>
>> > ottenere lasommadei mm e lasommadegliEURO, ovvero mm 1100 eEURO
>> > 700

>> Non potresti organizzare i tuoi dati diversamente, ad es., inserendo in
>> A2=
>> mm 300; B2=euro100;..?

> Purtroppo caro pippo non posso, trattasi di orrende tabelle


> millesimali che vanno conteggiate come ti ho detto, pero' potrebbe
> esserci un'altra soluzione
> essendo le tabelle a righe alterne, si potrebbe fare fare la somma
> delle righe pari per esempio B14 B16 B18 B20 B22 che contengono i mm e
> B15 B17 B19 B21 ecc..
> che contengono formato EURO , ma capisci che trattandosi di 500 righe non
> posso scrivere =SOMMA(B14;B16;B18;B20;B22)ecc.. per 500 volte, percio'
> prova a trovare una soluzione.
> Tieni presente che le righe EURO sono formattate in Contabilita' e due
> decimali, le righe mm sono formattate con un formato personalizzato
> tipo mm 100,45.

La seguente formula "matriciale" *somma* i dati contenuti nelle righe
"Dispari" della colonna "A":

=SOMMA((A1:A200)*RESTO(RIF.RIGA(A1:A200);2))

La seguente formula matriciale *somma* i dati contenuti nelle righe "Pari"
della colonna "A":

=SOMMA((A1:A200)*(NON(RESTO(RIF.RIGA(A1:A200);2))))

NB: Trattasi di formule *matriciali*, quindi dopo averle inserite nella
cella, dei premere contemporaneamnete (invece del semplice tasto "invio"),
la combinazione dei tasti "Ctrl+Shift+Invio".


Ciao
Pippo


osval...@gmail.com

unread,
Jan 5, 2008, 6:51:36 PM1/5/08
to
On 5 Gen, 23:53, "Pippo" <nos...@nospam.it> wrote:
> <osvaldac...@gmail.com> ha scritto nel messaggionews:6f56bda8-b56f-4ec4...@i72g2000hsd.googlegroups.com...

>
>
>
>
>
> >> >   A1
> >> > mm 300
> >> >  EURO100
> >> > mm 200
> >> >  EURO100
> >> > mm 100
> >> >EURO100
> >> > mm 300
> >> >EURO200
> >> > mm 200
> >> >EURO200
>
> >> > ottenere lasommadei mm e lasommadegliEURO,   ovvero mm 1100  eEURO
> >> > 700
> >> Non potresti organizzare i tuoi dati diversamente, ad es., inserendo in
> >> A2=
> >> mm 300; B2=euro100;..?
> > Purtroppo caro pippo non posso, trattasi di orrende tabelle
> > millesimali che vanno conteggiate come ti ho detto, pero' potrebbe
> > esserci un'altra soluzione
> > essendo le tabelle arighealterne, si potrebbe fare fare la somma
> > dellerighepari per esempio B14 B16 B18 B20 B22 che contengono i mm e

> > B15 B17 B19 B21 ecc..
> > che contengono formato EURO , ma capisci che trattandosi di 500righenon
> > posso scrivere =SOMMA(B14;B16;B18;B20;B22)ecc.. per 500 volte, percio'
> > prova a trovare una soluzione.
> > Tieni presente che lerigheEURO sono formattate in Contabilita' e due
> > decimali, lerighemm sono formattate con un formato personalizzato

> > tipo mm 100,45.
>
> La seguente formula "matriciale"  *somma* i dati contenuti nellerighe
> "Dispari" della colonna "A":
>
> =SOMMA((A1:A200)*RESTO(RIF.RIGA(A1:A200);2))
>
> La seguente formula matriciale  *somma* i dati contenuti nellerighe"Pari"

> della colonna "A":
>
> =SOMMA((A1:A200)*(NON(RESTO(RIF.RIGA(A1:A200);2))))
>
> NB: Trattasi di formule *matriciali*, quindi dopo averle inserite nella
> cella, dei premere contemporaneamnete (invece del semplice tasto "invio"),
> la combinazione dei tasti "Ctrl+Shift+Invio".
>
> Ciao
> Pippo- Nascondi testo tra virgolette -
>
> - Mostra testo tra virgolette -

Pippo, scusa mi son dimenticato che nelle righe ci sono valori frutto
di formule, quindi se applico la matriciale il risultato e' #VALORE!,
quindi nulla di fatto ,
penso ci voglia una funzione vba, o una trovata geniale, dimmi qualche
cosa!!
Ciao Osvaldaccio

Pippo

unread,
Jan 5, 2008, 7:09:32 PM1/5/08
to

<osval...@gmail.com> ha scritto nel messaggio
news:a80a8bb0-4e86-48a1...@c23g2000hsa.googlegroups.com...

'================================================

DEVONO funzionare lo stesso, ANCHE in presenza di FORMULE nelle celle!

NOTA BENE: Hai inserito la formula *matriciale*, premendo, dopo averla
digitata nella cella, *contemporaneamente*, la combinazione dei TRE tasti
"CTRL + SHIFT + INVIO"?

Se e' inserita come sopra, devi poter vedere, nella stessa formula
*matriciale*, delle parentesi "GRAFFE", che vengono AUTOMATICAMENTE inserite
dopo la pressione dei suddetti tasti.

Ciao
Pippo


Pippo

unread,
Jan 5, 2008, 8:08:48 PM1/5/08
to

"Pippo" <nos...@nospam.it> ha scritto nel messaggio
news:1C9A6777-0A7E-403B...@microsoft.com...

Altra ipotesi, relativa all'errore (#VALORE!), che hai segnalato, puo'
essere dovuta al fatto che, nel *tuo* intervallo, c'e' qualche dato NON
numerico:
vedi se per caso, ad es., hai incluso nell'intervallo anche *l'etichetta* di
colonna, che potrebbe essere posizionata nella prima cella A1.

In tal caso, l'ntervallo della formula matriciale, DEVE partire dalla cella
A2 e NON dalla cella A1, come invece ho fatto nelle formule che ti ho
suggerito.

Ciao
Pippo

stirner

unread,
Jan 5, 2008, 10:13:46 PM1/5/08
to
On 6 Gen, 02:08, "Pippo" <nos...@nospam.it> wrote:
> "Pippo" <nos...@nospam.it> ha scritto nel messaggionews:1C9A6777-0A7E-403B...@microsoft.com...
>
>
>
>
>
>
>
> > <osvaldac...@gmail.com> ha scritto nel messaggio

===================================
Ciao.
restando valide le osservazione di p, si può proporre per le righe
pari:

=MATR.SOMMA.PRODOTTO(A1:A10;1-RESTO(RIF.RIGA(A1:A10);2))

e per le righe dispari

=MATR.SOMMA.PRODOTTO(A1:A10;RESTO(RIF.RIGA(A1:A10);2))

Queste formule non hanno bisogno dell'inserimento matriciale.

Pippo

unread,
Jan 6, 2008, 7:59:45 AM1/6/08
to

"stirner" <santoc...@alice.it> ha scritto nel messaggio
news:ea285f04-202f-4f62...@q39g2000hsf.googlegroups.com...

On 6 Gen, 02:08, "Pippo" <nos...@nospam.it> wrote:

'======================================================


Ciao.
restando valide le osservazione di p, si può proporre per le righe
pari:

=MATR.SOMMA.PRODOTTO(A1:A10;1-RESTO(RIF.RIGA(A1:A10);2))

e per le righe dispari

=MATR.SOMMA.PRODOTTO(A1:A10;RESTO(RIF.RIGA(A1:A10);2))

Queste formule non hanno bisogno dell'inserimento matriciale.

'=======================================================

*Giustissima* osservazione, le formule che hai suggerito, sono anche piu'
veloci nell'eseguire i calcoli.

Ciao e grazie mille
Pippo

Maurizio Borrelli

unread,
Jan 6, 2008, 2:01:18 PM1/6/08
to
"Pippo" wrote in message
news:EB6A5C0E-DA34-45AE...@microsoft.com:

[...]


> Altra ipotesi, relativa all'errore (#VALORE!), che hai segnalato, puo'
> essere dovuta al fatto che, nel *tuo* intervallo, c'e' qualche dato NON
> numerico:
> vedi se per caso, ad es., hai incluso nell'intervallo anche
> *l'etichetta* di colonna, che potrebbe essere posizionata nella prima cella A1.

Ciao Pippo.

Eccomi.

Come abbiamo visto nel successivo 3D infelicemente aperto da
Osvaldaccio, il problema e' dovuto proprio al fatto che nelle celle non
ci sono solo valori numerici. L'amico infatti ci comunica (era ora!) che
la formula e':

=SE(VAL.ERRORE(SE(I14="";"";$I$9/1000*I14));"";SE(I14="";"";$I
$9/1000*I14))

nella quale si possono tranquillamente sostituire i valori "stringa
nulla" con degli zero, visto che a tali celle viene assegnato il formato
"Contabilita'", che prevede la gestione dei valori zero mostrando un
trattino.

Che altro c'e' da dire in proposito?... Secondo me nulla, se non
invitare Osvaldaccio a riconsiderare, se puo', la struttura del tutto.
Credo che ogni volta che si trova un intoppo di questo tipo invece di
andare avanti nella ricerca di una soluzione bisogna invece andare
indietro nella ricerca di una migliore strutturazione dei dati.

--
Maurizio Borrelli [MVP]
http://www.riolab.org


Pippo

unread,
Jan 6, 2008, 2:13:54 PM1/6/08
to

"Maurizio Borrelli" <maurizio...@freepass.it> ha scritto nel messaggio
news:OXNcYaJU...@TK2MSFTNGP02.phx.gbl...

> "Pippo" wrote in message
> news:EB6A5C0E-DA34-45AE...@microsoft.com:
>
> [...]
>> Altra ipotesi, relativa all'errore (#VALORE!), che hai segnalato, puo'
>> essere dovuta al fatto che, nel *tuo* intervallo, c'e' qualche dato NON
>> numerico:
>> vedi se per caso, ad es., hai incluso nell'intervallo anche
>> *l'etichetta* di colonna, che potrebbe essere posizionata nella prima
>> cella A1.


> Eccomi.


Grazie per la tempestiva ed *infinita* disponibilita'! ;-)


> Come abbiamo visto nel successivo 3D infelicemente aperto da Osvaldaccio,
> il problema e' dovuto proprio al fatto che nelle celle non ci sono solo
> valori numerici. L'amico infatti ci comunica (era ora!) che la formula e':
>
> =SE(VAL.ERRORE(SE(I14="";"";$I$9/1000*I14));"";SE(I14="";"";$I
> $9/1000*I14))
>
> nella quale si possono tranquillamente sostituire i valori "stringa nulla"
> con degli zero, visto che a tali celle viene assegnato il formato
> "Contabilita'", che prevede la gestione dei valori zero mostrando un
> trattino.


> Che altro c'e' da dire in proposito?... Secondo me nulla, se non invitare
> Osvaldaccio a riconsiderare, se puo', la struttura del tutto. Credo che
> ogni volta che si trova un intoppo di questo tipo invece di andare avanti
> nella ricerca di una soluzione bisogna invece andare indietro nella
> ricerca di una migliore strutturazione dei dati.

Infatti, in questo stesso thread suggerivo:

"Cmq, sarebbe opportuno, che i dati per colonne, siano *tutti* dello stesso
"tipo"!

Non potresti organizzare i tuoi dati diversamente, ad es., inserendo in A2=


mm 300; B2= euro 100;..?"

....ma pare che Osvaldaccio, avesse qualche difficolta' nell'organizzare i
dati in modo diverso.


Ciao
Pippo


0 new messages