Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen

Hier gehts um Spiele, Film und Fernsehen, Software und ähnliches
Benutzeravatar
Leviathane
Stammposter
Stammposter
Beiträge: 2084
Registriert: 26.03.2004 00:21
Wohnort: Blashyrkh

Re: Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen

Beitrag von Leviathane » 03.07.2019 20:16

Das ist eine klassische SUMMEWENNS-Formel.

Benutzeravatar
Nagrach
Stammposter
Stammposter
Beiträge: 6330
Registriert: 26.03.2004 00:21
Wohnort: Azeroth
Kontaktdaten:

Re: Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen

Beitrag von Nagrach » 03.07.2019 20:41

Leviathane hat geschrieben:Das ist eine klassische SUMMEWENNS-Formel.
Merci
Ich hatte einen Traum und dieser Traum war wundervoll.
Europacup - Es war ein Auswärtsspiel, in Amsterdam.

Benutzeravatar
Feindin
Moderator
Moderator
Beiträge: 7991
Registriert: 26.03.2004 00:21
Wohnort: Lylesburg
Kontaktdaten:

Re: Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen

Beitrag von Feindin » 04.07.2019 07:44

Summewenn würde ich probieren
Memory, prophecy and fantasy -
the past, the future and the dreaming moment between -
are all one country, living one immortal day.
To know that is wisdom.
To use it is the Art.

Kaleun Thomsen
Beiträge: 9629
Registriert: 22.01.2010 10:50
Wohnort: Leipzig

Re: Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen

Beitrag von Kaleun Thomsen » 04.07.2019 18:54

Lol, was?
Swingtime is good time, good time is better time!

Benutzeravatar
Mustafa_Manson
Beiträge: 3126
Registriert: 26.03.2004 00:21
Wohnort: Straubing

Re: Excel-Hilfe: Daten aus 1 Spalte auf mehrere Spalten aufteilen

Beitrag von Mustafa_Manson » 04.07.2019 21:01

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

Antworten