Zahl der Spalte B von der kleinsten Zahl der Spalte A abziehen
#1
Liebe Community

Ich sitze gefühlt vor einem (für mich) unlösbaren Problem. Ich hoffe es kann mir jemand weiterhelfen…

Folgendes Problem:
Ich muss von der Spalte B (siehe Anhang) insgesamt 16 kg abziehen, beginnend bei der kleinsten Zahl der Spalte A. Also beginne ich bei der Zelle B3 (A3 ist ja mit 4 die kleinste Zelle der Spalte A) und ziehe dort 8 ab. Von den 16 kg die ich insgesamt abziehen muss, bleiben noch 8 übrig, welche ich von der Zelle B4 (11 kg) abziehe. Dann bleiben in der Zelle C4 die Zahl 3 übrig.

Kann mir bitte jemand weiterhelfen und mir sagen, mit welchen Formeln ich auf die Ergebnisse der Spalte C komme?
Vielen Dank!


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Korrekt, in deinem Beispiel ist in der Spalte C die abzuziehende Zahl enthalten. In der Spalte D dann das Ergebnis, das ich brauche...

Vielleicht sollte ich noch dazu sagen, dass das Ganze automatisch mit Formeln ablaufen soll. Sprich mit Formeln sollte der kleinste Wert der Spalte A gefunden werden und dann die 16 kg automatisch so verteilt werden, dass zum Schluss sich die Spalte C ergibt...
Antworten Top
#3
Hi,

mit aktuellem Excel würde es z.B. so gehen:
Code:
=LET(
a;A1:B4;
b;16;
c;HSTAPELN(a;SEQUENZ(ZEILEN(a)));
d;SORTIEREN(c);
e;SPALTENWAHL(d;2);
f;SCAN(b;e;LAMBDA(x;y;(x>0)*(x-y)));
g;(f>=0)*e-f;
h;SORTIERENNACH(g;SPALTENWAHL(d;3));
h)
a: Ausgangswerte
b: Abzug
c: aktuelle Zeilennummer anhängen (um später zurücksortieren zu können)
d: Sortieren nach Spalte A
e: Spalte B auswählen
f: solange noch b übrig ist (>0), Spalte B davon abziehen
g: wenn f>=0, e-f rechnen, wenn f<0, dann -f
h: g mit alter Zeilennummer zurück sortieren

Geht bestimmt auch einfacher.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#4
Vielen Dank!
Ich bin leider nicht so der VBA Experte. Weiß jemand vielleicht noch einen anderen Weg (ohne Verwendung von VBA)?
Antworten Top
#5
Hi,

Das ist kein VBA sondern eine ganz normale Excel-Formel. Man braucht halt ein aktuelles Excel.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#6
Hallo,


old Style:

Code:
=MAX(0;B1-MAX(0;16-SUMMEWENN($A$1:$A$4;"<"&A1;$B$1:$B$4)))

in C1 und nach unten ziehen.
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:
  • Jurison47
Antworten Top
#7
Hey, herzlichen Dank für die Hilfe. Funktioniert super 19

Leider setzt sich mein Problem fort:

Ich muss den Vorgang nicht für alle Zeilen durchführen, sondern getrennt für jede Bezeichnungen der Spalte A (siehe Anhang). Sprich für den Artikel A sollte die Zelle C1 von den Spalte E1:E4 abgezogen werden beginnend bei der kleinsten Zahl der Spalte D1:D4. Dann für den Artikel B sollte die Zelle C5 von den Spalte E5:E10 abgezogen werden beginnend bei der kleinsten Zahl der Spalte D5:D10. (Ich hoffe ich habe mich halbwegs verständlich ausgedrückt). Das Ergebnis ist dann die Spalte F. Ich habe es mit einer Matrixformel probiert, aber ich kenne mich einfach zu wenig aus…

Bitte um weitere Hilfe 22


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#8
Hi,


Zitat:Bitte um weitere Hilfe

Bitte um Datei!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Antworten Top
#9
Hallo Edgar,

anbei die Datei...


Angehängte Dateien
.xlsx   Mappe1.xlsx (Größe: 9,14 KB / Downloads: 1)
Antworten Top
#10
Hi,

Code:
=MAX(0;E1-MAX(0;INDEX(C:C;VERGLEICH(A1;A:A;0))-SUMMEWENNS(E:E;A:A;A1;D:D;"<"&D1)))

in F1, nach unten ziehen.
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:
  • Jurison47
Antworten Top


Gehe zu:


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