Ich brauche Hilfe in dieser Abfrage.Excel VBA Sumifs sortieren und setzen
So habe ich diese Daten:
| A | B | C | D |
----------------------------------
Date int001 int002 int003
2/1/2016 10 11 12
2/2/2016 5 5 -5
2/3/2016 -4 -4 4
2/4/2016 5 5 -5
2/1/2016 2 -2 2
2/2/2016 -3 -2 -1
2/3/2016 1 1 1
2/4/2016 2 -1 3
2/1/2016 -4 -5 6
2/2/2016 -2 -2 2
2/3/2016 -1 1 -1
2/4/2016 -5 -3 1
Mit diesen Daten Ich brauche eine Summe zu berechnen, basierend auf einzigartige Daten und pozitive Werten.
Für erstes unique_date ich brauche:
- Summe der Spalte B, wo die Werte> 0 und in H2
- Summe der Spalte C eingestellt, wobei die Werte> 0 und eingestellt in H3
- Summe von Spalte D, wo die Werte> 0 und setzen in H4
Für zweite unique_date ich brauche:
- Summe der Spalte B, wo die Werte> 0 und in H5
- Summe der Spalte C, wo die Werte> 0 und eingestellt in H6 gesetzt
- Summe der Spalte D, wo die Werte> 0 und eingestellt in H7
Für dritte unique_date ich brauche:
- Summe der Spalte B, wo die Werte> 0 und in H8
- Summe der Spalte C eingestellt, wobei die Werte> 0 und eingestellt in H9
- Summe der Spalte D, wo die Werte> 0 und
Forth unique_date i müssen in H10 gesetzt:
- Summe der Spalte B, wo die Werte> 0 und gesetzt in H11
- sum die Spalte C, wo die Werte> 0 und in H12
- Summe der Spalte D, wo die Werte> 0 und gesetzt in H13
Die Spalte "F" mit uniqu gesetzt Die Daten aus der Spalte "A" sind Arbeit. Aber die Spalte "H" funktioniert immer noch nicht.
Die Ergebnisse ich brauche, ist:
| F | H |
---------------------
Uniq Dates Results:
2/1/2016 12
2/2/2016 11
2/3/2016 20
2/4/2016 5
5
2
1
2
5
7
5
4
Dies ist der Code, den ich schreiben:
Sub Tsum()
Dim int001 As Range
Dim int002 As Range
Dim int003 As Range
Dim data1 As Date
Dim data2 As Date
Dim data3 As Date
Dim nr_rows As Integer
Dim dates As Range
Dim nr_unique_dates As Integer
Dim unique_dates As Range
'--------------------------------------------------------------
nr_rows = Cells(Rows.Count, "A").End(xlUp).Row
Set int001 = Range("B2:B" & nr_rows)
Set int002 = Range("C2:C" & nr_rows)
Set int003 = Range("D2:D" & nr_rows)
Set dates = Range("A2:A" & nr_rows)
'--------------------------------------------------------------
Range("A1:A" & nr_rows).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("F1"), Unique:=True
nr_unique_dates = Cells(Rows.Count, "F").End(xlUp).Row
Set unique_dates = Range("F2:F" & nr_unique_dates)
Range("H2:H" & nr_rows) = Application.WorksheetFunction.SumIfs(dates, int001, int002, int003, unique_dates, int001, int002, int003, ">0")
End Sub
---- Das Problem irgendwo unten ist, weil ich weiß nicht, wie man loop es
Range("H2:H" & nr_rows) = Application.WorksheetFunction.SumIfs(dates, int001, int002, int003, unique_dates, int001, int002, int003, ">0")
Vielen Dank und sorry für meine erste Erklärung. Ich bearbeite den Post mit den richtigen Informationen. Ihr Code macht die Summe für Spalten (B + C + D), und ich möchte separat. Kannst du mir damit helfen? – BOB
siehe bearbeitete Antwort. Wenn ich Ihre Frage erfüllt habe, markieren Sie diese als akzeptiert. danke – user3598756
Wenn ich ein anderes Datum (2/4/2016) mit Werten für int001, int002 und int003 einführe, werden die Ergebnisse um 1 Leerzeichen verschoben, das leer oder 0 ist. Wie kann ich dieses Problem lösen? – BOB