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, 3649 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 ..
Ähnliche Inhalte
Microsoft Office
Word Dokument (vorausgefüllte Formulare) aus Excel Tabelle generieren (1)

Frage von Server4Alle zum Thema Microsoft Office ...

Microsoft Office
Übertrag in eine andere Tabelle (6)

Frage von charmeur zum Thema Microsoft Office ...

Batch & Shell
gelöst Username generieren . ab in eine csv (16)

Frage von Franz-Josef-II zum Thema Batch & Shell ...

Microsoft Office
gelöst EXCEL (OpenOffice) Inventurliste (wenn Wert dann in Tabelle 2 anzeigen) (3)

Frage von pyrolords zum Thema Microsoft Office ...

Neue Wissensbeiträge
Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(3)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(9)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Heiß diskutierte Inhalte
Exchange Server
Exchange 2016 Standard Server 2012 R2 Hetzner Mail (41)

Frage von Datsspeed zum Thema Exchange Server ...

Windows 7
gelöst Lokales Adminprofil defekt (25)

Frage von Yannosch zum Thema Windows 7 ...

Off Topic
gelöst Fachzeitschriften als E-Book oder hardcoded? (11)

Frage von KowaKowalski zum Thema Off Topic ...

Windows 10
Windows Store Apps ohne Windows Store installieren (10)

Frage von keefien zum Thema Windows 10 ...