PDA

Vollständige Version anzeigen : N Spalten und N Zeilen in eine Spalte überführen


Hennes
29.06.2006, 15:45
Hallo Forum,

also ich stehe auf dem Schlauch oder es ist echt so eine unübliche Frage:

In einer Excel Tabelle werden in den Zeilen A bis Z die verschiedenen Leistungen der Teilnehmer angeben.
Jeder der mindestens eine Leistung hat kriegt eine Zeile in der dann die Leistungen drinstehen. Das Problem ist, dass ich jetzt die Anzahl der verschiedenen Leistungsarten angezeigt bekommen möchte.
Aufwändig wäre es wenn ich alle erfassten Leistungen per Hand untereinander stellen würde und die doppelten Leistungsarten rauslöschen würde. Bei 500 Teilnehmern und ca. 300 Leistungsarten ist das aber keine schöne Vorstellung.

Kann mir da jemand helfen?

Danke Hennes

P.S. Die Datenstruktur habe ich nicht angelegt oder besser gesagt zu verantworten!

jinx
29.06.2006, 15:48
<font size="2" face="Century Gothic">Moin, Hennes,

ist es vermessen, die "Datenaufbereitung" vorher und nachher als Anhang geliefert zu bekommen? Bisher würde ich da nämlich auch auf eine Pivottabelle tippen...</font>

Hennes
29.06.2006, 16:04
Hallo,
also mit Pivot geht es glaube ich nicht. (Ich hoffe jedenfalls auch nicht, da ich mir sonst blöd vorkommen würde...). Aus dem Blatt nach her würde ich dann halt die doppelten per Makro löschen und mit Zählenwenn hätte ich dann die Auswertung!

Danke für die Hilfe

jinx
29.06.2006, 16:21
<font size="2" face="Century Gothic">Moin, Hennes,

vielleicht als Ansatz:

<div><link href="http://www.ms-office-forum.net/forum/externals/codeconv.css" rel="stylesheet"><pre><span class="TOKEN">Option</span> <span class="TOKEN">Explicit</span>
&nbsp;
<span class="TOKEN">Sub</span> Hennes()
<span class="TOKEN">Dim</span> lngCol <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
<span class="TOKEN">Dim</span> lngRow <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
<span class="TOKEN">Dim</span> wksOrg <span class="TOKEN">As</span> Worksheet
<span class="TOKEN">Dim</span> wksTar <span class="TOKEN">As</span> Worksheet
<span class="TOKEN">Dim</span> lngCounter <span class="TOKEN">As</span> <span class="TOKEN">Long</span>
<span class="TOKEN">Dim</span> rngCell <span class="TOKEN">As</span> Range
Application.ScreenUpdating = <span class="TOKEN">False</span>
<span class="TOKEN">Set</span> wksTar = Worksheets.Add
<span class="TOKEN">Set</span> wksOrg = Sheets(&quot;vorher&quot;)
<span class="TOKEN">With</span> wksOrg
lngCol = .Cells(1, Columns.Count).End(xlToLeft).Column
lngRow = .Cells(Rows.Count, 1).End(xlUp).Row
<span class="TOKEN">For</span> <span class="TOKEN">Each</span> rngCell <span class="TOKEN">In</span> .Range(.Cells(2, 2), .Cells(lngRow, lngCol))
<span class="TOKEN">If</span> <span class="TOKEN">Not</span> IsEmpty(rngCell) <span class="TOKEN">Then</span>
<span class="TOKEN">If</span> WorksheetFunction.CountIf(wksTar.Range(&quot;A:A&quot;), rngCell.Value) = 0 <span class="TOKEN">Then</span>
lngCounter = lngCounter + 1
wksTar.Cells(lngCounter, 1).Value = rngCell.Value
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">End</span> <span class="TOKEN">If</span>
<span class="TOKEN">Next</span> rngCell
<span class="TOKEN">End</span> <span class="TOKEN">With</span>
<span class="TOKEN">Set</span> wksOrg = <span class="TOKEN">Nothing</span>
<span class="TOKEN">Set</span> wksTar = <span class="TOKEN">Nothing</span>
Application.ScreenUpdating = <span class="TOKEN">True</span>
<span class="TOKEN">End</span> <span class="TOKEN">Sub</span></pre></div>
Code eingefügt mit dem MOF Code Converter (http://www.ms-office-forum.net/forum/codeconverter.php)

Fehlerbehandlung fehlt - wie meistens... ;)</font>

Hennes
29.06.2006, 16:44
Hallo jinx,

super! vielen Dank! hattest du das parat oder extra geschrieben! Klappt auf jeden fall super. werden morgen noch an der Sortierung arbeiten und bin dir sehr dankbar!