Condividi:        

[excel] - Somma valori

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

[excel] - Somma valori

Postdi shark30 » 26/11/07 22:26

Ragazzi, in primis, mi piacerebbe ringraziarvi per l'aiuto che giorno dopo giorno mi date nel risolvere i miei piccoli e grandi problemi con le applicazioni di office.

Vi posto subito la mia domanda:

Foglio 1
Colonna A
mele
pere
pesche

Colonna B
15
20
30


Supponendo che nel foglio 2 di lavoro nella colonna A ho gli stessi nomi, ma con valri diversi nella B, mi piacerebbe calcolare nel 3 foglio un elenco di tutti i nomi della colonna A (fogli 1 e 2) ma nella colonna B, il risultato della somma dei rispettivi valori del foglio 1 e 2 (appartenenti alla stessa voce)

Spero di essere stato il piú chiaro possibile .....
Ciao e grazie molto!!!!

P.s.
Chiedo scusa se la domanda è gia stata soluzionata in altro topic
shark30
Newbie
 
Post: 6
Iscritto il: 26/11/07 22:06

Sponsor
 

Postdi shark30 » 27/11/07 18:25

Continuo a necessitare il vostro aiuto, pls...
Sto provando con il somma.se, ma ho problemi a lavorare su diversi fogli.

Mi manca ancora il modo di creare l'elenco degli items dei fogli 1 e 2 nel 3.

Grazie ancora
shark30
Newbie
 
Post: 6
Iscritto il: 26/11/07 22:06

Postdi Anthony47 » 28/11/07 00:42

Ciao shark30 e benvenuto nel forum.

Giustamente stai lavorando con SOMMA.SE. Assumiamo che in Col A di Foglio1 ci siano tutte le voci anche di Foglio2; allora, su Foglio3:
-in A1 metti la formula =Foglio2!A1 che poi copi verso il basso quato basta;
-in B1 metti =SOMMA.SE(Foglio2!A:A;Foglio3!A1;Foglio2!B:B)+SOMMA.SE(Foglio1!A:A;Foglio3!A1;Foglio1!B:B) e copi sempre verso il basso.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi Anthony47 » 28/11/07 00:44

Le formule sono, per maggiore leggibilita':
-in A1
Codice: Seleziona tutto
=Foglio2!A1

-in B1
Codice: Seleziona tutto
=SOMMA.SE(Foglio2!A:A;Foglio3!A1;Foglio2!B:B)+SOMMA.SE(Foglio1!A:A;Foglio3!A1;Foglio1!B:B)


Ri-ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi shark30 » 28/11/07 00:45

Grazie Antony,

ero ansioso di una risposta...
Ci provo subito e ti faccio sapere

Grazie tantissimo....
C.
shark30
Newbie
 
Post: 6
Iscritto il: 26/11/07 22:06

Postdi shark30 » 28/11/07 01:30

funziona!!!

L'unico problema é che nell'elenco del foglio 2 nn ci sono gli stessi nomi del foglio 1.

A questo punto mi servirebbe poter estrarre una lista nella colonna A del foglio3 di tutti i nomi presenti nella colonna a dei fogli 1 e 2.
Naturalmente i nomi dei suddetti elenchi si ripetono anche piu volte, quindi io ho bisogno che nel resume del foglio 3 appaiono solo una.

grazie ancora molto per la pazienza...
ciao
C.
shark30
Newbie
 
Post: 6
Iscritto il: 26/11/07 22:06

Postdi Anthony47 » 29/11/07 02:06

L'unico problema é che nell'elenco del foglio 2 nn ci sono gli stessi nomi del foglio 1.

Mi sembrava troppo facile come l' avevi raccontata la prima volta.

Va quindi affrontato con le macro.
Questa la metti nel modulo di codice di Foglio3
Codice: Seleziona tutto
Private Sub Worksheet_Activate()
Application.EnableEvents = False
Sheets("Foglio3").Select
Range("A:B").ClearContents
Sheets("Foglio1").Select
Call Elenca
Sheets("Foglio2").Select
Call Elenca
Sheets("Foglio3").Select
Application.EnableEvents = True
End Sub

Procedura: da excel Foglio3, tasto dx sul tab col nome foglio, scegli Visualizza codice; si apre il vba editor; copi il codice e lo incolli sul frame vuoto di dx

Questa va messa in un Modulo di codice standard:
Codice: Seleziona tutto
Sub Elenca()
For Each Cell In Range("A1", Cells(Range("a65536").End(xlUp).Row, 1))
OffInd = 0
On Error Resume Next
OffInd = Application.WorksheetFunction.Match(Cell, Sheets("Foglio3").Range("A1:A65536"), 0)
If OffInd = 0 Then
On Error GoTo 0
Sheets("Foglio3").Range("A65536").End(xlUp).Offset(1, 0).Value = Cell
Sheets("Foglio3").Range("A65536").End(xlUp).Offset(0, 1).FormulaR1C1 = _
        "=SUMIF(Foglio2!C[-1],Foglio3!RC[-1],Foglio2!C)+SUMIF(Foglio1!C[-1],Foglio3!RC[-1],Foglio1!C)"
End If
Next Cell
End Sub


Procedura: dal vba editor (sopra), fai Inserisci /Modulo; copi il codice e lo inserisci nel frame di dx

Le macro si attivano tutte le volte che apri Foglio3, CANCELLA TUTTO quello che c' e' in colonna A e B, e poi popola A con i valori presenti in col A di Foglio1 e Foglio2 e col B con la formula di SOMMA.SE che avevi gia' visto.
Se quanto sopra non ti va bene, non procedere e spiega perche' non va bene. Comunque, come sempre, prima di provare fai due copie di backup del tuo file originale.

Ciao, fai sapere.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi shark30 » 29/11/07 20:59

Grazie ancora Anthony, sempre molto disponibile!

Lo provo con calma, (cercando anche di capire come si scrive la macro che mi hai dato) e ti faccio sapere.

Ciao
C.
shark30
Newbie
 
Post: 6
Iscritto il: 26/11/07 22:06

Postdi Anthony47 » 29/11/07 23:21

La procedura per inserire le macro nel posto giusto l' ho messa nel messaggio precedente. Prova con calma e se hai domande siamo qua,
Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Postdi shark30 » 01/12/07 00:44

Il tutto ha funzionato cosi bene...che mi sono messo a studiare macro e vba.

Ora gia so come perderó il sonno per tutte le cose che tenteró di fare e che nn mi riusciranno.

Un grazie a tutti e in particolare a Anthony, sempre molto attento.
Ciao
shark30
Newbie
 
Post: 6
Iscritto il: 26/11/07 22:06

Postdi Anthony47 » 02/12/07 02:22

Ottima idea...
Un buon sistema per imparare e’ quello di registrare qualche macro, esaminare il codice che viene scritto, modificare e aggiungere istruzioni per fare cose sempre piu’ complesse.
Per registrare: Menu /Strumenti /Macro /Registra nuova macro; poi esegui una serie di operazioni che excel eseguira’ mentre il vba scrive le istruzioni equivalenti; ferma la registrazione.
Per esaminare il codice: da excel, apri il vba editor con Alt-F11, cerca nel frame di sx (Progetto) la cartelletta “Moduli”, aprila e apri Modulo1 sottostante; trovi il codice sul frame di dx.
Poi …non rimane che modificare e debuggare. Trovi su questo topic una breve guida di come si puo’ procedere:
http://www.pc-facile.com/forum/viewtopic.php?t=65537

Il 50% delle mie istruzioni nasce in questo modo.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "[excel] - Somma valori":


Chi c’è in linea

Visitano il forum: Nessuno e 36 ospiti