PDA

Vollständige Version anzeigen : VerwendungsORTE v Materialnummern in einer Zeile gruppieren?


selidor
27.02.2008, 09:34
Hallo zusammen,

ich habe folgendes Problem:

Ich habe eine Liste mit mehreren 1000 Datensätzen. Spalte A Materialnummern und Spalte B der Ort der Verwendung.
Materialnummer A z.B. hat 11 verschiedene Verwendungen, sprich 11 Zeilen mit Materialnummer A.
Wie kann ich nun in nuer einer Zeile zu dieser Materialnummer alle 11 Verwendungen zusammenfassen?
Aus den 11 Zeilen soll also 1 werden, in Spalte A steht dann z.B. 450211190 und in Spalte B die einzelnen Vernwendungen AGC01 / AGK31 / AGK33, etc...

Kann mir jemand bei diesem Problem weiterhelfen?

Woody
27.02.2008, 10:05
Moin selidor,

In Spalte A stehen die Materialnummern,
in Spalte B die Verwendungen und
in Spalte D die Matarialnummern (ohne Doppler) - (kannst per Spezialfilter ohne Dublikate kopieren)

In Spalte E könntest du die erste Verwendung mit +INDEX($B:$B;VERGLEICH($D1;$A:$A;0)) anziehen.
In Spalte F könntest du die zweite Verwendung mit +INDEX($B:$B;VERGLEICH($D1;$A:$A;0)+1) anziehen.
In Spalte G könntest du die dritte Verwendung mit +INDEX($B:$B;VERGLEICH($D1;$A:$A;0)+2) anziehen.
...usw.

pefeu
27.02.2008, 10:21
Hallo Selidor,

so sollte es gehen, wobei die Daten in ein neues Tabellenblatt kopiert werden - von Tabelle1 in Tabelle2.
<FONT FACE="Arial,FixedSys"Size=2>
<Blockquote>
&lt;FONT&nbsp;FACE="Arial,FixedSys"Size=2&gt;
&lt;Blockquote&gt;
&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Option Explicit</FONT>&lt;/FONT&gt;

&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Public Sub</FONT>&lt;/FONT&gt;&amp;nbsp;Zusammenfassen()

&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Dim</FONT>&lt;/FONT&gt;&amp;nbsp;WkSh_Q&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>As</FONT>&lt;/FONT&gt;&amp;nbsp;Worksheet
&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Dim</FONT>&lt;/FONT&gt;&amp;nbsp;WkSh_Z&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>As</FONT>&lt;/FONT&gt;&amp;nbsp;Worksheet
&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Dim</FONT>&lt;/FONT&gt;&amp;nbsp;lLetzte&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>As Long</FONT>&lt;/FONT&gt;
&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Dim</FONT>&lt;/FONT&gt;&amp;nbsp;lZeile_Q&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>As Long</FONT>&lt;/FONT&gt;
&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Dim</FONT>&lt;/FONT&gt;&amp;nbsp;lZeile_Z&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>As Long</FONT>&lt;/FONT&gt;
&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Dim</FONT>&lt;/FONT&gt;&amp;nbsp;iSpalte&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>As Integer</FONT>&lt;/FONT&gt;
&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Dim</FONT>&lt;/FONT&gt;&amp;nbsp;sMat_Nr&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>As String</FONT>&lt;/FONT&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.ScreenUpdating&amp;nbsp;=&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt; <FONT COLOR=#0000FF>False</FONT>&lt;/FONT&gt;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Set</FONT>&lt;/FONT&gt;&amp;nbsp;WkSh_Q&amp;nbsp;=&amp;nbsp;Worksheets("Tabelle1")&amp;nbsp;&lt;FONT&nbsp;COLOR=#008000&gt;<FONT COLOR=#008000>'&amp;nbsp;&amp;lt;==&amp;nbsp;den&amp;nbsp;Tabellenblattnamen&amp;nbsp;ggf.&amp;nbsp;anpassen&amp;nbsp;!!!&lt; /FONT&gt;</FONT>
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Set</FONT>&lt;/FONT&gt;&amp;nbsp;WkSh_Z&amp;nbsp;=&amp;nbsp;Worksheets("Tabelle2")&amp;nbsp;&lt;FONT&nbsp;COLOR=#008000&gt;<FONT COLOR=#008000>'&amp;nbsp;&amp;lt;==&amp;nbsp;den&amp;nbsp;Tabellenblattnamen&amp;nbsp;ggf.&amp;nbsp;anpassen&amp;nbsp;!!!&lt; /FONT&gt;</FONT>

&amp;nbsp;&amp;nbsp;&amp;nbsp;lLetzte&amp;nbsp;=&amp;nbsp;WkSh_Q.Cells(Rows.Count,&amp;nbsp;1).End(xlUp) .Row
&amp;nbsp;&amp;nbsp;&amp;nbsp;lZeile_Z&amp;nbsp;=&amp;nbsp;1

&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>For</FONT>&lt;/FONT&gt;&amp;nbsp;lZeile_Q&amp;nbsp;=&amp;nbsp;2&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>To</FONT>&lt;/FONT&gt;&amp;nbsp;lLetzte
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>If</FONT>&lt;/FONT&gt;&amp;nbsp;sMat_Nr&amp;nbsp;=&amp;nbsp;""&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Then</FONT>&lt;/FONT&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sMat_Nr&amp;nbsp;=&amp;nbsp;WkSh_Q .Cells(lZeile_Q,&amp;nbsp;1).Value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lZeile_Z&amp;nbsp;=&amp;nbsp;lZeil e_Z&amp;nbsp;+&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WkSh_Z.Cells(lZeile_Z,&amp;nbs p;1).Value&amp;nbsp;=&amp;nbsp;sMat_Nr
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iSpalte&amp;nbsp;=&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>End If</FONT>&lt;/FONT&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>If</FONT>&lt;/FONT&gt;&amp;nbsp;sMat_Nr&amp;nbsp;=&amp;nbsp;WkSh_Q.Cells(lZeile_Q,&amp;nbsp;1).Value&amp;nbsp;&lt;FONT&nbsp;C OLOR=#0000FF&gt;<FONT COLOR=#0000FF>Then</FONT>&lt;/FONT&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iSpalte&amp;nbsp;=&amp;nbsp;iSpalt e&amp;nbsp;+&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WkSh_Z.Cells(lZeile_Z,&amp;nbs p;iSpalte).Value&amp;nbsp;=&amp;nbsp;WkSh_Q.Cells(lZeile_Q,&amp;nbsp;2).Value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Else</FONT>&lt;/FONT&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;sMat_Nr&amp;nbsp;=&amp;nbsp;WkSh_Q .Cells(lZeile_Q,&amp;nbsp;1).Value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;lZeile_Z&amp;nbsp;=&amp;nbsp;lZeil e_Z&amp;nbsp;+&amp;nbsp;1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WkSh_Z.Cells(lZeile_Z,&amp;nbs p;1).Value&amp;nbsp;=&amp;nbsp;sMat_Nr
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;WkSh_Z.Cells(lZeile_Z,&amp;nbs p;2).Value&amp;nbsp;=&amp;nbsp;WkSh_Q.Cells(lZeile_Q,&amp;nbsp;2).Value
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;iSpalte&amp;nbsp;=&amp;nbsp;2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>End If</FONT>&lt;/FONT&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>Next</FONT>&lt;/FONT&gt;&amp;nbsp;lZeile_Q

&amp;nbsp;&amp;nbsp;&amp;nbsp;Application.ScreenUpdating&amp;nbsp;=&amp;nbsp;&lt;FONT&nbsp;COLOR=#0000FF&gt; <FONT COLOR=#0000FF>True</FONT>&lt;/FONT&gt;

&lt;FONT&nbsp;COLOR=#0000FF&gt;<FONT COLOR=#0000FF>End Sub</FONT>&lt;/FONT&gt;&amp;nbsp;}

&lt;/Blockquote&gt;
&lt;FONT&nbsp;FACE="Courier&nbsp;New,FixedSys"Size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;Code&nbsp;eingef&uuml;gt&nbsp;mit&nbsp;&lt;b&gt;&lt;a&nbsp;href="http://rtsoftwaredevelopment.de"&nbsp;target="_blank"&gt;Syntaxhighlighter&nbsp;4.4&lt;/a&gt;&lt;/b&gt;&lt;/FONT&gt;
&lt;FONT&nbsp;FACE="Arial,FixedSys"Size=2&gt;&nbsp;

</Blockquote>
<FONT FACE="Courier New,FixedSys"Size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Code eingefügt mit <b><a href="http://rtsoftwaredevelopment.de" target="_blank">Syntaxhighlighter 4.4</a></b></FONT>
<FONT FACE="Arial,FixedSys"Size=2>
Gruß Peter

selidor
27.02.2008, 15:01
Woodys Vorschlag ging schon mal in die richtige Richtung, da aber leider die Anzahl der Verwendungen von Mat-Nr zu Mat-Nr unterschiedlich ist müsste ich dann trotzdem nochmal über jede drüber gehen, da z.B. die erste 11 Verwendungen hat und wenn ich die Formeln runter kopiere auf die nächste Mat-Nr. mit nur 3 Verwendungen geben die restlichen 8 Formeln bereits die Verwendung der nächsten Mat-Nr aus...
Sofern das einigermaßen klar ausgedrückt war =)
Mit dem Quelltext aus dem zweiten Beitrag kann ich leider grad gar nichts anfangen - muss dazu sagen, dass ich ein absoluter Excel-Noob bin...
Ich versuche aber gleich mal die Tabelle anzuhängen...

selidor
27.02.2008, 15:07
So, ich habe mal einen Auszug aus der Tabelle angehängt.
Auf Seite "Ist" ist der aktuelle Zustand dargestellt und unter "Wunsch" das erwünschte Ergebnis...
Vielleicht hat noch jemand Tipps.
Noch als Anmerkung... das ganze will ich über mehrere Tausend Mat.-Nr. machen, daher die Suche nach einer einfachen Lösung....

Woody
27.02.2008, 15:19
Sorry selidor,

ich hätte wohl mehr testen müssen.

Ich habe in meinen Versuchsaufbau mal in Zeile 1 in E1 mit einer 1 beginnend, (2, 3, 4, 5 usw.) einen Index der Verwendungen eingetragen.
In Zelle E2 habe ich dann diese Formel nun eingetragen:
=WENN(E$1<=ZÄHLENWENN($A:$A;$D2);INDEX($B:$B;VERGLEICH($D2;$A:$A;0)+E$1-1);"")

Sie zählt die Häufigkeit der Materialnummer und gleicht das mit dem Index ab.

selidor
27.02.2008, 15:49
Hmm, also entweder ich stell mich gerade ganz doof an, oder in der Formel stimmt trotzdem noch etwas nicht... kannst du es mal an meiner angehängten Tabelle probieren und mir diese mit deinen Formeln wieder hochladen?
Übrigens schon jetzt 1000 Dank für deine Hilfe, wenn es klappt ersparst du mir ne riesen Arbeit!

selidor
27.02.2008, 15:54
Ich nehm alles zurück und behaupte das Gegenteil!!!
Mit deiner Formel klappt es perfekt, ich war nur zu doof =)
Tausend Dank!!!

Gibt es nun vielleicht noch eine Möglichkeit die einzelnen Verwendungen aus E2:E14 z.B. in E2 mit einem Komma als Teiler zusammenzuziehen?
Und das wieder bis runter und unabhängig von der Anzahl der Verwendungen?

Woody
27.02.2008, 16:07
Prima, das es geklappt hat.

Was du nun suchst ist vermutlich das einfache Zellen verknüpfen á la =E2&", "&F2&", "&...usw...&Z2

Berti_S
28.02.2008, 08:49
Hallo selidor,

habe dir noch mal schnell was in VBA gebastelt.
Das erschlägt dein Problem hoffentlich genausogut.


Berti