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