Daten aus gleichen Werten zusammenführen

Betrifft: Daten aus gleichen Werten zusammenführen
von: Tobaren
Geschrieben am: 12.10.2020 13:16:16
Hallo Miteinander,
ich habe folgendes Problem:
Ich muss mehrere verschiedene Spalten, die jedoch zum gleichen Namen gehören, in eine Zeile zusammenfassen. Ich stehe dabei komplett auf den Schlauch und weiß nicht, wie ich das anfangen soll.
Ich würde es ja händisch machen, es handelt sich aber um insgesamt 7500 Zeilen mit 1400 verschiedenen Namen, so dass es ein wenig anstrengend werden würde!
Hier die Datei, wie die Ausgangslage ist:
https://www.herber.de/bbs/user/140821.xlsx
Gibt's Ideen, wie ich das Ganze bewerkstelligen kann??
MfG

Betrifft: AW: Daten aus gleichen Werten zusammenführen
von: Günther
Geschrieben am: 12.10.2020 14:07:31
Moin,
das geht sehr schön über Daten | Abrufen und transformieren aka Power Query. =>
https://my.hidrive.com/lnk/1UgGjTmM
Gruß
Günther |
mein Excel-Blog
-.-.-.-
Da ich mich nicht mehr über den "eigenwilligen" Hindernislauf beim Foren-Upload ärgern will, stelle ich meine Uploads hier nur noch in meiner DE-Cloud zur Verfügung. Den Link findest du im Beitrags-Text. Abrufe sind natürlich freiwillig und werden selbstredend nicht ausgewertet.

Betrifft: AW: Daten aus gleichen Werten zusammenführen
von: Tobaren
Geschrieben am: 12.10.2020 15:06:03
Super, vielen Dank!!!! Ich denke, mit dem PowerQuery bekomme ich das hin :-)
Muss mich da zwar kurz reinfuchsen, aber damit komme ich defintiv zum Ergebnis.
Vielen Vielen Dank euch beiden!

Betrifft: AW: Daten aus gleichen Werten zusammenführen
von: Nepumuk
Geschrieben am: 12.10.2020 14:10:35
Hallo Tobias,
per VBA so:
Option Explicit
Public Sub Summe()
Dim avntValues As Variant, avntSumm() As Variant
Dim ialngIndex As Variant, ialngRow As Long, ialngTemp As Long
Dim objDicitionary As Object
Set objDicitionary = CreateObject(Class:="Scripting.Dictionary")
With Worksheets("Tabelle1")
avntValues = .Range(.Cells(2, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 7)).Value
End With
With objDicitionary
For ialngRow = LBound(avntValues, 1) To UBound(avntValues, 1)
If Not .Exists(Key:=avntValues(ialngRow, 1)) Then
Call .Add(Key:=avntValues(ialngRow, 1), Item:=ialngIndex)
Redim Preserve avntSumm(6, ialngIndex)
avntSumm(0, ialngIndex) = IIf(IsEmpty(avntValues(ialngRow, 1)), Empty, avntValues(ialngRow, 1))
avntSumm(1, ialngIndex) = IIf(IsEmpty(avntValues(ialngRow, 2)), Empty, avntValues(ialngRow, 2))
avntSumm(2, ialngIndex) = IIf(IsEmpty(avntValues(ialngRow, 3)), Empty, avntValues(ialngRow, 3))
avntSumm(3, ialngIndex) = IIf(IsEmpty(avntValues(ialngRow, 4)), Empty, avntValues(ialngRow, 4))
avntSumm(4, ialngIndex) = IIf(IsEmpty(avntValues(ialngRow, 5)), Empty, avntValues(ialngRow, 5))
avntSumm(5, ialngIndex) = IIf(IsEmpty(avntValues(ialngRow, 6)), Empty, avntValues(ialngRow, 6))
avntSumm(6, ialngIndex) = IIf(IsEmpty(avntValues(ialngRow, 7)), Empty, avntValues(ialngRow, 7))
ialngIndex = ialngIndex + 1
Else
ialngTemp = .Item(Key:=avntValues(ialngRow, 1))
avntSumm(1, ialngTemp) = IIf(Not IsEmpty(avntValues(ialngRow, 2)), _
avntSumm(1, ialngTemp) + avntValues(ialngRow, 2), avntSumm(1, ialngTemp))
avntSumm(2, ialngTemp) = IIf(Not IsEmpty(avntValues(ialngRow, 3)), _
avntSumm(2, ialngTemp) + avntValues(ialngRow, 3), avntSumm(2, ialngTemp))
avntSumm(3, ialngTemp) = IIf(Not IsEmpty(avntValues(ialngRow, 4)), _
avntSumm(3, ialngTemp) + avntValues(ialngRow, 4), avntSumm(3, ialngTemp))
avntSumm(4, ialngTemp) = IIf(Not IsEmpty(avntValues(ialngRow, 5)), _
avntSumm(4, ialngTemp) + avntValues(ialngRow, 5), avntSumm(4, ialngTemp))
avntSumm(5, ialngTemp) = IIf(Not IsEmpty(avntValues(ialngRow, 6)), _
avntSumm(5, ialngTemp) + avntValues(ialngRow, 6), avntSumm(5, ialngTemp))
avntSumm(6, ialngTemp) = IIf(Not IsEmpty(avntValues(ialngRow, 7)), _
avntSumm(6, ialngTemp) + avntValues(ialngRow, 7), avntSumm(6, ialngTemp))
End If
Next
End With
Set objDicitionary = Nothing
Worksheets("Tabelle1").Cells(2, 9).Resize(ialngIndex, 7) = Application.Transpose(avntSumm)
End Sub
Gruß
Nepumuk