Condividi:        

Conta se + cerca verticale

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

Conta se + cerca verticale

Postdi ingtech » 01/07/13 16:00

Buonasera a tutti,

ho questo dubbio.
Vorrei creare una formula che mi genera un "conta.se.più" con un cerca verticale o qualcosa del genere.
nel file che allego, c'è un esempio di 3 codici con date inizio e fine.
Nell'altro foglio di lavoro(foglio 1) ci sono i 3 codici.
io vorrei fare in modo che il programmino cerca il codice 1 ad esempio e va nell'altro foglio dove conta i valori "L" che si trovano nell'intervallo delle date indicate di fianco ad ogni codice nel "foglio2".

spero di essermi spiegato.

vi ringrazio

LINK:
https://www.dropbox.com/s/vi0td3r5xed9ceg/File%20prova.xlsx
ingtech
Utente Junior
 
Post: 22
Iscritto il: 29/10/12 11:39

Sponsor
 

Re: Conta se + cerca verticale

Postdi Flash30005 » 02/07/13 03:19

Prova questa macro
Codice: Seleziona tutto
Sub ContaL()
Set Ws1 = Worksheets("Foglio1")
Set Ws2 = Worksheets("Foglio2")
UC1 = Ws1.Cells(5, Columns.Count).End(xlToLeft).Column
UR1 = Ws1.Range("G" & Rows.Count).End(xlUp).Row
UR2 = Ws2.Range("E" & Rows.Count).End(xlUp).Row
Ws2.Range("H9:H10000").ClearContents
For RR2 = 9 To UR2
DataIni = Ws2.Cells(RR2, 6).Value
DataFine = Ws2.Cells(RR2, 7).Value
For RR1 = 6 To UR1
    If Ws2.Range("E" & RR2).Value = Ws1.Range("G" & RR1).Value Then
    TrI = 0
    TrF = 0
        For CC1 = 8 To UC1
        If Ws1.Cells(5, CC1).Value = DataIni Then
            CCI = CC1
            CCF = 0
            TrI = 1
            For CC1F = CC1 To UC1
                If Ws1.Cells(5, UC1).Value < DataFine Then
                    CCF = UC1
                Else
                    If Ws1.Cells(5, CC1F).Value = DataFine Then
                        TrF = 1
                        CCF = CC1F
                    End If
                End If
                If CCF > 0 Then
                    For CCL = CCI To CCF
                        If Ws1.Cells(RR1, CCL).Value = "L" Then
                            Ws2.Range("H" & RR2).Value = Ws2.Range("H" & RR2).Value + 1
                        End If
                    Next CCL
                End If
            Next CC1F
        End If
        Next CC1
    End If
Next RR1
If TrI = 0 Then MsgBox "Data Inizio non trovata nel " & Ws2.Cells(RR2, 5).Value
If TrF = 0 Then MsgBox "Data Fine non trovata nel " & Ws2.Cells(RR2, 5).Value
Next RR2
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: Conta se + cerca verticale

Postdi scossa » 02/07/13 11:57

ingtech ha scritto:Buonasera a tutti,

ho questo dubbio.
Vorrei creare una formula che mi genera un "conta.se.più" con un cerca verticale o qualcosa del genere.
nel file che allego, c'è un esempio di 3 codici con date inizio e fine.
Nell'altro foglio di lavoro(foglio 1) ci sono i 3 codici.
io vorrei fare in modo che il programmino cerca il codice 1 ad esempio e va nell'altro foglio dove conta i valori "L" che si trovano nell'intervallo delle date indicate di fianco ad ogni codice nel "foglio2".


Probabilmente non ho capito la tua richiesta ed effettivamente serve una macro come quella proposta da Flash (ciao), ma scrivere correttamente (eliminando alcuni $ che blocccano i riferimenti) la formula che hai usato non basta?

Codice: Seleziona tutto
=CONTA.PIÙ.SE(Foglio1!$H6:$O6;"L";Foglio1!$H$5:$O$5;">=" & F9;Foglio1!$H$5:$O$5;"<=" & G9)
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 427
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona


Torna a Applicazioni Office Windows


Topic correlati a "Conta se + cerca verticale":


Chi c’è in linea

Visitano il forum: Nessuno e 52 ospiti