Automatisch Tabelle erstellen
#11
Hallo Günter,

das Unternehmen kann sich doch auch entwickeln. Es werden Betriebe und Anteile gekauft oder verkauft, es gibt neue und auslaufende Produkte usw., einige werden umbenannt - man denke an die Handys von Nokia, die jetzt Microsoft heißen, Faze hat Whats gekauft, der Name ist aber geblieben usw. usf.,
Intern verändern sich Kostenstellen und Abteilungsbezeichnungen, Bereiche werden auseinaderklabüsert oder zusammengelegt, der Caterer und andere Lieferanten werden gewechselt, ... Das alles geschieht zu bestimmten Zeitpunkten, früher war also alles besser als es jetzt geworden ist Wink
Man braucht in jedem Fall entsprechende Daten, die dann bzw. was wie und wann zu berücksichtigen sind bzw. ist und um zu sehen, wie man das in allgemeine Regeln packen und damit automatisieren kann.

Bei einem Friseur mit Herren- und Damenabteilung geht das sicher einfacher als wenn man Samsung oder Philips betrachtet, die zu unserem Leidwesen nicht nur Fernseher herstellen Smile Wenn sich das den Schwarzhändlern vom Automarkt zuordnen lässt, könnte man das Beispiel auch entsprechend aufbereiten. Wobei ein firmennahes Vokabular die Entwicklung und Umsetzung sicher einfacher machen würde und ebenso ein strukturnaher Aufbau der einzelnen Tabellen. Vielleicht wäre da die "Konstruktion" eines Reimport - Autohauses ggf. mit verschiedenen Filialen möglich. Da kann man dann auch die Strukturen und Prozesse so einbauen, wie man es benötigt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • duckman15
Top
#12
Erst einmal vielen Dank für eure zahlreichen Anregungen. Damit hätte ich nicht gerechnet.
Ich denke aber, dass wir noch etwas aneinander vorbei reden. Ich habe mein Problem schlecht erläutert.

@WillWissen: Ich habe die Tabelle ja eigentlich noch gar nicht. Diese soll ja erst mithilfe der Daten aufgebaut werden. Ich stehe bei deinem Lösungsvorschlag noch etwas auf dem schlauch. Klar kann ich einfach neue Zeilen einfügen aber dann müsste ich das ja manuell machen

@schauaun: Also man kann davon ausgehen, dass jedes Modell/Kostenstelle jedes Kennzahl und jedes Baujahr/Periode hat. Wenn nicht ist der Wert halt 0. Und das mit der Veränderung ist genau richtig und auch ein Problem. Ich will z.B. Modelle/Kostenstellen hinzufügen können und dann soll sich die Tabelle vergrößern. Wie in meinem letzten Beispiel. Dort hätte ich in mein "Struktur-Sheet" bei den Modellen nur eine Zeile mit "VW Polo" hinzugefügt und die Tabelle hätte sich wie folgt geändert. (nur mit 2 Kennzahlen und 2 Baujahren)

Ausgangstabelle (eigentlich noch nicht vorhanden sondern soll erzeugt werden)

VW Golf | PS | 1990
VW Golf | PS | 2000
VW Golf | Hubraum | 1990
VW Golf | Hubraum | 2000
VW Passat | PS | 1990
VW Passat | PS | 2000
VW Passat | Hubraum | 1990
VW Passat | Hubraum | 2000

Wird zu: (soll bei Änderungen erzeugt/abgeändert werden)

Modell | Kennzahl | Baujahr

VW Golf | PS | 1990
VW Golf | PS | 2000
VW Golf | Hubraum | 1990
VW Golf | Hubraum | 2000
VW Passat | PS | 1990
VW Passat | PS | 2000
VW Passat | Hubraum | 1990
VW Passat | Hubraum | 2000
VW Polo | PS | 1990
VW Polo | PS | 2000
VW Polo | Hubraum | 1990
VW Polo | Hubraum | 2000

Versteht ihr mein Problem? Und da ich hier sind es 3 Automarken, 2 Kennzahlen und 2 Baujahre also 3*2*2 = 12 Zeilen. In echt habe ich 40 Modelle/Kostenstellen 40 Kennzahlen 24 Baujahre/Perioden also 40*40*24 also 38400 Zeilen.
Ich möchte nur einmal alle Modelle, Kennzahlen und Perioden aufschreiben und dann soll mir Excel eine Tabelle nach obiger Struktur auswerfen.

Vielen Dank für euren prima support !!

Liebe Grüße
Top
#13
Hi,

Zitat:Klar kann ich einfach neue Zeilen einfügen aber dann müsste ich das ja manuell machen

wie soll XL das machen, ohne von dir "gefüttert" zu werden?

Zitat:Dort hätte ich in mein "Struktur-Sheet" bei den Modellen nur eine Zeile mit "VW Polo" hinzugefügt und die Tabelle hätte sich wie folgt geändert. (nur mit 2 Kennzahlen und 2 Baujahren)

Gleiche Frage: Woher soll XL wissen, welche Kennzahlen und Baujahre nötig sind?

Zitat:Versteht ihr mein Problem? ...

... Ich möchte nur einmal alle Modelle, Kennzahlen und Perioden aufschreiben und dann soll mir Excel eine Tabelle nach obiger Struktur auswerfen.

Nein, ich verstehe es (immer noch) nicht. Vielleicht solltest du anstelle einer fiktiven Auto-Beispieldatei versuchen, einige Zeilen deines Originals aufzubauen und dann genau beschreiben, was XL machen soll und/oder wo XL etwas berechnen soll. Hierzu kannst du sensible Daten anonymisieren. Poste dann entweder den relevanten Tabellenausschnitt oder lade dann diese Beispieltabelle hoch. Dass es Verständigungsprobleme gibt siehst du auch daran, dass mein Namensvetter (Günther) im Nachbarforum ähnlich argumentiert.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#14
(14.07.2015, 06:06)WillWissen schrieb: Hi,

Zitat:Klar kann ich einfach neue Zeilen einfügen aber dann müsste ich das ja manuell machen

wie soll XL das machen, ohne von dir "gefüttert" zu werden?

Zitat:Dort hätte ich in mein "Struktur-Sheet" bei den Modellen nur eine Zeile mit "VW Polo" hinzugefügt und die Tabelle hätte sich wie folgt geändert. (nur mit 2 Kennzahlen und 2 Baujahren)

Gleiche Frage: Woher soll XL wissen, welche Kennzahlen und Baujahre nötig sind?

Das ist ja die Frage ob Excel das kann und wenn ja wie...

Bei Projektübergabe wurde mir gesagt, dass es mit einer Schleife und einem mehrdimensionalen Array zu lösen ist.

LG
Top
#15
Hi Duckman,

da du leider nicht auf die Erfordernisse eingehst, die von Helfern benötigt werden, ist für mich hier Schluss. Was irgendwann irgendwer zu dir gesagt hat, ist doch völlig irrelevant. Wichtig wäre, das zu tun, zu was du aufgefordert worden bist :

>>Vielleicht solltest du anstelle einer fiktiven Auto-Beispieldatei versuchen, einige Zeilen deines Originals aufzubauen und dann genau beschreiben, was XL machen soll und/oder wo XL etwas berechnen soll.<<
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#16
Hallöchen,

also, mit dem code wird Dir anhand der Beispieltabelle die komplette Liste auf der linken Seite (Spalte A bis E) erzeugt.
Modul Modul1
Option Explicit 
 
Sub ListeErzeugen() 
'Variablendeklarationen 
'Integer 
Dim iCnt1%, iCnt2%, iCnt3%, iCnt4% 
'Long 
Dim lRow& 
'array 
Dim arrKenn, arrJahr 
Dim arrPSA, arrPSB, arrHUA, arrHUB, arrGRA, arrGRB 
'Arrayinhalte zuweisen 
arrKenn = Range("i19:i21").Value: arrJahr = Range("i24:i27").Value 
arrPSA = Array(200, 201, 202, 203): arrPSB = Array(180, 181, 182, 183) 
arrHUA = Array(1000, 1010, 1020, 1030): arrHUB = Array(1, 1.1, 1.2, 1.3) 
arrGRA = Array(5, 5.1, 5.2, 5.3): arrGRA = Array(500, 510, 520, 530) 
 
'Startzeilennr. zuweisen 
lRow = 2 
'Schleife ueber Spalten I=9 bis J=12 
For iCnt1 = 9 To 12 
  'Schleife ueber Fahrzeuge, beginnend mit Zeile 2 
  For iCnt2 = 2 To Cells(2, iCnt1).End(xlDown).Row 
    'Schleife ueber die Kennzahlen 
    For iCnt3 = Lbound(arrKenn) To Ubound(arrKenn) 
      'Schleife ueber die Jahre 
      For iCnt4 = Lbound(arrJahr) To Ubound(arrJahr) 
        'Modell 
        Cells(lRow, 1).Value = Cells(iCnt2, iCnt1).Value 
        'Kennzahl 
        Cells(lRow, 2).Value = arrKenn(iCnt3, 1) 
        'Jahr 
        Cells(lRow, 3).Value = arrJahr(iCnt4, 1) 
        'Fallunterscheidung Wert Einheit je nach Kennzahl 
        Select Case iCnt3 
          'PS 
          Case 1 
            Cells(lRow, 4).Value = arrPSA(iCnt4 - 1) 
            Cells(lRow, 4).Value = arrPSA(iCnt4 - 1) 
          'Hubraum 
          Case 2 
            Cells(lRow, 4).Value = arrHUA(iCnt4 - 1) 
            Cells(lRow, 4).Value = arrHUA(iCnt4 - 1) 
          'Groesse 
          Case 3 
            Cells(lRow, 4).Value = arrGRA(iCnt4 - 1) 
            Cells(lRow, 4).Value = arrGRA(iCnt4 - 1) 
        'Ende Fallunterscheidung Wert Einheit je nach Kennzahl 
        End Select 
        'Zeilennummer hochsetzen 
        lRow = lRow + 1 
      'Ende Schleife ueber die Jahre 
      Next 
    'Ende Schleife ueber die Kennzahlen 
    Next 
  'Ende Schleife ueber Fahrzeuge, beginnend mit Zeile 2 
  Next 
'Ende Schleife ueber Spalten I=9 bis J=12 
Next 
End Sub 

.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • duckman15
Top
#17
(14.07.2015, 13:30)WillWissen schrieb: Hi Duckman,

da du leider nicht auf die Erfordernisse eingehst, die von Helfern benötigt werden, ist für mich hier Schluss. Was irgendwann irgendwer zu dir gesagt hat, ist doch völlig irrelevant. Wichtig wäre, das zu tun, zu was du aufgefordert worden bist :

>>Vielleicht solltest du anstelle einer fiktiven Auto-Beispieldatei versuchen, einige Zeilen deines Originals aufzubauen und dann genau beschreiben, was XL machen soll und/oder wo XL etwas berechnen soll.<<

Okay, trotzdem Danke für deine Mühen. Ich habe mich einfach zu schlecht ausgedrückt, dass wir ziemlich aneinander vorbeigeredet haben.
Top
#18
(14.07.2015, 17:39)schauan schrieb: also, mit dem code wird Dir anhand der Beispieltabelle die komplette Liste auf der linken Seite (Spalte A bis E) erzeugt.

Wow !!!!!! Das ist genau das was ich gesucht habe !!! Dies werde ich jetzt für meinen Fall abändern. Vielen Vielen Dank für deine Hilfe. Kann leider nur einmal auf Danke drücken
Top
#19
Hi André,

(14.07.2015, 17:39)schauan schrieb: also, mit dem code wird Dir anhand der Beispieltabelle die komplette Liste auf der linken Seite (Spalte A bis E) erzeugt.

bei mir trägt das Makro die Spalte E nicht ein. Ich habe es etwas erweitert und aus zwei Mal arrGRA in DIM ein Mal arrGRB gemacht:
Option Explicit

Sub ListeErzeugen()
'Variablendeklarationen
'Integer
Dim iCnt1%, iCnt2%, iCnt3%, iCnt4%
'Long
Dim lRow&
'array
Dim arrKenn, arrJahr
Dim arrPSA, arrPSB, arrHUA, arrHUB, arrGRA, arrGRB
'Arrayinhalte zuweisen
arrKenn = Range("i19:i21").Value: arrJahr = Range("i24:i27").Value
arrPSA = Array(200, 201, 202, 203): arrPSB = Array(180, 181, 182, 183)
arrHUA = Array(1000, 1010, 1020, 1030): arrHUB = Array(1, 1.1, 1.2, 1.3)
arrGRA = Array(5, 5.1, 5.2, 5.3): arrGRB = Array(500, 510, 520, 530)

'Startzeilennr. zuweisen
lRow = 2
'Schleife ueber Spalten I=9 bis J=12
For iCnt1 = 9 To 12
 'Schleife ueber Fahrzeuge, beginnend mit Zeile 2
 For iCnt2 = 2 To Cells(2, iCnt1).End(xlDown).Row
   'Schleife ueber die Kennzahlen
   For iCnt3 = Lbound(arrKenn) To Ubound(arrKenn)
     'Schleife ueber die Jahre
     For iCnt4 = Lbound(arrJahr) To Ubound(arrJahr)
       'Modell
       Cells(lRow, 1).Value = Cells(iCnt2, iCnt1).Value
       'Kennzahl
       Cells(lRow, 2).Value = arrKenn(iCnt3, 1)
       'Jahr
       Cells(lRow, 3).Value = arrJahr(iCnt4, 1)
       'Fallunterscheidung Wert Einheit je nach Kennzahl
       Select Case iCnt3
         'PS
         Case 1
           Cells(lRow, 4).Value = arrPSA(iCnt4 - 1)
           Cells(lRow, 4).Value = arrPSA(iCnt4 - 1)
           Cells(lRow, 5).Value = arrPSB(iCnt4 - 1)
           Cells(lRow, 5).Value = arrPSB(iCnt4 - 1)
         'Hubraum
         Case 2
           Cells(lRow, 4).Value = arrHUA(iCnt4 - 1)
           Cells(lRow, 4).Value = arrHUA(iCnt4 - 1)
           Cells(lRow, 5).Value = arrHUB(iCnt4 - 1)
           Cells(lRow, 5).Value = arrHUB(iCnt4 - 1)
         'Groesse
         Case 3
           Cells(lRow, 4).Value = arrGRA(iCnt4 - 1)
           Cells(lRow, 4).Value = arrGRA(iCnt4 - 1)
           Cells(lRow, 5).Value = arrGRB(iCnt4 - 1)
           Cells(lRow, 5).Value = arrGRB(iCnt4 - 1)
       'Ende Fallunterscheidung Wert Einheit je nach Kennzahl
       End Select
       'Zeilennummer hochsetzen
       lRow = lRow + 1
     'Ende Schleife ueber die Jahre
     Next
   'Ende Schleife ueber die Kennzahlen
   Next
 'Ende Schleife ueber Fahrzeuge, beginnend mit Zeile 2
 Next
'Ende Schleife ueber Spalten I=9 bis J=12
Next
End Sub


VBA/HTML - CodeConverter für Office-Foren, AddIn für Excel/Word 2000-2013 - komplett in VBA geschrieben von Lukas Mosimann. Projektbetreuung durch mumpel

Code erstellt und getestet in Office 15


Für mich stellt sich die Frage, ob die Zeilen für die Überschriften "VW", "Audi", "BMW", "Mercedes", "Einsteiger", "Mttelklasse" und "Oberklasse" auch in der Liste auftauchen müssen?


.xlsb   Aus Matrix Liste erstellen.xlsb (Größe: 22,79 KB / Downloads: 0)
Top
#20
Hallo,

das Ganze ließe sich auch mit Formeln bewerkstelligen:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGH
1FirmaKostenstelleJahr 34336
2Fa. AKst 11995 Fa. AKst 11995 
3Fa. AKst 11996 Fa. BKst 21996 
4Fa. AKst 11997 Fa. CKst 31997 
5Fa. AKst 21995  Kst 4  
6Fa. AKst 21996     
7Fa. AKst 21997     
8Fa. AKst 31995     
9Fa. AKst 31996     
10Fa. AKst 31997     
11Fa. AKst 41995     
12Fa. AKst 41996     
13Fa. AKst 41997     

ZelleFormel
E1=ANZAHL2(E2:E21)
F1=ANZAHL2(F2:F21)
G1=ANZAHL2(G2:G21)
H1=E1*F1*G1
A2=WENN(ZEILE(A1)>$H$1;"";INDEX(E:E;KÜRZEN((ZEILE(A1)-1)/$F$1/$G$1;)+2))
B2=WENN(ZEILE(B1)>$H$1;"";INDEX(F:F;REST(KÜRZEN((ZEILE(B1)-1)/$G$1;);$F$1)+2))
C2=WENN(ZEILE(C1)>$H$1;"";INDEX(G:G;REST(ZEILE(A1)-1;$G$1)+2))
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • duckman15
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste