Seite 2 von 2
Re: Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen
Verfasst: 03.07.2019 20:16
von Leviathane
Das ist eine klassische SUMMEWENNS-Formel.
Re: Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen
Verfasst: 03.07.2019 20:41
von Nagrach
Leviathane hat geschrieben:Das ist eine klassische SUMMEWENNS-Formel.
Merci
Re: Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen
Verfasst: 04.07.2019 07:44
von Feindin
Summewenn würde ich probieren
Re: Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen
Verfasst: 04.07.2019 18:54
von Kaleun Thomsen
Lol, was?
Re: Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen
Verfasst: 04.07.2019 21:01
von Mustl
Eine schöne Gelegenheit, nach Jahren mal wieder mit VBA zu spielen.*g*
Mit Script/Makro würde es etwa so gehen (unter vereinfachter Annahme, daß in Spalte B nur Ganzzahlen stehen):
Private Type Person
Name As String
Zeit As Integer
End Type
Sub summen()
Dim sh As Worksheet
Dim Personen() As Person
Set sh = ActiveSheet
Dim zeilenGesamt As Integer
zeilenGesamt = sh.UsedRange.Rows.Count
Dim zeileAktuell As Integer
For zeileAktuell = 1 To zeilenGesamt
Dim index As Integer
If (Not Not Personen) <> 0 Then
Dim gefunden As Boolean
gefunden = False
For index = 1 To UBound(Personen)
If sh.Cells(zeileAktuell, 1).Value = Personen(index).Name Then
Dim aktuelleZeit As Integer
aktuelleZeit = sh.Cells(zeileAktuell, 2).Value
Dim aktuelleSumme As Integer
aktuelleSumme = aktuelleZeit + Personen(index).Zeit
Personen(index).Zeit = aktuelleSumme
gefunden = True
End If
Next index
If gefunden = False Then
ReDim Preserve Personen(UBound(Personen) + 1)
Dim neuePerson As Person
neuePerson.Name = sh.Cells(zeileAktuell, 1).Value
neuePerson.Zeit = sh.Cells(zeileAktuell, 2).Value
Personen(UBound(Personen)) = neuePerson
End If
Else
ReDim Personen(1)
Dim erstePerson As Person
erstePerson.Name = sh.Cells(zeileAktuell, 1).Value
erstePerson.Zeit = sh.Cells(zeileAktuell, 2).Value
Personen(1) = erstePerson
End If
Next zeileAktuell
Dim Zeile As Integer
Zeile = 1
Dim indexPerson As Integer
For indexPerson = 1 To UBound(Personen)
sh.Cells(Zeile, 3).Value = Personen(indexPerson).Name
sh.Cells(Zeile, 4).Value = Personen(indexPerson).Zeit
Zeile = Zeile + 1
Next indexPerson
End Sub
Damit wird aus dem
a 8
b 8
a 8
b 8
c 8
d 8
das
a 8 a 16
b 8 b 16
a 8 c 8
b 8 d 8
c 8
d 8