Moderatori: Anthony47, Flash30005
=SOMMA.SE(A:A;C2;B:B)
Sub SommaPerData()
Range("C2:D10000").ClearContents
UR1 = Range("A" & Rows.Count).End(xlUp).Row
For RR1 = 2 To UR1
Tr = 0
DataM = Range("A" & RR1).Value
UR2 = Range("C" & Rows.Count).End(xlUp).Row + 1
For RR2 = 2 To UR2
Data2 = Range("C" & RR2).Value
If DataM = Data2 Then Tr = 1
Next RR2
If Tr = 0 Then
Ur3 = Range("C" & Rows.Count).End(xlUp).Row + 1
Range("C" & Ur3).Value = DataM
End If
Next RR1
UR2 = Range("C" & Rows.Count).End(xlUp).Row
For RR2 = 2 To UR2
Somma = 0
Data2 = Range("C" & RR2).Value
For RR1 = 2 To UR1
DataM = Range("A" & RR1).Value
If DataM = Data2 Then Range("D" & RR2).Value = Range("D" & RR2).Value + Range("B" & RR1).Value
Next RR1
Next RR2
End Sub
=SE(VAL.ERRORE(PICCOLO(SE(FREQUENZA(date;date);date);RIF.RIGA(A1)));"";PICCOLO(SE(FREQUENZA(date;date);date);RIF.RIGA(A1)))
=SE(VAL.ERRORE(INDICE(date;PICCOLO(SE(VAL.NUMERO(CONFRONTA(RIF.RIGA(date);CONFRONTA(date;date;0);0));CONFRONTA(date;date;0);"");RIGHE($A$1:A1))));"";INDICE(date;PICCOLO(SE(VAL.NUMERO(CONFRONTA(RIF.RIGA(date);CONFRONTA(date;date;0);0));CONFRONTA(date;date;0);"");RIGHE($A$1:A1))))
ninai ha scritto:-definire un nome per la colonna A (es. "date")
Flash30005 ha scritto:Si infatti funziona ma (forse) avevo interpretato male la specifica:ninai ha scritto:-definire un nome per la colonna A (es. "date")
non deve essere definito un nome per la colonna A (tutta) ma solo le righe che contengono i dati
ciao
Sub sumbydate()
Dim LastA As Long, NextJ As Long, I As Long
'
Range("C:D").ClearContents
Range("C1:D1").Value = Array("Data", "Somma")
LastA = Cells(Rows.Count, "A").End(xlUp).Row
For I = 2 To LastA
If Application.WorksheetFunction.CountIf(Range("A2").Resize(I - 1, 1), Cells(I, "A").Value) = 1 Then
NextJ = Cells(Rows.Count, 3).End(xlUp).Row + 1
Cells(NextJ, 3) = Cells(I, "A").Value
Cells(NextJ, 4).FormulaLocal = "=somma.se(A:A;C" & NextJ & ";B:B)" '<<1 Vedi testo
Cells(NextJ, 4).Value = Evaluate("=sumif(A:A,C" & NextJ & ",B:B)") '<<2 Vedi testo
End If
Next I
End Sub
Sub SumByDate()
Sheets("Daily").Select
Dim NrOrigine As Long, NextJ As Long, I As Long
Dim VarData
Dim VarNumero
NrDaily = Application.WorksheetFunction.Max(2, Cells(Rows.Count, "A").End(xlUp).Row)
Sheets("FoglioOrigine").Select
NrOrigine = Application.WorksheetFunction.Max(2, Cells(Rows.Count, "A").End(xlUp).Row)
'memorizzo i dati del foglio con le date originali
VarData = Range(Cells(1, 1), Cells(NrOrigine, 1)).Value ‘(SERVIREBBE POTER ORDINARE QUESTI DATI IN ORDINE CRONOLOGICO)
VarNumero = Range(Cells(1, 2), Cells(NrOrigine, 2)).Value
Sheets("Daily").Select
For I = 2 To NrOrigine
If VarData(I, 1) <> VarData(I - 1, 1) Then
d = d + 1: Cells(d, 1) = VarData(I, 1)
Cells(D, 2).Value = Evaluate("=SUMIF(VarData,A" & d & ",VarNumero)") ' QUESTA FORMULA DA ERRORE.
End If
Next I
End Sub
Torna a Applicazioni Office Windows
Macro modifica date scelta periodo Autore: Ricky0185 |
Forum: Applicazioni Office Windows Risposte: 11 |
Excel: problema con date se devo unirle a testi Autore: valle1975 |
Forum: Applicazioni Office Windows Risposte: 5 |
Date CUP Web prenotabili su foglio excel Autore: aggittoriu |
Forum: Applicazioni Office Windows Risposte: 17 |
Visitano il forum: Nessuno e 9 ospiti