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: 2313
Registriert: 26.03.2004 00:21
Wohnort: Blashyrkh

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

Beitrag von Leviathane »

Das ist eine klassische SUMMEWENNS-Formel.
Benutzeravatar
Nagrach
Stammposter
Stammposter
Beiträge: 6630
Registriert: 26.03.2004 00:21
Wohnort: Azeroth
Kontaktdaten:

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

Beitrag von Nagrach »

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: 8440
Registriert: 26.03.2004 00:21
Wohnort: Lylesburg
Kontaktdaten:

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

Beitrag von Feindin »

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.
Benutzeravatar
Kaleun Thomsen
Beiträge: 10437
Registriert: 22.01.2010 10:50
Wohnort: Leipzig

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

Beitrag von Kaleun Thomsen »

Lol, was?
Swingtime is good time, good time is better time!
Benutzeravatar
Mustafa_Manson
Beiträge: 3245
Registriert: 26.03.2004 00:21
Wohnort: Straubing

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

Beitrag von Mustafa_Manson »

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