matrixformel funktioniert nicht

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: matrixformel funktioniert nicht

Re: matrixformel funktioniert nicht

von echo » So, 30.11.2008 13:47

Hallo Hans
Zustimmung auf der ganzen Line.
Kleiner Zusatz:
Was ich gar nicht mag ist , wenn solche Diskussion angeschoben werden wenn die gestellte Frage noch nicht abschließend beantwortet ist.
Das trift bei mir hier aber ja nicht zu, also nur weiter so.

Dein Fall 1 und Fall 2 beschreibt mE. auch genau den Unterscheid von Excel zu Calc
=N(WAHR)
Ich habe mal die Formel mal sowohl in Excel wie auch in Calc eingegeben.
Ergebnis ist natürlich jedesmal 1
Aber bei Excel bleibt die Formel so wie sie ist in der Zelle stehen
während bei Calc die Formel automatisch in =N(1) geändert wird.

Schönen Sonntag
Holger

Re: matrixformel funktioniert nicht

von hawe » So, 30.11.2008 12:18

Also ich finde diese Diskussion gut und sinnvoll, weil dadurch den Dingen auf den Grund gegangen wird, oder?
Und nicht wie so oft eine ggf. suboptimale Lösung nur deshalb stehen bleibt, weil sie das Problem halt irgendwie löst und die Beteilgten an Verstehen, Begründen bzw. Optimieren kein INteresse haben.

ICh wäre nie auf die Idee gekommen N() anzustellen, weil N per se Text, also Zahlen im Text, nach numerisch castet. UNd ein logischer Ausdruck (True/False) ist nun mal kein Text.
Was läuft also ab:
Fall 1: Boolean*Boolean=Numerisch
Dann sind wir dort, wo wir hinwollen und N() ist überflüssig - setzt eine automatische Typumwandlung voraus.
Fall 2: Boolean*Boolean=Boolean
Dann ist N() im Weg, weil N() per se Text, also Zahlen in einem Text, nach numerisch wandelt und logische Ausdrücke liefern weder Text noch Zahl sondern TRUE/FALSE. Dann ist * eine andere Schreibweise für UND/AND.
Fall 3: Booelan*Boolean*Numerisch=Numerisch
Der sichere Weg. Die Multiplikation mit Zahl erzwingt eine Wandlung nach Numerisch - sollte in XL UND Calc das gewünschte Ergebnis haben.

Nach meinen UNterschungen ist das Problem die VERGLEICH-Funktion, die in OO<3.0 keinen Array bildet.

Re: matrixformel funktioniert nicht

von echo » So, 30.11.2008 02:42

Hallo
Ja, natürlich kann man die Klammern von N() weg lassen, das habe ich in meiner Tabelle auch gemacht weil sie überflüssig sind.
Dort habe ich sogar auch das *1 ganz weg gelassen, das funktioniert bei OO, .....anders bei Excel, dort geht nicht.
Aber das liegt wohl daran, dass es sich dabei um eine Matrixformel handelt.
Ich bin zwar neu beim Umgang mit OO aber, Das sehe ich anders,
so lange man nicht die max. Anzahl an Klammerebenen überschreite kannst du doch so viele Klammen um eine Multiplikation machen wie man lustig ist,
das Ergebnis muss doch immer das selbe sein.
Das ist schlicht weg die gleiche Berechnung ob nun mit oder ohne umschließende Klammer.
Wenn es denn so sein soll kann ich die *1 auch in die Mitte oder ans Ende bringen
da es alles Multiplikatoren sind muss das auch funktionieren.
=INDEX(eintragen;VERGLEICH(1;((eintragen_von<=B3)*1*(eintragen_bis)>=B3);0))

Was ich {bis jetzt] nicht ganz verstehe ich, warum die die erste Formel mit N() nicht funktioniert hat.
Das könnte allerdings in der Tat was mit der Matrix-Formel zu tun haben,
denn mit einfachen Gleichungen kann N() scheinbar umgehen.

Na denn. Schöne Grüße
Holger

Re: matrixformel funktioniert nicht

von balu » So, 30.11.2008 01:05

Hallo Holger,

durch deine vohergehenden postings war nicht eindeutig zu erkennen, wie man denn nun die Formel umzuschreiben hat. Denn wenn man N() rausnimmt, entfallen ja dadurch zwei Klammern (), weil ja jede Funktion eine öffnende "(" und eine schließende ")" Klammer hat. Das ist nun mal halt so vorgeschrieben.

Und wie ich eben feststellen musste, spielt es keine rolle ob man die Formel so

Code: Alles auswählen

{=INDEX(eintragen;VERGLEICH(1;1*((eintragen_von<=N4)*(eintragen_bis)>=N4);0))}
oder aber auch so

Code: Alles auswählen

{=INDEX(eintragen;VERGLEICH(1;1*(eintragen_von<=N4)*(eintragen_bis)>=N4;0))}
schreibt.
Denn beide funktionieren gleichermaßen richtig, in der 3er-Version :o
Also jetzt gibt es sogar zwei Variationen wie man die Formel schreiben kann. Aber das liegt wohl daran, dass es sich dabei um eine Matrixformel handelt.

Und ja! Da darfst dich wirklich freuen, dass Du eine Lösung gefunden hast. :D
Und ich bin mal wieder etwas mehr erstaunt darüber was sich in der 3er geändert hat, auch wenn es nur eine "kleinigkeit" ist.



Gruß
balu

Re: matrixformel funktioniert nicht

von echo » So, 30.11.2008 00:21

Hallo @balu
Danke für die Antwort und mit Böses hat es garnichts zu tun,
Ich freue mich sehr das ich eine Lösung gefunden habe.

Aber
an welche ["falsche"] Schreibweise hast du überhaupt gedacht?

Wenn ich N() durch 1* ersetze kann Ich mit allerbesten willen keinen Unterschied mehr zwischen deinem Beispiel und meiner "Ur-Formel" erkennen.
[Mal abgesehen von einem anderen Bezug]

>> hier "meine" alte Formel und dein Vorschlag zum vergleich
=INDEX(eintragen;VERGLEICH(1;N((eintragen_von<=F12)*(eintragen_bis)>=F12);0))
=INDEX(eintragen;VERGLEICH(1;1*((eintragen_von<=N3)*(eintragen_bis)>=N3);0))

Danke und Gruß
Holger

Re: matrixformel funktioniert nicht

von balu » Sa, 29.11.2008 12:24

Hallo Leute,

ich will weder echo, noch hawe, etwas böses. :wink:

Ich möchte nur noch mal deutlich darauf hinweisen, dass die gefundene Lösung, N() mit 1* zu ersetzen, erst ab der OOo-3 Version funktioniert. Und das folgedessen die richtige schreibweise wie folgt aussieht.

Code: Alles auswählen

=INDEX(eintragen;VERGLEICH(1;1*((eintragen_von<=N3)*(eintragen_bis)>=N3);0))
Und natürlich nicht vergessen die Formel mit Strg+Shift+Enter abzuschließen :wink:


Gruß
balu

Re: matrixformel funktioniert nicht

von echo » Di, 25.11.2008 23:09

Hallo Hans, ist ja ganz nett da drüber zu schreiben..
Normalerweise ist es nicht erforderlich, die Funktion N innerhalb einer Formel einzusetzen
Da haben wir schon wieder einen Unterschied gefunden:
Wenn ich mir meine Ur-Formel ansehe

=INDEX(eintragen;VERGLEICH(1;N((eintragen_von<=F12)*(eintragen_bis)>=F12);0))

dann gibt mir (eintragen_von<=F12)*(eintragen_bis)>=F12) entweder WAHR oder FALSCH zurück.
Ohne N() 0der 1*.. funktioniert EXCEL-Vergleich() nicht.

Und OO kann N() nicht obwohl die Funktion bekannt ist.
Nette Geschichte.

Trotzdem gefällt mit OO auch sehr gut.
Ist halt ein wenig gewöhnungsbedürftig
Gruß Holger

Re: matrixformel funktioniert nicht

von hawe » Di, 25.11.2008 22:26

Holger, für dich aus der XL-Help
Syntax

N(Wert)

Wert ist der Wert, den Sie in eine Zahl umwandeln möchten. N wandelt Werte gemäß der folgenden Tabelle um.
8<---

Hinweise
Normalerweise ist es nicht erforderlich, die Funktion N innerhalb einer Formel einzusetzen, da Excel Werte bei Bedarf automatisch umwandelt. Diese Funktion steht aus Gründen der Kompatibilität zu anderen Tabellenkalkulationsprogrammen zur Verfügung.

Das gleiche gilt für WERT

In der Regel ist es nicht erforderlich, die Funktion WERT innerhalb einer Formel zu verwenden, da Microsoft Excel Text bei Bedarf automatisch in Zahlen umwandelt. Diese Funktion steht aus Gründen der Kompatibilität zu anderen Tabellenkalkulationsprogrammen zur Verfügung.
Vielleicht kommt die Botschaft doch noch bei Dir an ;-)...

Re: matrixformel funktioniert nicht

von echo » Di, 25.11.2008 22:22

@hawe
auch wenn es nicht an der Osterformel liegt, deine Antwort war trotzdem genial richtig.
Ich habe N() aus der Formel raus geschmissen ( 1* ....) und schon ist alles ok.

Also Dankeschön für (deine) eure Hilfe
Holger

Re: matrixformel funktioniert nicht

von echo » Di, 25.11.2008 22:07

OK, kleiner Nachtag :
Text kann auch Excel nicht berechnen.

So, bitte zurück zum Problem, danke
schöne grüße Holger

Re: matrixformel funktioniert nicht

von hawe » Di, 25.11.2008 22:03

Wer streitet, denn?

Re: matrixformel funktioniert nicht

von echo » Di, 25.11.2008 22:02

Bitte Bitte nicht steiten und
ich suche keine andere Osterformel und ich frage die Oserformel auch nicht ab.
Es sind meine Termine die alle samt Datumswerte sind.
Sie werden durch die Matrix-Formel abgefragt
hat also mir meinem Problem wirklich nichts zu tun

gruß Holger

Re: matrixformel funktioniert nicht

von hawe » Di, 25.11.2008 21:48

@Balu
Die Hetterich-Formel liefert falsche Werte für das Osterdatum in Calc und vor allem liefert sie Text zurück.
Und seine ArrayFormeln die das Datum abfragen sind auf numerische Werte abgestellt- da kann nix zurück kommen, wenn man Text mit Datumswerten vergleicht, oder? UNd deshalb ist die Hetterich-Formel sein Hauptproblem, selbst wenn sie richtig rechnen würde, erhält er kein Ergebnis über dei Arrayformenl, weil wegen Typemismatch der Daten.
XL konvertiert Text automatisch nach Zahl oder Datum und Calc nicht!
Was da raus kommt - ein funktionierender Kalender (suchen und ersetzen - you know...)

PS: Was hat Server hier für eine Zeit, arbeitet der auch mit der Hetterich-Formel :-)?

Re: matrixformel funktioniert nicht

von echo » Di, 25.11.2008 21:38

Hallo zusammen,
erst mal danke für eure Mühe,
Auch für den Hinweis auf die Osterformel.
Da bin ich auch schon drauf gestoßen weil auf einmal meine Ferien nicht mit den Feiertagen überein stimmten.
Wie @balu schon schreibt, ist nicht mein Problem trotzdem danke.

Ja, und bisserl schämen sollte ich mich.
Da es wie geschrieben nicht so richtig funktionierte, war das erste was ich gemacht habe, die neuste Version runter zu landen.
da versucht man sein Problem so deutlich wie irgendwie möglich zu schreiben und vergisst die hälfte...
Sorry.

Mal schauen was da noch raus kommt, ist ja ganz schön reger Betrieb hier.
Danke Holger

Re: matrixformel funktioniert nicht

von balu » Di, 25.11.2008 21:15

Hallo HW,

was hat denn die Hetterich-Ostersonntag-Formel mit seinem Hauptproblem zu tun?
Das versteh ich nicht :roll:


Gruß
balu

Nach oben