Seite 1 von 1

Logische Oprationen in Matrixfunktionen

Verfasst: Do 2. Nov 2017, 15:56
von DottoreG
Hallo,
ich versuche die Werte einer Spalte mit unterer und oberer Grenze zu prüfen. Dazu verwende ich eine Matrixfunktion:

Code: Alles auswählen

{=WENN(UND(A2:A41>=$G$2;A2:A41<=$H$2);"gut";"schlecht")}
leider kommt hier immer nur "schlecht" heraus. Ursache scheint zu sein, dass das logische Und hier nicht funktioniert. Ersetze ich es durch eine Multiplikation, funktioniert es:

Code: Alles auswählen

{=WENN((A2:A41>=$G$2)*(A2:A41<=$H$2);"gut";"schlecht")}
Ich konnte nirgends eine Ursache dafür finden. Daher frage ich hier an, ob mir jemand eine Erklärung dafür geben kann, und ob der Umweg über die Multiplikation der richtige Ausweg ist. (Noch ein Hinweis: Unter Excel sehe ich genau das gleiche Verhalten. Es scheint also so beabsichtigt zu sein. Nur, warum?)

Re: Logische Oprationen in Matrixfunktionen

Verfasst: Do 2. Nov 2017, 16:25
von Mondblatt24
Hallo,
warum Matrix?

Code: Alles auswählen

=WENN(UND(A2>=$G$1;A2<=$H$1);"gut";"schlecht")
Gruß Peter

Re: Logische Oprationen in Matrixfunktionen

Verfasst: Fr 3. Nov 2017, 08:45
von DottoreG
Genau aus dem Grund, wie er in der Hilfe beschrieben ist (https://help.libreoffice.org/Calc/Array ... rbeiten.3F):
Wann empfiehlt es sich, mit Matrixformeln zu arbeiten?

Verwenden Sie Matrixformeln, wenn Sie eine Berechnung mit unterschiedlichen Werten häufig wiederholen müssen. Wenn Sie die Berechnungsmethode zu einem späteren Zeitpunkt ändern möchten, müssen Sie nur eine einzige Formel, nämlich die Matrixformel, aktualisieren. Zum Hinzufügen einer Matrixformel wählen Sie den gesamten Matrixbereich aus und nehmen die erforderlichen Änderungen an der Matrixformel vor.

Da Matrixformeln den Arbeitsspeicher nicht sonderlich belasten, können sie auch als Platz sparende Alternative eingesetzt werden, wenn mehrere Werte zu berechnen sind. Darüber hinaus stellen Matrizen ein unverzichtbares Hilfsmittel für komplexe Berechnungen dar, denn sie erlauben es, mehrere Zellbereiche einzubeziehen. LibreOffice bietet verschiedene mathematische Funktionen für Matrizen wie z.B. MMULT zur Multiplikation zweier Matrizen oder SUMMENPRODUKT zur Ermittlung des skalaren Produkts zweier Matrizen.
Den Ansatz über normale Funktionen habe ich bisher verfolgt und wollte nun gerne umstellen. Dabei ist mir das Problem aufgefallen. Und ich verstehe doch so gerne, warum der Computer so tickt, wie er es gerade tut. :geek:

Re: Logische Oprationen in Matrixfunktionen

Verfasst: Fr 3. Nov 2017, 12:50
von mikele
Hallo,
der Grund, warum

Code: Alles auswählen

UND(A2:A41>=$G$2;A2:A41<=$H$2)
stets FALSCH liefert, wird sein, dass

Code: Alles auswählen

A2:A41>=$G$2;A2:A41<=$H$2
eine Matrix aus Wahrheitswerten liefert und nun per UND() geprüft wird, ob alle WAHR sind.
Schon bei

Code: Alles auswählen

UND(A2:A41>=$G$2)
tritt das Verhalten auf.

Re: Logische Oprationen in Matrixfunktionen

Verfasst: Fr 3. Nov 2017, 14:21
von DottoreG
Super!

Vielen Dank für diese Rückmeldung. Das erklärt vollständig das (sinnvolle) Verhalten.

... und nun die Lösung: Boolesch

Verfasst: So 25. Mär 2018, 12:07
von Lupo
... aus

UND(A2:A41>=$G$2;A2:A41<=$H$2)

wird korrekt

(A2:A41>=$G$2)*(A2:A41<=$H$2)