Z.b:
3 4 7 9 4 7 3 0 0 1 1 2
x=5 =>Summe von kleinsten bis fünftkleinsten Wert: 0+0+1+1+2=4
Z.b:
3 4 7 9 4 7 3 0 0 1 1 2
x=5 =>Summe von kleinsten bis fünftkleinsten Wert: 0+0+1+1+2=4
eine Matrixformel hilft hier weiter:
=SUM(SMALL(G8:N8;ROW($A$1:OFFSET($A$1;J18-1;0))))
(auf deutsch vermutlich: SUMME, KKLEINSTE, BEREICH.VERSETZEN)
Im Beispiel sind die Werte in G8:N8, die Vorgabe für die x Kleinsten zu Addierenden steht in J18.
Die Matrix durchläuft x (J18) Schleifen durch Einsatz der OFFSET/BEREICH.VERSETZEN Funktion und addiert den jeweils x-kleinsten Wert über die SUM/SUMME Funktion.
Matrixformel mit Strg+Umsch+Enter abschließen!
Probier's mal aus. Würde mich interessieren, ob das so in Deinem Anwendungsfall klappt.
Gruß,
Helmut.
Stimmt das was ich hingeschrieben habe?
Kannst Du mir die Formel ggf. noch etwas genauer erklären?
stimmt alles.
$A$1 ist der Anker, wird für die Schleife der Array/Matrixformel benötigt. Was in A1 steht spielt keine Rolle. Wichtig ist, dass die Zeilennummern, die x (J18) Zeilen unter A1 stehen, als Schalter an die KKLEINSTE Funktion übergeben werden, denn es sollen ja die x kleinsten Werte ermittelt und dann addiert werden.
Die Formel ist vermutlich etwas schwer zu erklären, wie viele Array/Matrixformeln ... hoffe, die Erläuterungen bisher helfen etwas.
Klappt die Formel bei Dir?
Gruß,
Helmut.
{=SUMME(WENN(A1:L1<=KKLEINSTE(A1:L1;5);A1:L1;0))}
{} nicht mit eingeben, sondern Formel mit Strg+Umsch+Enter abschließen
Probleme wird es geben bei z.B.:
3 4 7 9 4 7 3 0 0 1 1 3
x=5 =>Summe von kleinsten bis fünftkleinsten Wert: 0+0+1+1+3+3+3=11, da die 3 ja 3mal vorkommt (auch bei der anderen Version).
Holger
bezogen auf A1:A10:
=SUMMENPRODUKT(N(KKLEINSTE(A1:A10;ZEILE(1:5))))
summiert die 5 kleinsten Werte.
Gruß Boris
das Problem mit "3 4 7 9 4 7 3 0 0 1 1 3" tritt bei "meiner Variante" nicht auf, da KKLEINSTE nur genau x-mal ausgeführt wird:
{=SUMME(KKLEINSTE($C$28:$Q$28;ZEILE($A$1:BEREICH.VERSCHIEBEN($A$1;B26-1;0))))}
Man müsste diese Formel nur noch ev. gegen Fehler absichern, z.B. dass B26 (Anzahl Durchläufe) nicht größer als die Anzahl der Werte wird usw.
Aber {=SUMME(WENN(A1:L1<=KKLEINSTE(A1:L1;5);A1:L1;0))} ist trotzdem eine tolle Idee und noch einen Tick kürzer als mit dem BEREICH.VERSCHIEBEN "Trick" ;-)
Grüße,
Helmut.
P.S.: Gibt es irgendeine Anleitung zu Array-Formeln im Internet?
P.S.:
Das gleiche erreicht man auch mit
=SUMMEWENN(A1:L1;"<="&KKLEINSTE(A1:L1;5))
reicht nicht einfach
=SUMME(KKLEINSTE(A1:L1;ZEILE(1:5)))
?
Als Arrayformel eingeben.
Gruß
Martin Beck