Discussion:
Frage an die Formelspezis
(zu alt für eine Antwort)
Franz Pölt
2003-08-02 08:27:57 UTC
Permalink
Hallo Boris & Co!

Ich probiere schon längere Zeit daran herum und hätte da auch einmal eine
Frage.

Problem: Minimum in einer Spalte, aber nicht Null

Matrixformel: {=MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8))}
liefert das korrekte Ergebnis

Summenprodukt: =SUMMENPRODUKT(MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8)))
liefert 0 obwohl wenn man die Formel analysiert noch das richtige Ergebnis
angezeigt wird - warum ist das so???

Vielleicht hat ja eine(r) von euch eine Erklärung?

mfG aus dem Salzkammergut
Franz
BorisX
2003-08-03 20:53:03 UTC
Permalink
Hi Franz,
Post by Franz Pölt
Hallo Boris & Co!
Ich probiere schon längere Zeit daran herum und hätte da
auch einmal eine
Post by Franz Pölt
Frage.
Problem: Minimum in einer Spalte, aber nicht Null
Matrixformel: {=MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8))}
liefert das korrekte Ergebnis
Summenprodukt: =SUMMENPRODUKT(MIN(WENN(B1:B8=0;MAX
(B1:B8);B1:B8)))
Post by Franz Pölt
liefert 0 obwohl wenn man die Formel analysiert noch das
richtige Ergebnis
Post by Franz Pölt
angezeigt wird - warum ist das so???
Vielleicht hat ja eine(r) von euch eine Erklärung?
Die Erklärung von Frank schient ja schon korrekt gewesen
zu sein (hab sie nur überflogen).

Wenn du die SUMMENPRODUKT-Formel als Matrixformel mit Strg-
Shift-Enter abschließt, dann erhälst du auch das korrekte
Ergebnis - da es hier halt um 2 verschiedene Matrizen geht.
Da das so ist, kannst du in diesem Fall auch auf
SUMMENPRODUKT zu Gunsten von SUMME verzichten.
Ansonsten ist SUMMENPRODUKT schon ne merkwürdige Funktion -
eigentlich dürfte sie ohne die { } gar nix können - da
sie´s aber in der Regel kann, ist sie einfach nur genial ;-
)
--
Gruß Boris
Franz Pölt
2003-08-04 21:24:36 UTC
Permalink
Hallo Boris,

Danke für deine Antwort, obwohl ich ehrlich gesagt immer noch nicht ganz
durchblicke:

=SUMMENPRODUKT((B1:B8<>0)*1)

hat ja auch nur eine Matrix, trotzdem zählt diese Formel alle Zellen
ungleich Null.

Würde die Aussage von Frank absolut stimmen, dass SUMMENPRODUKT immer zwei
Matrizen benötigt und eine fehlende durch lauter Nullen ersetzt, könnte IMHO
auch diese Formel nicht funktionieren, oder stehe ich da auf der Leitung?!?

Aber bevor jemand sagt, ein Narr kann mehr fragen als tausend Weise
beantworten können, werde ich mich einmal mit der Tatsache abfinden, dass
manchmal eben doch eine Matrixformel angewendet werden muss.

Schönen Dank noch einmal und ein freundliches

Servus aus dem Salzkammergut
Franz

"BorisX" <***@nospam.de> schrieb im Newsbeitrag news:01c501c35a01$3b491be0$***@phx.gbl...
Hi Franz,
Post by Franz Pölt
Hallo Boris & Co!
Ich probiere schon längere Zeit daran herum und hätte da
auch einmal eine
Post by Franz Pölt
Frage.
Problem: Minimum in einer Spalte, aber nicht Null
Matrixformel: {=MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8))}
liefert das korrekte Ergebnis
Summenprodukt: =SUMMENPRODUKT(MIN(WENN(B1:B8=0;MAX
(B1:B8);B1:B8)))
Post by Franz Pölt
liefert 0 obwohl wenn man die Formel analysiert noch das
richtige Ergebnis
Post by Franz Pölt
angezeigt wird - warum ist das so???
Vielleicht hat ja eine(r) von euch eine Erklärung?
Die Erklärung von Frank schient ja schon korrekt gewesen
zu sein (hab sie nur überflogen).

Wenn du die SUMMENPRODUKT-Formel als Matrixformel mit Strg-
Shift-Enter abschließt, dann erhälst du auch das korrekte
Ergebnis - da es hier halt um 2 verschiedene Matrizen geht.
Da das so ist, kannst du in diesem Fall auch auf
SUMMENPRODUKT zu Gunsten von SUMME verzichten.
Ansonsten ist SUMMENPRODUKT schon ne merkwürdige Funktion -
eigentlich dürfte sie ohne die { } gar nix können - da
sieŽs aber in der Regel kann, ist sie einfach nur genial ;-
)
--
Gruß Boris
Thomas Ramel
2003-08-05 04:50:10 UTC
Permalink
Grüezi Franz und Boris
Post by Franz Pölt
Danke für deine Antwort, obwohl ich ehrlich gesagt immer noch nicht ganz
=SUMMENPRODUKT((B1:B8<>0)*1)
hat ja auch nur eine Matrix, trotzdem zählt diese Formel alle Zellen
ungleich Null.
Ja, das ist dann das Äquvalent zu ZÄHLENWENN() - SUMMENPRODUKT() funzt auch
ganz gut mir 'nur' einer Matrix.
Post by Franz Pölt
Würde die Aussage von Frank absolut stimmen, dass SUMMENPRODUKT immer zwei
Matrizen benötigt und eine fehlende durch lauter Nullen ersetzt, könnte IMHO
auch diese Formel nicht funktionieren, oder stehe ich da auf der Leitung?!?
Nein, sthst Du nicht - das sehe ich genauso.
Post by Franz Pölt
Aber bevor jemand sagt, ein Narr kann mehr fragen als tausend Weise
beantworten können, werde ich mich einmal mit der Tatsache abfinden, dass
manchmal eben doch eine Matrixformel angewendet werden muss.
Bisher ist es mir (noch?) nicht gelungen, eine Formel mit MIN() in
SUMMENPRODUKT() nachzubilden, wenn die Nullwerte aussen vor bleiben sollten :-(
Post by Franz Pölt
Post by Franz Pölt
=SUMMENPRODUKT(MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8)))
liefert 0 obwohl wenn man die Formel analysiert noch das
richtige Ergebnis angezeigt wird - warum ist das so???
In der Bearbeitungsleiste markiert und mit F9 ausgewertet ergibt der
folgende Teil:

MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8))

das richtige Resultat - innerhalb von SUMMENPRODUKT() dann leider nicht mehr.
Auch mein Latein ist hier zu Ende
--
Mit freundlichen Grüssen

Thomas Ramel
- MVP für Microsoft-Excel -

[Win 2000Pro SP-4 / xl2000 SP-3]
Frank Lauter
2003-08-05 21:20:54 UTC
Permalink
Post by Thomas Ramel
Post by Franz Pölt
Danke für deine Antwort, obwohl ich ehrlich gesagt immer noch nicht ganz
Ich bin mir auch nicht sicher, da ich Summenprodukt bisher noch nie benötigt
habe, aber wenn wir Ideen zusammentragen, kommen wir vielleicht hinter die
Lösung.
Post by Thomas Ramel
Post by Franz Pölt
Würde die Aussage von Frank absolut stimmen, dass SUMMENPRODUKT immer zwei
Matrizen benötigt und eine fehlende durch lauter Nullen ersetzt, könnte IMHO
auch diese Formel nicht funktionieren, oder stehe ich da auf der Leitung?!?
Diese Lösung hatte ich vermutet, da in der Dokumentation von MS steht "...
zwei bis 30 Matritzen...".

Ich schlage vor, im folgenden die Funktionsweise der Formeln im einzelnen
mal
durchzudiskutieren.

Meiner Meinung nach wird Summenprodukt zu Summe, wenn nur eine Matrix
übergeben wird.


=SUMMENPRODUKT((B1:B8<>0)*1)

hat ja auch nur eine Matrix, trotzdem zählt diese Formel alle Zellen
ungleich Null.

Die Ungleichung liefert Wahrheitswerte, die durch die Multiplikation zu 0
oder 1 werden. Die Summe darüber liefert also die Anzahl.



ZÄHLENWENN()

Liefert aus einer Matrix eine Zahl als Ergebnis und braucht deshalb nicht
als Matrixformel eingegeben werden.

={MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8))}

Liefert das richtige Zwischenergebnis, da als Matrixformel eingegeben.
Post by Thomas Ramel
Post by Franz Pölt
Post by Franz Pölt
=SUMMENPRODUKT(MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8)))
liefert 0 obwohl wenn man die Formel analysiert noch das
richtige Ergebnis angezeigt wird - warum ist das so???
Es handelt sich so nicht um eine Matrixformel. Ich glaube, der Wenn-Teil
gibt
jetzt nur einen Wert weiter.
Ist das Ergebnis abhängig von der Eingabeposition der Formel? Ich glaube,
die Formeln beziehen sich dann bevorzugt auf die gleiche Zeile.
Post by Thomas Ramel
Bisher ist es mir (noch?) nicht gelungen, eine Formel mit MIN() in
SUMMENPRODUKT() nachzubilden, wenn die Nullwerte aussen vor bleiben sollten :-(
Was soll überhaupt berechnet werden? Warum reicht nicht die Verwendung von
Summe als Matrixformel?

Viele Grüße

Frank
Frank Lauter
2003-08-05 23:15:26 UTC
Permalink
Wenn der Bereich B1 bis B8 mit folgenden Werten gefüllt ist :
"";1;0;2;1;"";1;"" und in D4 die Formel eingegeben wird, dann ergibt:

=MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8)) 0
{=MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8))} 1

Analysiert man

=MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8))

mit F9 ergibt sich 1 !

Anscheinend entscheidet Excel bei der Analyse mit F9 selbst, ob es sich um
eine Makroformel handelt, da während der Bearbeitung nicht kalr ich wie der
Anwender die Formeleingabe abschließt.

Das Problem liegt also nicht an Summenprodukt, sondern der Interpretation
der inneren Formel. Die Analyse mit F9 nimmt automatisch eine Marixformel
an, die Eingabe erfolgt dann jedoch ohne Matrixklammern. Daher das
abweichende Ergebnis.

Ich hoffe jetzt ist das Problem gelöst.

Viele Grüße

Frank

Franz Pölt
2003-08-04 21:27:21 UTC
Permalink
Hallo Frank,

schönen Dank auch dir für deine Mühe, obwohl ich (siehe Rückmeldung an
Boris) diesen Befehl immer noch nicht ganz durchschaue, wann er nun wirklich
2 Matrizen benötigt.

mfG aus dem Salzkammergut
Franz
Hallo Franz
Post by Franz Pölt
Matrixformel: {=MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8))}
liefert das korrekte Ergebnis
Summenprodukt: =SUMMENPRODUKT(MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8)))
liefert 0 obwohl wenn man die Formel analysiert noch das richtige Ergebnis
angezeigt wird - warum ist das so???
Summenprodukt multipliziert die Werte zweier Matrizen und addiert die
Ergebnisse.
Zeile Spalte A Spalte B A*B
1 5 2 10
2 3 4 12
3 2 1 2
4 3 3 9
------
Summe 33
Summenprodukt(A1:A4;B1:B4)
Bei der Formel SUMMENPRODUKT(
MIN(WENN(B1:B8=0;MAX(B1:B8);B1:B8)) )
wird nur eine Matrix übergeben. Excel nimmt dann als zweite ein Matrix aus
Nullen, die Produkte sind dann alle Null und die Summe darüber
selbstverständlich auch.
Viele Grüße
Frank
Loading...