Conta se doppia condizione

Versione Completa   Stampa   Cerca   Utenti   Iscriviti     Condividi : FacebookTwitter
aikon36482
00giovedì 26 gennaio 2017 09:35
Buongiorno,
impostati i dati come nel file Esempio, ho fatto una macro che conti per ogni città il numero di occorrenze del mese.
Questa macro non funziona, perchè secondo voi?
Nella colonna C del file c'è il risultato atteso, mentre nella colonna D c'è il risultato della macro:

Sub prova()
ur = Worksheets("Foglio1").Cells(Rows.Count, 1).End(xlUp).Row
j = 2
For i = 2 To ur
Worksheets("Foglio1").Select
Set rangecitta = Worksheets("Foglio1").Range("A:A")
Set rangedata = Worksheets("Foglio1").Range("B:B")
citta = Worksheets("Foglio1").Range("A" & i)
data = Worksheets("Foglio1").Range("A" & i)
conta = Application.CountIfs(rangecitta, citta, rangedata, Month(data))
Range("D" & i).Value = conta
Next i
End Sub



alfrimpa
00giovedì 26 gennaio 2017 14:41
Scusa aikon in colonna D non c'è nulla.

Puoi ripostare il file con il risultato corretto inserito a mano?

Io ho provato la macro ma mi va in errore.
aikon36482
00giovedì 26 gennaio 2017 14:48
Ho rimesso l'allegato con la colonna D
alfrimpa
00giovedì 26 gennaio 2017 16:04
Ciao aikon

ma perché vuoi ricorrere al VBA quando puoi fare tutto con le formule?

In colonna E2 metti questa formula

=MESE(B2)


e trascini in basso.

In F2 metti questa

=CONTA.PIÙ.SE($A$2:$A$11;A2;$E$2:$E$11;E2)


e trascini in basso.
aikon36482
00giovedì 26 gennaio 2017 17:21
Mi serve il codice vba perchè questa procedura è all'interno di un processo un po' più ampio.
La procedura da te suggerita è possibile implementarla in vba?
Grazie.
alfrimpa
00venerdì 27 gennaio 2017 09:57
Ciao Aikon

Mi riesce difficile capire perché, anche in presenza di un progetto VBA, non possa usare le formule [SM=x423023] comunque in colonna D da D2 in poi inserisci la formula (eventualmente nascondi la colonna D)

=MESE(B2)


ed esegui questa macro

vb
Sub ContaPiu()
Dim i As Long
Dim mese As Integer
Dim urCitta As Long
Dim urMeseData As Long
Dim conta As Long
Dim rngCitta As Range
Dim rngMeseData As Range
urCitta = Cells(Rows.Count, 1).End(xlUp).Row
urMeseData = Cells(Rows.Count, 4).End(xlUp).Row
Set rngCitta = Range("A2:A" & urCitta)
Set rngMeseData = Range("d2:d" & urMeseData)
For i = 2 To urMeseData
    conta = Cells(Rows.Count, 3).End(xlUp).Row
    mese = Month(Range("c" & i).Offset(0, -1).Value)
    Cells(conta + 1, 3).Value = Application.WorksheetFunction.CountIfs(rngCitta, Range("c" & i).Offset(0, -2).Value, rngMeseData, mese)
Next i
End Sub
Questa è la versione 'lo-fi' del Forum Per visualizzare la versione completa clicca qui
Tutti gli orari sono GMT+01:00. Adesso sono le 19:14.
Copyright © 2000-2024 FFZ srl - www.freeforumzone.com