Summe der Werte einer Zeile passend zu einem Wert

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Summe der Werte einer Zeile passend zu einem Wert

Re: Summe der Werte einer Zeile passend zu einem Wert

von mikeleb » Di, 05.08.2014 22:23

Hallo HeritzP,

mir hilft an der Stelle immer, die Zwischenergebnisse sichtbar zu machen (siehe Anhang).
Dateianhänge
summenkombination3_1.ods
(18.91 KiB) 80-mal heruntergeladen

Re: Summe der Werte einer Zeile passend zu einem Wert

von mikeleb » Di, 05.08.2014 20:20

Hallo,

das Teil ist so Schritt für Schritt gewachsen. Beim Nochmaligen 'drüberschauen konnte ich sie noch etwas vereinfachen.
Die Matrixformel in ihrer ganzen „Schönheit“:
{=VERKETTEN("= ";VERSCHIEBUNG(A1;0;MIN(WENN(ISTFEHLER(VERGLEICH((AG1-(A1:AF1));A1:AF1;0));33;SPALTE(A1:AF1)))-1);WENN(AKTUELL()=AG1;"";VERKETTEN(" + ";AG1-VERSCHIEBUNG(A1;0;MIN(WENN(ISTFEHLER(VERGLEICH((AG1-(A1:AF1));A1:AF1;0));33;SPALTE(A1:AF1)))-1))))}

Etwas zerhackt:

=VERKETTEN(
"= ";
VERSCHIEBUNG(A1;0;MIN(WENN(ISTFEHLER(VERGLEICH((AG1-(A1:AF1));A1:AF1;0));33;SPALTE(A1:AF1)))-1);
WENN(
Bedingung AKTUELL()=AG1; Die Formel liefert bis hierher den Wert aus AG1, es gibt es keine mögliche Summe.
dann "";
sonst VERKETTEN(
" + ";
AG1-VERSCHIEBUNG(A1;0;MIN(WENN(ISTFEHLER(VERGLEICH((AG1-(A1:AF1));A1:AF1;0));33;SPALTE(A1:AF1)))-1)
)
)
)

Kernstück des Ganzen ist die Funktion :
VERSCHIEBUNG(A1;0;MIN(WENN(ISTFEHLER(VERGLEICH((AG1-(A1:AF1));A1:AF1;0));33;SPALTE(A1:AF1)))-1)
und darin wiederum die (eigentliche) Matrixfunktion:
WENN(ISTFEHLER(VERGLEICH((AG1-(A1:AF1));A1:AF1;0));33;SPALTE(A1:AF1)))

Das Teil auseinandergedröselt:
1. Schritt: (AG1-(A1:AF1))
Bilde nacheinander die Differenz aus AG1 und jedem einzelnen Wert aus A1:AF1
→ Ergebnis ist eine einzeile Matrix mit den Differenzwerten
2. Schritt: VERGLEICH((AG1-(A1:AF1));A1:AF1;0)
Vergleiche die Differenzen mit den Werten aus A1:AF1
3. Schritt: WENN(ISTFEHLER(VERGLEICH((AG1-(A1:AF1));A1:AF1;0));33;SPALTE(A1:AF1))
Wenn die Differenz nicht gefunden wird, dann nimm Spalte Nr. 33, sonst die Spalte in der die Differenz gefunden wurde.
→ Ergebnis ist eine einzeile Matrix mit den Spaltenwerten (meistens also 33)
4. Schritt: MIN(WENN(ISTFEHLER(VERGLEICH((AG1-(A1:AF1));A1:AF1;0));33;SPALTE(A1:AF1)))
Wähle das Minimum der Spaltenwerte, d. h. wenn es keine Summezerlegung gibt bleibt es bei 33 ansonsten im Beispiel der 1. Zeile den Wert 19
5. Schritt: VERSCHIEBUNG(A1;0;MIN(WENN(ISTFEHLER(VERGLEICH((AG1-(A1:AF1));A1:AF1;0));33;SPALTE(A1:AF1)))-1)
Nimm den Wert aus der Zelle, die von A1 aus um den (um 1 reduzierten) Spaltenwert verschoben ist.
Im Beispiel „rutschen“ wir von A1 um 18 nach rechts zu A19 und erhalten den Wert 36.


Ich hoffe, das ist so halbwegs nachvollziebar... (Zwischenzeitlich habe ich auch nicht mehr durchgesehen :shock: )
Für den letzten Teil der Verkettung wollte ich eigentlich auch die Aktuell()-Funktion nutzen, aber sie tat mit nicht den gewünschten Gefallen :? .
Dateianhänge
summenkombination3.ods
(9.04 KiB) 83-mal heruntergeladen

Re: Summe der Werte einer Zeile passend zu einem Wert

von mikeleb » Di, 05.08.2014 12:05

Hallo,

nochmal ich ...
Ich habe die Sache (Summenzerlegung) der Übersichtkeit halber mal auf drei Spalten verteilt und optisch etwas aufgehübscht 8) .
Dateianhänge
summenkombination2.ods
(8.98 KiB) 95-mal heruntergeladen

Re: Summe der Werte einer Zeile passend zu einem Wert

von mikeleb » Di, 05.08.2014 00:10

Hallo,

das Problem ist nicht so einfach zu lösen, auch wenn es auf den ersten Blick so aussieht.
Ich hoffe, es nun gelöst zu haben (und richtig verstanden :) ).
Dateianhänge
summenkombination.ods
(8.18 KiB) 102-mal heruntergeladen

Re: Summe der Werte einer Zeile passend zu einem Wert

von Bockenheimer » Mo, 04.08.2014 23:30

Hi,
ich glaube, hier musst du dich noch ein bisschen deutlicher ausdrücken. Okay: 118+18 ist 136. Aber was hat das mit Zeile 9 zu tun und den Ziffernreihen deines Beispiels...?
Gruß
Bockenheimer

Nach oben