Condividi:        

cerca.vert in matr.somma.prodotto

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

cerca.vert in matr.somma.prodotto

Postdi marcoc » 18/09/20 21:23

buongiorno a tutti,
avrei bisogno una formula simile a quella in oggetto.

In pratica, selezionando impianto e mese in C14 e C15 del file, mi dovrebbe dare il valore della col.D, ma se seleziono "aaa" e "9", non trovando settembre, mi deve dare il valore corrispondente del primo mese precedente che trova (in questo caso luglio), come farebbe un cerca.vert con l'1 dopo l'ultimo ";".

A volte poi ci sono più righe con stesso impianto e stesso mese (es. maggio); in questo caso dovrebbe prendere la somma delle percentuali (in questo caso 11%).

ecco il file http://www.filedropper.com/cercavertinmatrsommaprodotto
sapete aiutarmi?
Avatar utente
marcoc
Utente Senior
 
Post: 324
Iscritto il: 22/03/07 21:58
Località: Nerviano

Sponsor
 

Re: cerca.vert in matr.somma.prodotto

Postdi Anthony47 » 19/09/20 00:11

Ci sono troppe condizioni strane, cosi' invece di pensare a una formula vado su una funzione personalizzata, che corrisponde a questo codice:
Codice: Seleziona tutto
Function MarcoStra(ByRef myRan As Range, ByVal cMon As Long, ByVal cPlant As String) As Single
'Vedi http://www.pc-facile.com/forum/posting.php?mode=reply&f=26&t=111528
Dim I As Long, cSum As Single, xSum As Single, maMon As Long
'
For I = 1 To myRan.Rows.Count
    If UCase(myRan.Cells(I, 1)) = UCase(cPlant) And myRan.Cells(I, 2) = cMon Then
        xSum = xSum + myRan.Cells(I, 3)
    ElseIf UCase(myRan.Cells(I, 1)) = UCase(cPlant) And myRan.Cells(I, 2) < cMon Then
        If myRan.Cells(I, 2) = maMon Then
            cSum = cSum + myRan.Cells(I, 3)
        ElseIf myRan.Cells(I, 2) > maMon Then
            maMon = myRan.Cells(I, 2)
            cSum = myRan.Cells(I, 3)
        End If
    End If
Next I
If xSum > 0 Then MarcoStra = xSum Else If cSum > 0 Then MarcoStra = cSum
End Function

Metti il codice in un Modulo standard del vba, poi sul foglio potrai usare una formula del tipo:
Codice: Seleziona tutto
=MarcoStra(B2:D12;C15;C14)


Piu' in generale la sintassi di MarcoStra e':
Codice: Seleziona tutto
=MarcoStra(lAreaDeiDati;Mese;Impianto)


Il risultato va formattato come la natura dei dati impone

Prova e fai sapere...
Avatar utente
Anthony47
Moderatore
 
Post: 19441
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: cerca.vert in matr.somma.prodotto

Postdi marcoc » 19/09/20 20:56

ciao Anthony,
grazie per la risposta, funziona perfettamente (come sempre).
Purtroppo non ho dimestichezza col visual basic, dovrei fare pratica in qualche modo; ora devo riuscire ad adattare la cosa al mio file originario, più complesso, che mi serve per lavoro.
Alla prossima!
Avatar utente
marcoc
Utente Senior
 
Post: 324
Iscritto il: 22/03/07 21:58
Località: Nerviano

Re: cerca.vert in matr.somma.prodotto

Postdi marcoc » 19/09/20 21:57

ciao Anthony, ci sto provando ma non ci sto riuscendo...
nel mio file ho "impianto" da A4 a A2000, "mese" da G4 a G2000 e "valore" da Q4 a Q2000.
"Selezione impianto" in A2 e "selezione mese" in E2.
Come posso adattare quanto scrivere nel modulo al mio caso reale?
Avatar utente
marcoc
Utente Senior
 
Post: 324
Iscritto il: 22/03/07 21:58
Località: Nerviano

Re: cerca.vert in matr.somma.prodotto

Postdi Anthony47 » 19/09/20 22:08

Se la tabella e' a tre colonne non ci sono problemi.
Tieni presente che nella macro, nei vari "Cells(x,y), il riferimento y=1 punta alla colonna dell'Impianto; 2 al mese; 3 al valore da prelevare. Eventualmente adatta gli indici alla tua tabella

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

Re: cerca.vert in matr.somma.prodotto

Postdi marcoc » 19/09/20 22:24

Fatto, ora tutto gira.
Grazie mille!
Avatar utente
marcoc
Utente Senior
 
Post: 324
Iscritto il: 22/03/07 21:58
Località: Nerviano


Torna a Applicazioni Office Windows


Topic correlati a "cerca.vert in matr.somma.prodotto":


Chi c’è in linea

Visitano il forum: Nessuno e 47 ospiti

cron