Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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 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 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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• duckman15
Registriert seit: 13.07.2015
Version(en): MS Office 2013
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
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
14.07.2015, 06:06
(Dieser Beitrag wurde zuletzt bearbeitet: 14.07.2015, 06:07 von WillWissen.)
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)
Registriert seit: 13.07.2015
Version(en): MS Office 2013
(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
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
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)
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, also, mit dem code wird Dir anhand der Beispieltabelle die komplette Liste auf der linken Seite (Spalte A bis E) erzeugt. Modul Modul1Option 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:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• duckman15
Registriert seit: 13.07.2015
Version(en): MS Office 2013
(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.
Registriert seit: 13.07.2015
Version(en): MS Office 2013
15.07.2015, 02:45
(Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2015, 11:19 von Rabe.
Bearbeitungsgrund: Zitat gekürzt
)
(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
Registriert seit: 10.04.2014
Version(en): 2016 + 365
15.07.2015, 11:20
(Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2015, 12:03 von Rabe.)
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?
Aus Matrix Liste erstellen.xlsb (Größe: 22,79 KB / Downloads: 0)
Registriert seit: 13.04.2014
Version(en): 365
Hallo, das Ganze ließe sich auch mit Formeln bewerkstelligen: Arbeitsblatt mit dem Namen 'Tabelle1' | | A | B | C | D | E | F | G | H | 1 | Firma | Kostenstelle | Jahr | | 3 | 4 | 3 | 36 | 2 | Fa. A | Kst 1 | 1995 | | Fa. A | Kst 1 | 1995 | | 3 | Fa. A | Kst 1 | 1996 | | Fa. B | Kst 2 | 1996 | | 4 | Fa. A | Kst 1 | 1997 | | Fa. C | Kst 3 | 1997 | | 5 | Fa. A | Kst 2 | 1995 | | | Kst 4 | | | 6 | Fa. A | Kst 2 | 1996 | | | | | | 7 | Fa. A | Kst 2 | 1997 | | | | | | 8 | Fa. A | Kst 3 | 1995 | | | | | | 9 | Fa. A | Kst 3 | 1996 | | | | | | 10 | Fa. A | Kst 3 | 1997 | | | | | | 11 | Fa. A | Kst 4 | 1995 | | | | | | 12 | Fa. A | Kst 4 | 1996 | | | | | | 13 | Fa. A | Kst 4 | 1997 | | | | | |
Zelle | Formel | 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.
|