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
Summe der Werte einer Zeile passend zu einem Wert
Moderator: Moderatoren
-
- ***
- Beiträge: 61
- Registriert: Mi, 11.07.2012 22:08
Re: Summe der Werte einer Zeile passend zu einem Wert
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
).
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) 101-mal heruntergeladen
Gruß,
mikeleb
mikeleb
Re: Summe der Werte einer Zeile passend zu einem Wert
Hallo,
nochmal ich ...
Ich habe die Sache (Summenzerlegung) der Übersichtkeit halber mal auf drei Spalten verteilt und optisch etwas aufgehübscht
.
nochmal ich ...
Ich habe die Sache (Summenzerlegung) der Übersichtkeit halber mal auf drei Spalten verteilt und optisch etwas aufgehübscht

- Dateianhänge
-
- summenkombination2.ods
- (8.98 KiB) 94-mal heruntergeladen
Gruß,
mikeleb
mikeleb
Re: Summe der Werte einer Zeile passend zu einem Wert
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
)
Für den letzten Teil der Verkettung wollte ich eigentlich auch die Aktuell()-Funktion nutzen, aber sie tat mit nicht den gewünschten Gefallen
.
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

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) 82-mal heruntergeladen
Gruß,
mikeleb
mikeleb
Re: Summe der Werte einer Zeile passend zu einem Wert
Hallo HeritzP,
mir hilft an der Stelle immer, die Zwischenergebnisse sichtbar zu machen (siehe Anhang).
mir hilft an der Stelle immer, die Zwischenergebnisse sichtbar zu machen (siehe Anhang).
- Dateianhänge
-
- summenkombination3_1.ods
- (18.91 KiB) 79-mal heruntergeladen
Gruß,
mikeleb
mikeleb