Summierung die Zweite

04/08/2008 - 16:27 von Hans Otany | Report spam
Hallo,

ich habe eine àhnliche Aufgabenstellung wie die im Thema "Summierung" in
dieser NG vom 01.08.2008 um 11.33 Uhr.
Ich habe die Lösung von Peter Schleif um 13.07 Uhr benutzt denn die finde
ich ziehmlich elegant.
Bei mir ist die Sachen nun doch noch etwas anders geworden. Meine Tabelle
sieht so aus:

Datum Wert_1 Wert_2
01.07.2008 20
01.07.2008 30
01.07.2008 15
02.07.2008 30
02.07.2008 16
03.07.2008 12
03.07.2008 30
03.07.2008 10

es soll in eine Tabelle die folgendermaßen aussieht:

Datum Wert_1 Wert_2
01.07.2008 35 30
02.07.2008 46
03.07.2008 52

Ich habe jetzt jeden Wert einzeln durchlaufen lassen aber das Array wird
dann natürlich immer überschrieben und Tage wo Wert_1 leer sind rücken auf
und werden dann mit Wert_2 überschrieben.

Kann mir jemand sagen, wie ich die Werte eines Datums addieren und die Summe
dem Richtigen Datum der fertigen Tabellen zuordnen kann?


Vielen Dank.

Beste Grüße.

Hans
 

Lesen sie die antworten

#1 Peter Schleif
04/08/2008 - 16:47 | Warnen spam
Hans Otany schrieb am 04.08.2008 16:27 Uhr:

ich habe eine àhnliche Aufgabenstellung wie die im Thema "Summierung" in
dieser NG vom 01.08.2008 um 11.33 Uhr.

[...]

Ich habe jetzt jeden Wert einzeln durchlaufen lassen aber das Array wird
dann natürlich immer überschrieben und Tage wo Wert_1 leer sind rücken auf
und werden dann mit Wert_2 überschrieben.

Kann mir jemand sagen, wie ich die Werte eines Datums addieren und die Summe
dem Richtigen Datum der fertigen Tabellen zuordnen kann?



Du könntest zwei Dictionaries verwenden. Eins speichert die Paare
Datum/Wert1 und das andere die Paare Datum/Wert2. Nach dem
Aufsummieren beide in die passenden Spalten transponieren. Etwa so:

Peter


Sub summierung_mit_zwei_dic()
Dim z As Long
Dim summe1 As Object
Dim summe2 As Object

Const ZIEL_SPALTE = 5

Set summe1 = CreateObject("Scripting.Dictionary")
Set summe2 = CreateObject("Scripting.Dictionary")

For z = 2 To Cells(Rows.Count, "A").End(xlUp).Row
summe1(Cells(z, "A").Value) = _
summe1(Cells(z, "A").Value) + Cells(z, "B").Value
summe2(Cells(z, "A").Value) = _
summe2(Cells(z, "A").Value) + Cells(z, "C").Value
Next

Cells(2,ZIEL_SPALTE).Resize(Rows.Count-1, 3).ClearContents

Cells(2,ZIEL_SPALTE+0).Resize(summe1.Count) _
= Application.Transpose(summe1.Keys)
Cells(2,ZIEL_SPALTE+1).Resize(summe1.Count) _
= Application.Transpose(summe1.Items)
Cells(2,ZIEL_SPALTE+2).Resize(summe1.Count) _
= Application.Transpose(summe2.Items)

Cells(2,ZIEL_SPALTE).Resize(summe1.Count,3).Replace "0", ""
End Sub

Ähnliche fragen