Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Bericht (Tabelle) aus einer Matrix Tabelle generieren

Frage Microsoft Microsoft Office

Mitglied: vanMatterhorn

vanMatterhorn (Level 1) - Jetzt verbinden

09.10.2010, aktualisiert 16:14 Uhr, 3643 Aufrufe, 2 Kommentare

Hallo,

ich hab mal wieder Probleme etwas in Excel umzusetzen und würde mich freuen möglichst schnell eine Antwort zu erhalten

Ich habe eine Matrixtabelle erstellt in der ich Produktfeatures Pflege (mal beispielhaft im Bild dargestellt). Nun will ich aus der Matrixtabelle eine Übersicht generieren, die für jedes Produkt alle möglichen Features auflistet (auch im Bespiel aufgezeigt)

f51c4c6d6a58061ede5f0987d5e60bb6 - Klicke auf das Bild, um es zu vergrößern

Bisher mache ich das immer manuell - sprich ich autofilter jedes feature und copy und paste die "stehenbleibenden" Produkte in eine extra Tabelle. Da das mitunter ziemlich aufwendig wird habe ich mich gefragt, ob das irgendwie automatisierbar geht !? Geht das über eine Formel, Pivot, VBA ?

Ich habe keine besonderen Excelkenntnisse und benutze Excel2007. Ich bin für jede hilfe dankbar.
Mitglied: mathe172
13.10.2010 um 20:19 Uhr
Hallo vanMatterhorn!

Ich kenne mich jetzt zwar mit vb.net besser als mit VBA aus, aber eigentlich sollte es irgendwie so gehen:

Gehe alle Zeilen durch: 
    Prüfe, ob Zeile gleiches Produkt beinhaltet wie Vorgängerzeile 
        Wenn nicht, gehe alle Features durch: 
            Schreibe für jede Ausprägung die ID, das Prdukt, Feature und Ausprägung hin (in die nächste Zeile) 
             Fange neues Produkt an (Listen leeren etc.) 
        Gehe alle Features durch: 
             Wenn bei diesem Produkt nicht vorhanden, füge der Liste hinzu
Hoffe irgendjemand kann funktionieren Code daraus machen (bin leider gescheitert )

Mathe172
Bitte warten ..
Mitglied: mathe172
15.10.2010 um 12:24 Uhr
Hallo nochmal!
Versuch mal das: (bitte abändern wo nötig)
01.
'Tabelle1 in Sub Routine: AusgangsTabelle 
02.
Sub Routine() 
03.
Dim LetztesProdukt As String 
04.
'Diesen Dreierblock pro Future einmal einfügen und abändern 
05.
Dim Future1Name As String 
06.
Future1Name = "Verfügbare Farben"   'Name des ersten Futures 
07.
Dim Future1(3) As String            '3: 'Anzahl Möglicher Ausprägungen -1 
08.
 
09.
Dim Future2Name As String 
10.
Future2Name = "USB Anschluss"       'Name des zweiten Futures 
11.
Dim Future2(1) As String            '1: 'Anzahl Möglicher Ausprägungen -1 
12.
 
13.
Dim Future3Name As String 
14.
Future3Name = "HDMI"                 '... 
15.
Dim Future3(1) As String             '... 
16.
 
17.
For i = 1 To 10000 '1:Erste Zeile in der ein Produkt steht 
18.
    Dim Produkt As String 
19.
    Produkt = Tabelle1.Cells(i, 2).Value '2: Spalte in der Produktname steht 
20.
    If Not Produkt = LetztesProdukt And i > 1 Then '1:Gleiches wie 3 Zeilen drüber 
21.
    'Diesen Block pro Future einmal einfügen und abändern 
22.
    '1 nach "," in zweiter Zeile:Spalte mit Nummer 
23.
        Call Hinschreiben( _ 
24.
            Tabelle1.Cells(i - 1, 1).Value, _ 
25.
            LetztesProdukt, _ 
26.
            Future1Name, _ 
27.
            Future1()) 
28.
        Call Leeren(Future1()) 
29.
         
30.
        Call Hinschreiben( _ 
31.
            Tabelle1.Cells(i - 1, 1).Value, _ 
32.
            LetztesProdukt, _ 
33.
            Future2Name, _ 
34.
            Future2()) 
35.
        Call Leeren(Future2()) 
36.
         
37.
        Call Hinschreiben( _ 
38.
            Tabelle1.Cells(i - 1, 1).Value, _ 
39.
            LetztesProdukt, _ 
40.
            Future3Name, _ 
41.
            Future3()) 
42.
        Call Leeren(Future3()) 
43.
    End If 
44.
    LetztesProdukt = Produkt 
45.
     
46.
    ''Diese Zeile pro Future einmal einfügen und abändern 
47.
    Call Einfügen(Future1, Tabelle1.Cells(i, 3).Value) '3:Spalte mit erstem Future 
48.
    Call Einfügen(Future2, Tabelle1.Cells(i, 4).Value) '4:Spalte mit zweitem Future 
49.
    Call Einfügen(Future3, Tabelle1.Cells(i, 5).Value) '... 
50.
    If Produkt = "" Then Exit For 
51.
Next 
52.
End Sub 
53.
 
54.
'Tabelle1 in Sub Hinschreiben: ZielTabelle 
55.
Sub Hinschreiben( _ 
56.
ByVal Produktnummer As String, _ 
57.
ByVal Produkt As String, _ 
58.
ByVal FutureName As String, _ 
59.
ByRef Future() As String) 
60.
Static Zeile As Integer 
61.
Dim ErsteZeile As Integer 
62.
ErsteZeile = 20 'Erste Zeile in der ein Eintrag hinsoll 
63.
For i = 0 To UBound(Future) 
64.
    If Not Future(i) = "" Then 
65.
        Tabelle1.Cells(Zeile + ErsteZeile, 1).Value = Produktnummer '1:Spalte in die Nummer soll 
66.
        Tabelle1.Cells(Zeile + ErsteZeile, 2).Value = Produkt '2:Spalte in die Produktname soll 
67.
        Tabelle1.Cells(Zeile + ErsteZeile, 3).Value = FutureName '3:...Future 
68.
        Tabelle1.Cells(Zeile + ErsteZeile, 4).Value = Future(i) '4:...Ausprägung 
69.
        Zeile = Zeile + 1 
70.
    End If 
71.
Next 
72.
End Sub 
73.
 
74.
Sub Leeren(ByRef Feld() As String) 
75.
For i = 0 To UBound(Feld) 
76.
    Feld(i) = "" 
77.
Next 
78.
End Sub 
79.
 
80.
Sub Einfügen(ByRef Future() As String, ByVal Ausprägung As String) 
81.
        For i = 0 To UBound(Future) 
82.
            If Future(i) = Ausprägung Then Exit Sub 
83.
        Next 
84.
        For i = 0 To UBound(Future) 
85.
            If Future(i) = "" Then 
86.
                Future(i) = Ausprägung 
87.
                Exit For 
88.
            End If 
89.
        Next 
90.
End Sub
Mathe172
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Microsoft Office
Word Dokument (vorausgefüllte Formulare) aus Excel Tabelle generieren (1)

Frage von Server4Alle zum Thema Microsoft Office ...

Microsoft Office
Pivot Tabelle schützen ohne Datenabschnitt (1)

Frage von lupi1989 zum Thema Microsoft Office ...

Server
gelöst SQL-Tabelle portieren und dabei Daten konvertieren (1)

Frage von menace zum Thema Server ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Grafikkarten & Monitore
Tonprobleme bei Fernseher mit angeschlossenem Laptop über HDMI (11)

Frage von Y3shix zum Thema Grafikkarten & Monitore ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...