Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1516to1520
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Umgedrehte Matrix

Umgedrehte Matrix
27.09.2016 06:52:53
Peter
Hallo zusammen
Ich stehe vor einer kleinen Herausforderung. Sie beginnt schon damit, dass ich nicht weiss, wie ich richtig danach suchen kann/soll. Ich möchte eine Matrix umkehren. Hier ein Beispiel als Erklärung:
Ich habe eine Liste mit Personen und den Früchten, die jeder mag (wobei es sehr viele Früchte (ca.40) und auch Personen (ca. 1000) sind).
Paul Bananen Birnen
Markus Äpfel Trauben Birnen
Stefan Trauben Bananen
Was ich nun brauche ist eine Liste, die mir zeigt, wer die selbe Frucht mag:
Bananen Paul Stefan
Birnen Paul Markus
Äpfel Markus
Trauben Stefan Markus
Für euch Excel-Götter ist das bestimmt keine Herausforderung. Wie soll ich das bewerkstelligen?
Wie sagt man dem, was ich hier möchte?
Danke für eure Hilfe

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Umgedrehte Matrix
27.09.2016 07:35:20
Matthias
Hallo
Würde ich so machen:
Tabelle1

 BCDEF
1NamenBananenBirnenÄpfelTrauben
2Paulxx  
3Markus xxx
4Stefanx  x


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Einfach ein Pivottable erstellen
Tabelle1

 BC
13Bananenx
14Birnen(Alle)
15Äpfel(Alle)
16Trauben(Alle)
17  
18Zeilenbeschriftungen 
19Paul 
20Stefan 
21Gesamtergebnis 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
https://www.herber.de/bbs/user/108429.xlsx
Gruß Matthias
Anzeige
AW: Umgedrehte Matrix
27.09.2016 08:42:32
Peter
Hallo Matthias
Vielen Dank für deine Hilfe.
Wenn ich die Liste selbst bestimmen könnte, würde ich das auf deine Art machen, wie du es beschrieben hast. Ich habe jedoch einen Export aus einem System, das mir Teams (Pickup) und Teilnehmer des Teams (Rufnummer) auflistet. Was ich brauche ist eine Liste mit den Rufnummern und den Teams, welche dieser Rufnummer zugewiesen wurde. Das würde dann so aussehen:
IST

 ABCDE
1PickupRN1RN2RN3RN…
2Empfang+41581111111+41581111112+41581111113 
3Lager 1+41582222221+41581111112  
4Lager 2+41583333331+41582222221+41583333332 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
SOLL

 ABCDE
1RNPickup1Pickup2Pickup3Pickup…
2+41581111111Empfang   
3+41581111112EmpfangLager 1  
4+41581111113Empfang   
5+41582222221Lager 1Lager 2  
6+41583333331Lager 2   
7+41583333332Lager 2   


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8


Wie komme ich aus der IST-Tabelle zur SOLL-Tabelle?
Ich danke erneut für euren Einsatz.
Gruss Peter
Anzeige
AW: Umgedrehte Matrix
27.09.2016 09:42:47
Daniel
Hi
mit Formeln schwierig.
per Markro mit Hilfe des Dictionary-Objekts recht einfach.
probiere mal diesen Code.
die Ausangsdaten müssen wie beschrieben im tabellenblatt "IST" liegen
das Ergebnis wird ins Tabellenblatt "SOLL" geschrieben (dieses muss vorhanden sein)
Sub TabelleUmformen() Dim arr Dim dic Dim z As Long, s As Long arr = Sheets("IST").Cells(1, 1).CurrentRegion Set dic = CreateObject("Scripting.dictionary") '--- Daten ermitteln For z = 2 To UBound(arr, 1) For s = 2 To UBound(arr, 2) If arr(z, s) "" Then If InStr(";" & dic(arr(z, s)) & ";", ";" & arr(z, 1) & ";") = 0 Then dic(arr(z, s)) = dic(arr(z, s)) & arr(z, 1) & ";" End If End If Next s Next z With Sheets("Soll").Cells(2, 1).Resize(dic.Count, 2) '--- Ergebnis zurückschreiben .Worksheet.Cells.ClearContents .Columns(1) = WorksheetFunction.Transpose(dic.keys) .Columns(2) = WorksheetFunction.Transpose(dic.Items) .Columns(2).TextToColumns Destination:=.Cells(1, 2), DataType:=xlDelimited, _ TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _ Semicolon:=True, Comma:=False, Space:=False, Other:=False '--- Tabellenüberschrift With .CurrentRegion.Rows(1).Offset(-1, 0) .FormulaR1C1 = "=""Picup""&Column()-1" .Formula = .Value .Cells(1, 1).Value = "RN" End With End With End Sub
Anzeige
AW: Umgedrehte Matrix
28.09.2016 13:56:27
Peter
Hallo Daniel
Vielen Dank für dein Makro. Mit Testdaten hat es einwandfrei funktioniert. Jedoch wenn ich die echten Daten verwende, erhalte ich bei .Columns(2) = WorksheetFunction.Transpose(dic.items)eine "Typen unverträglich"-Meldung (siehe Anhang). Das Excel hat gut 5500 Zellen mit Inhalt. Ich habe mal begonnen die Sonderzeichen usw. aus jener Spalte zu löschen, bin aber noch nicht auf den Fehler gestossen, der hier stört.
Ich bin zurzeit etwas unter Druck, darum habe ich bis jetzt noch nicht reagiert und mich für die Hilfe bedankt.
Ich werde nun weitersuchen und hoffe, dass ich noch etwas herausfinde.
https://www.herber.de/bbs/user/108483.zip
Liebe Grüsse Peter
Anzeige
AW: Umgedrehte Matrix
28.09.2016 16:00:23
Peter
Hallo Daniel
Das Makro Funktioniert mit den Originaldaten, solange die Menge der Daten nicht zu hoch ist. Die Fehlermeldung "Typ unverträglich" (ab mehr wie 50 Records) scheint nicht der wirkliche Fehler zu sein. Wenn ich die Anzahl Records reduziere, dann funktioniert das Makro. Sobald die Menge zu hoch ist, funktioniert das Makro nicht mehr und der Fehler wird geworfen. Die funktionierende Menge ist relativ klein. So um die 50 Records erscheint der Fehler. Ungefähr 900 Records müsste ich verarbeiten können.
Kriegen wir das trotzdem irgendwie hin?
Beste Grüsse
Peter
AW: Umgedrehte Matrix
28.09.2016 16:14:33
Daniel
Hi
1. wieviele Zeilen hat deine Tabelle (Anzahl der PicUps)
2. wieviele Spalten hat deine Tabelle in der Regel?
3. wieviele unterschiedliche Rufnummern gibt es?
dass müsste ich wissen um das Problem mal nachbauen zu können.
gruß Daniel
Anzeige
AW: Umgedrehte Matrix
28.09.2016 21:20:18
Peter
Hallo Daniel
Das ist schwer zu sagen. Pickups Groups werden es um die 800 sein. Im Schnitt sind so gegen 5 Rufnummern in einer Pickup. Ich kann jedoch nicht sagen, wie viele Male die selbe Nummer vorkommt. Vermutlich so 2 bis 3 Mal.
Hierbei handelt es sich um einen Export aus einem CallManager von Cisco. Es ist ein Export eines Mittelgrossen Kunden (für die Schweiz :-)) Es kann sehr gut sein, dass ich das Makro auch für doppelt oder dreifach so grosse Kunden brauchen können müsste. Aber zurzeit bin ich dankbar, wenn ich das jetzige Problem/Herausforderung in den Griff kriegen könnte.
Gruss Peter
Anzeige
AW: Umgedrehte Matrix
28.09.2016 21:54:54
Daniel
Hi
ich hab mal nen Test gemacht mit 1000 PicUps, 10 Anrufen pro PicUp und c.a. 6000 verschiedenen Rufnummern.
Läuft problemlos in sekundenbruchteilen durch.
Ich wüsste nicht, was ich ja noch machen sollte.
Gruß Daniel
AW: alternativ mit zwei AGGREGAT() -Formeln ...
27.09.2016 09:49:50
...
Hallo Peter,
... Formel I2 nach unten und J2 nach rechts und unten kopieren:
 ABCDEFGHIJKL
1PickupRN1RN2RN3RN…   RNPickup1Pickup2Pickup3
2Empfang+41581111111+41581111112+41581111113    +41  581 111 111Empfang  
3Lager 1+41582222221+41581111112     +41  581 111 112EmpfangLager 1 
4Lager 2+41583333331+41582222221+41583333332    +41  581 111 113Empfang  
5        +41  582 222 221Lager 1Lager 2 
6        +41  583 333 331Lager 2  
7        +41  583 333 332Lager 2  
8            

Formeln der Tabelle
ZelleFormel
I2=WENNFEHLER("+"&TEXT(AGGREGAT(15;6;--B$2:E$9/(--B$2:E$9>--WECHSELN(WENN(I1="RN";0;I1); " ";"")); 1); "00  000 000 000"); "")
J2=WENN(I2="";"";WENNFEHLER(INDEX($A:$A;AGGREGAT(15;6;ZEILE($A$1:$A$9)/($B$1:$E$9=WECHSELN($I2;" ";"")); SPALTE(A1))); ""))


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...
Anzeige
AW: alternativ mit zwei AGGREGAT() -Formeln ...
29.09.2016 08:25:02
Peter
Hallo Werner
Mit Aggregat habe ich auch noch nie was gemacht und das mit den doppel-Minus hat mich auch noch etwas irritiert. Toll, man lernt einfach nie aus:-)
Das Ganze funktioniert einwandfrei. Vielen Dank.
Gruss Peter
AW: freut mich, dann viel Erfolg owT
29.09.2016 09:40:45
...
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige