Ebene multiplizieren
#1
Hallo Zusammen,

ich brauche eure Hilfe.
ich habe eine größere Tabelle mit mehreren Tausend Einträgen.
Hier sind Teile enthalten, welche wieder herum aus Unterteile besteht.
Nun muss ich die Gesamtanzahl herausfinden von den Unterteilen.
Hier muss dann jede Ebene mit der direkten Ebene darüber multipliziert werden.
Also Ebene 3 multipliziert mit Ebene 2 und dann mit Ebene 1.
Die Tabelle kann bis zu 15 Ebenen haben.

Ich habe hierzu ein vereinfachtes Beispiel angehängt. Hier geht es darum die Gesamtanzahl auszurechnen.

Ich würde mich sehr freuen wenn ihr mir weiterhelfen könnt.

Vielen Dank schon im Voraus für eure Antworten

Gruß Daniel


Angehängte Dateien
.xlsx   Stückliste.xlsx (Größe: 11,19 KB / Downloads: 14)
Top
#2
Code:
Sub M_snb()
  sn = Range("A4:C16")
 
  For j = 2 To UBound(sn)
    If Len(sn(j, 1)) > Len(sn(j - 1, 1)) Then y = sn(j - 1, 3)
    If Len(sn(j, 1)) > 1 Then sn(j, 3) = sn(j, 3) * y
  Next
 
  Range("D4:D16") = Application.Index(sn, 0, 3)
End Sub
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Top
#3
Hallo Daniel,

basierend auf deiner Beispieldatei hier ein Vorschlag für eine Formellösung (hier mal für 5 Ebenen):
Arbeitsblatt mit dem Namen 'Tabelle1'
BCDEF
3EbeneBauteilAnzahlGesamtanzahlGesamtanzahl
41Schweißteil555
52Arm155
62Unterarm155
72Flansch21010
83Welle11010
91Antrieb333
102Stirnrad266
112Stirnrad41212
122Welle61818
131Antrieb2333
142Stirnrad2266
152Stirnrad2266
162Welle2133

ZelleFormel
F4=D4*
WENNFEHLER
(VERWEIS(2;1/($B$4:B4=B4-1);$D$4:D4);1)*
WENNFEHLER
(VERWEIS(2;1/($B$4:B4=B4-2);$D$4:D4);1)*
WENNFEHLER
(VERWEIS(2;1/($B$4:B4=B4-3);$D$4:D4);1)*
WENNFEHLER
(VERWEIS(2;1/($B$4:B4=B4-4);$D$4:D4);1)
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

(Formel nach unten ziehen)

Bei mehr Ebenen muss die Formel entsprechend erweitert werden, was bei einer größeren Anzahl von Ebenen schnell unüberischtlich / unhandlich wird.

Da käme dann wohl eher eine Lösung mit Hilfsspalten in Frage (für jede Ebene wird eine Hilfsspalte benötigt)
Die Hilfsspalten kannst du ja ausblenden.

Siehe angehängte Beispieldatei

Gruß
Fred


Angehängte Dateien
.xlsx   Ebene multiplizieren_fs3.xlsx (Größe: 25 KB / Downloads: 0)
Top
#4
Hallo Daniel,

oder ohne Hilfsspalte:

=WENN(LÄNGE(A4)=1;C4;C4*INDEX(D:D;AGGREGAT(14;6;ZEILE($A$4:A4)/(LÄNGE($A$4:A4)=LÄNGE(A4)-1);1)))


Angehängte Dateien
.xlsx   Stückliste.xlsx (Größe: 12,5 KB / Downloads: 1)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top


Gehe zu:


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