Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Mengen und Stufen in Stücklisten





Frage

Hallo zusammen, vielleicht könntet ihr mir bei einem kleinen Problem helfen. Und zwar versuche ich Kosten aus unserem ERP manuel zu multiplizieren. Das Problem ist, dass ich es nicht hinbekomme, die menge mit den übergeordneten Stufen hochzumultiplizieren. Braucht man dazu VBA oder gibt es hierfür ne Zauberformel ;) STufe "Leer" ist die höchste Stufe. Für Hilfe wäre ich euch sehr dankbar Grüße A B C D 1 Stufe Menge Kosten ERGEBNIS 2 4,22 4,22 3 1 2 1,41 2,81 4 .2 0,5 4,64 4,64 5 .2 4 2,20 17,60 6 .2 2 0,66 2,62 7 1 0,5 0,02 0,01 8 .2 0,5 0,93 0,23 9 .2 3 1,05 1,58 10 ..3 2 0,06 0,17 11 ..3 1 1,00 1,50 Ergebnis 35,38

Antwort 1 von Gimix1

Hats zerschossen, (Sry)

Das Forum erkennt anscheined keine Blanks oder so.
Wo kann man eine Datei als Beispiel hochladen ?

Danke und Grüße

Antwort 2 von Gimix1

Hallo nochmal zusammen,

hab jetzt mal ne Beispieldatei hochgeladen.

http://npshare.de/files/38/6308/Beispiell_2.xls

Das Problem ist also, dass ich die Kosten mal die Menge mal der nächst höheren Stufe Multiplizieren möchte.

Die leere Stufe, sprich, die ganz oben, ist die höchste

Hat mich schon stunden gekostet, dass Problem zu lösen.
Leider ohne Erfolg.

Kann man da einen Query kreeiren, der das von unter her aufrollt ?

Kann mir jemand helfen ?

Danke schonmal für die Mühen im Voraus


Grüße

Antwort 3 von Saarbauer

hallo,

habe die Tabelle mal angesehen, leider keine Zusammenhänge für mich herstellbar.

Die Multiplikationen ergeben teilweise deine Werte, aber nicht überall, was mit deiner Beschreibung

Zitat:
Das Problem ist also, dass ich die Kosten mal die Menge mal der nächst höheren Stufe Multiplizieren möchte.

Die leere Stufe, sprich, die ganz oben, ist die höchste


zusammenhängen muss, aber mir nicht verständlichlich ist.

Gruß

Helmut

Antwort 4 von Gimix1

Hallo,

danke erstmal für deine Antwort.

Versuche es mal zu erklären.

Die Kosten sollen mit der Menge in der Gleichen Zeile mulipliziert werden.

Das Ergebnis dieser Zeile ist aber von der Menge der nächst höheren Stufe bzw deren Menge abhängig und muss ebenfalls berücksichtigt werden


Schau dir meine Datei nochmal an.

multipliziere die menge mal den Kosten in einer Zeile.
Multipliziere das Ergebnis mit der Menge der nächst höheren Stufe. Beispiel:

von Unten nach oben. Immer Kostenmal Menge,.... mal der Menge der nächst höheren Stufe (Nächst höhere Stufen sind Fett hervorgehoben)



.1
..2
..2
..2
...3
...3
....4

Hoffe das ist verständlich.
Ist wahscheinlich nur mit VB bzw VBA zu lösen.

Leider kann ich das noch nicht


Danke nochmal


Grüße

Antwort 5 von Saarbauer

hallo,

jetzt von Grundsatz her verstanden, aber im moment keine Lösungsidee

Gruß

Helmut

Antwort 6 von Saarbauer

Hallo,

geht wahrscheinlich nur mit VBA.

Wieviel Stufen gibt es maximal?

Gruß

Helmut

Antwort 7 von Gimix1

Hallo Helmut,

danke Dir für deine Mühen.

Habs auch mit x verschachtelungen etc versucht, habs ned hinbekommen.

Hab bis jetzt Stücklisten mit max 6 Stufen gesehen, wenns aber kein großer act wäre, dann wäre es auch mit 8 Stufen toll, sicherheitspuffer ;)

Lösung ist für mich leider ne nummer zu groß.

Doch Übung mach den Meister :D


Grüße


Goran

Antwort 8 von Gimix1

Kenn mich da ned so auch aber für die Beispieldatei kannste auch ne Null für die Höchste Stufe rein machen anstatt leer und in die Menge ne eins.

Ist dann vielleicht einfacher,........... hoff ich

Grüße

Goran

Antwort 9 von Saarbauer

Hallo,

versuch es mal mit dem Makro

Sub Stufen()
    Stufe_0 = 1
    Stufe_1 = 1
    Stufe_2 = 1
    Stufe_3 = 1
    Stufe_4 = 1
    Stufe_5 = 1
    Stufe_6 = 1
    Stufe_7 = 1
    Stufe_8 = 1
    Stufe_9 = 1
    letzteZeile = Range("A65536").End(xlUp).Row
    For i = 3 To letzteZeile
        If Range("B" & i).Value = 0 Then
            Stufe_0 = Range("C" & i).Value
            Stufe_1 = 1
            Stufe_2 = 1
            Stufe_3 = 1
            Stufe_4 = 1
            Stufe_5 = 1
            Stufe_6 = 1
            Stufe_7 = 1
            Stufe_8 = 1
            Stufe_9 = 1
        End If
        If Range("B" & i).Value = 1 Then
            Stufe_1 = Range("C" & i).Value
            Stufe_2 = 1
            Stufe_3 = 1
            Stufe_4 = 1
            Stufe_5 = 1
            Stufe_6 = 1
            Stufe_7 = 1
            Stufe_8 = 1
            Stufe_9 = 1
        End If
        If Range("B" & i).Value = 2 Then
            Stufe_2 = Range("C" & i).Value
            Stufe_3 = 1
            Stufe_4 = 1
            Stufe_5 = 1
            Stufe_6 = 1
            Stufe_7 = 1
            Stufe_8 = 1
            Stufe_9 = 1
        End If
        If Range("B" & i).Value = 3 Then
            Stufe_3 = Range("C" & i).Value
            Stufe_4 = 1
            Stufe_5 = 1
            Stufe_6 = 1
            Stufe_7 = 1
            Stufe_8 = 1
            Stufe_9 = 1
        End If
        If Range("B" & i).Value = 4 Then
            Stufe_4 = Range("C" & i).Value
            Stufe_5 = 1
            Stufe_6 = 1
            Stufe_7 = 1
            Stufe_8 = 1
            Stufe_9 = 1
        End If
        If Range("B" & i).Value = 5 Then
            Stufe_5 = Range("C" & i).Value
            Stufe_6 = 1
            Stufe_7 = 1
            Stufe_8 = 1
            Stufe_9 = 1
        End If
        If Range("B" & i).Value = 6 Then
            Stufe_6 = Range("C" & i).Value
            Stufe_7 = 1
            Stufe_8 = 1
            Stufe_9 = 1
        End If
        If Range("B" & i).Value = 7 Then
            Stufe_7 = Range("C" & i).Value
            Stufe_8 = 1
            Stufe_9 = 1
        End If
        If Range("B" & i).Value = 8 Then
            Stufe_8 = Range("C" & i).Value
            Stufe_9 = 1
        End If
        If Range("B" & i).Value = 9 Then Stufe_9 = Range("C" & i).Value
        If Range("D" & i).Value = "" Then
            Wert = 0
        Else
            Wert = Range("D" & i).Value
        End If
        Range("F" & i).Value = Wert * Stufe_0 * Stufe_1 * Stufe_2 * Stufe_3 * Stufe_4 * Stufe_5 * Stufe_6 * Stufe_7 * Stufe_8 * Stufe_9
    Next i
    Range("F" & letzteZeile + 2).FormulaR1C1 = "=SUM(R3C:R[-2]C)"
    End Sub



hat 10 Stufen (0 - 9)

Gruß

Helmut

Antwort 10 von Saarbauer

hallo,

eine bessere Fassung

Sub Stufen()
    Dim Stufe(10)
    For i = 0 To 9
        Stufe(i) = 1
    Next i
    letzteZeile = Range("A65536").End(xlUp).Row
    For i = 3 To letzteZeile
        For j = 0 To 9
            If Range("B" & i).Value = j Then
                Stufe(j) = Range("C" & i).Value
                For k = j + 1 To 9
                    Stufe(k) = 1
                Next k
            End If
        Next j
        
        If Range("D" & i).Value = "" Then
            Wert = 0
        Else
            Wert = Range("D" & i).Value
        End If
        SummeStufen = 1
        For j = 0 To 9
            SummeStufen = SummeStufen * Stufe(j)
        Next j
        Range("F" & i).Value = Wert * SummeStufen
    Next i
    Range("F" & letzteZeile + 2).FormulaR1C1 = "=SUM(R3C:R[-2]C)"
    End Sub


Gruß

Helmut

Antwort 11 von Gimix1

Hallo,

WOW, ....bin beeindruckt.
der Code passt, danke danke danke :)

Werde ihn später anpassen und in die originale datei kopieren.

Spitze.......................danke



Muss mal anfangen VBA zu lernen.

Antwort 12 von Gimix1

hallo,

eine Frage ist mir noch eingefallen.

Das ist jetzt ja eine Kostenkomponente.

Werde aber mehere Spalten so ausrechnen müssen.


Kann man dann einfach die Überschrift

Sub Stufen ()

in Sub Stufen1 () abändern und dann den Code einfach drunter kopieren, die Spaltenbezeichnungen abändern ?


Besonders dieser Teil ist mir ein Rätsel

Next i
Range("F" & letzteZeile + 2).FormulaR1C1 = "=SUM(R3C:R[-2]C)"
End Sub

Das andere kann ich abändern ,.. hoff ich

Oder muss ich auf noch etwas spezielles achten


Gruß

Goran

Antwort 13 von Saarbauer

Hallo,

Ich würde dann das ganze in z.B.

Sub Stufen_F ()

umbenennen für Spalte F usw. du brauchst dann "F" nur dur die entsprechende Spalte zu ersetzen

Zitat:
Next i
Range("F" & letzteZeile + 2).FormulaR1C1 = "=SUM(R3C:R[-2]C)"
End Sub


Next i -> gehört zur vorhergehenden For Schleife

Range("F" & letzteZeile + 2).FormulaR1C1 = "=SUM(R3C:R[-2] -> da ich die läne deiner Tabelle nicht kenne, wird hiermit die Summenformel 2 Zeilen nach der letzten berechnungszeile gesetzt für die Zeile 3 bis 2 Zeilen vor der Summenformel

Gruß

Helmut

Antwort 14 von Gimix1

Hallo,

spitze,

Und danke nochmals für deine Hilfe


Gruß

Goran

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: