Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Verschachtelte Funktion mit 15 Positionen !?!





Frage

Meine Tochter trägt Prospekte aus und ich möchte ihre Abrechnung kontrollieren können. Aus diesem Grund möchte ich eine Verschachtelte Berechnung anlegen. Die Bezahlung für die „normale“ Verteilung an 200 Haushalte staffelt sich folgendermaßen: für das 1. Prospekt 4,61 € für das 2. Prospekt 1,54 € 3. Prospekt 1,04 € 4. Prospekt 1,04 € 5. Prospekt 1,04 € Ab dem 6. Prospekt einmaliger Zuschlag 4,04 € 07. Prospekt 1,04 € 08. Prospekt 1,04 € 09. Prospekt 1,04 € 10. Prospekt 1,04 € 11. Prospekt 1,04 € 12. Prospekt 1,04 € 13. Prospekt 1,04 € 14. Prospekt 1,04 € 15. Prospekt 1,04 € Wenn 280 Haushalte ein Sonderprospekt der Stadt usw. erhalten, kommen an die erste Stelle 6,45 € anstatt 4,61 €. Momentan sieht meine Formel so aus: =WENN(E2=1;4,61;WENN(E2=2;6,51;WENN(E2=3;7,19;WENN(E2=4;8,23;WENN(E2=5;9,27;WENN(E2=6;13,31;WENN(E2=7;14,35;WENN(E2=8;15,39))))))))+(WENN(E2=9;16,43;WENN(E2=10;17,47;WENN(E2=11;18,51;WENN(E2=12;19,55;WENN(E2=13;26)))))) Wobei ich nicht ganz sicher bin ob das PLUS richtig ist, aber ich finde keine Alternative. Und ich habe noch keine Ahnung wie ich die geänderte Stückzahl 280 einbauen kann So sieht meine Tabelle aus: 200/280 Stck. | Prospekte | Auszahlung 200 | 7 Stck. | (Formel von oben) 200 | 13 Stck. |(Formel von oben) 280 | 10 Stck. |??? Alles verstanden??? Ich hab selbst lange gebraucht bis ich die Staffelung begriffen habe ;-)

Antwort 1 von Saarbauer

Hallo,

versuch es mal mit der Formel

=E2*1,04+WENN(E2>0;3,57;0)+WENN(E2>1;0,86;0)+WENN(E2>2;-0,36;0)+WENN(E2>5;3;0)+WENN(E2>279;1,84;0)

Baut auf deinen Zahlen in der Wenn()Formel auf .

Gruß

Helmut

Antwort 2 von nighty

hi all :)

oder ein automatismus mit einem makro was die tabelle nicht mit formeln aufbläht

gruss nighty

nach eingabe der stueckzahl in spalte b erfolg die ausgabe in spalte c

einzufuegen

alt/f11
projektexplorer/DeineTabelle

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim zaehler As Long
If Target.Column = 2 And Target.Row > 1 Then
For zaehler = 1 To Cells(Target.Row, Target.Column)
If Cells(Target.Row, Target.Column - 1) = 200 And zaehler = 1 Then summe = summe + 4.61
If Cells(Target.Row, Target.Column - 1) = 280 And zaehler = 1 Then summe = summe + 6.45
If zaehler = 2 Then summe = summe + 1.54
If zaehler = 6 Then summe = summe + 4.04
If zaehler > 2 Then summe = summe + 1.04
Next t
Cells(Target.Row, Target.Column + 1) = summe
End If
Application.EnableEvents = True
End Sub

Antwort 3 von nighty

hi all :)

oh korrigiert :)

gruss nighty

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim zaehler As Long
If Target.Column = 2 And Target.Row > 1 Then
For zaehler = 1 To Cells(Target.Row, Target.Column)
If Cells(Target.Row, Target.Column - 1) = 200 And zaehler = 1 Then summe = summe + 4.61
If Cells(Target.Row, Target.Column - 1) = 280 And zaehler = 1 Then summe = summe + 6.45
If zaehler = 2 Then summe = summe + 1.54
If zaehler = 6 Then summe = summe + 4.04
If zaehler > 2 Then summe = summe + 1.04
Next zaehler
Cells(Target.Row, Target.Column + 1) = summe
End If
Application.EnableEvents = True
End Sub

Antwort 4 von cicerina

Also -
die Formel funktioniert! ;-)
Mit Makros kenne ich mich nicht aus, werde es aber mal ausprobieren. Drück mir die Daumen ;-)

Erstmal viiiiiielen Dank!

Antwort 5 von cicerina

Frage:
Wie komme ich zu -> Private Sub Worksheet_Change

Antwort 6 von cicerina

Hallo nighty,
also - das mit dem Marko funktioniert bei mir nicht ;-(
Ich habe auch noch NIE mit Makros gearbeitet.
Habe mir alle Kenntnisse aus Foren und Tutorials selbst erarbeitet.

Werde die Formel von Saarbauer verwenden!
Herzlichen Dank euch Beiden und noch einen schönen Abend.
Gabi

Antwort 7 von Saarbauer

Hallo,
Zitat:
Ich habe auch noch NIE mit Makros gearbeitet.
Habe mir alle Kenntnisse aus Foren und Tutorials selbst erarbeitet

ist ok. so haben wir alle mal angefangen. Aber trotzdemsolltest du bei gelegenheit auch mal um Makros kümmern.

Ich hoffe du hast den Aufbau meiner Formel verstanden. Ich mache im Prinzip, das gleiche wie du vorhattest bin nur etwas anders an die Sache ran gegangen.

Totzden herzlichen Dank, ich glaube auch im Namen von @nighty für die Rückmeldung, kommt leider zu selten vor

Gruß

Helmut