Seite 1 von 2
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 14:28
von Mondblatt24
Hallo,
wimsey hat geschrieben: Fr, 25.10.2019 13:20
Geht das auch einfacher? So etwa(Summe=A15:C17)? Und geht so etwas auch mit den anderen Grundrechenarten?
=Summe(A15:C17)
mal ausprobiert?
Gruß Peter
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 14:43
von Mondblatt24
Von weiteren Einträgen innerhalb der Matrix war keine Rede.
=Summe(A15;B16;C17)
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 14:46
von Stephan
wimsey hat geschrieben: Fr, 25.10.2019 14:29
Klar!
Aber das gibt die Summe des gesamten Quadrates nicht der Diagonalen!
Und =Produkt(A15+B16) ergibt nur die Summe.
z.B. mit folgender Matrixformel:
{=SUMME(A1:C3*(ZEILE(A1:C3)=SPALTE(A1:C3)))}
siehe:
https://www.extendoffice.com/de/documen ... al.html#a1
Gruß
Stephan
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 15:10
von Mondblatt24
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 15:11
von Mondblatt24
wimsey hat geschrieben: Fr, 25.10.2019 14:52
Nun, kennst Du eine Lösung?
Da:
=SUMME(L56:Q61*(ZEILE(L56:Q61)=SPALTE(L56:Q61)))
kommt bei mir Null raus.(Treppe abwärts L56 bis Q61.
Ist eine Matrixformel mit
Strg+Shift+Enter abschließen
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 15:37
von Stephan
=SUMME(L56:Q61*(ZEILE(L56:Q61)=SPALTE(L56:Q61)))
ist schlicht keine Matrixformel und wird deshalb nicht wie gewünscht funktionieren.
Folge deshalb dem Ratschlag:
Ist eine Matrixformel mit Strg+Shift+Enter abschließen
oder setze den Haken bei Matrix im Assistenten:
Gruß
Stephan
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 16:10
von Stephan
Ich komme auch mit Strg+Shift+Enter nur auf Null.
mutmaßlich weil Du versuchst eine bereits abgeschlossene Formel nachträglich erneut mit Strg+Shift+Enter abzuschliessen.
Wenn ja dann:
markiere die Zelle mit der Formel, lösche in der Rechenzeile die letzte KLammer der Formel, tippe diese Klammer nun per Tastatur gleich wieder ein und schliesse nun mit Strg+Shift+Enter ab.
Wie ist der Name der Funktion?
Abschliessen einer Matrixformel? (so würde ich es nennen)
Gruß
Stephan
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 16:20
von Stephan
Geht das auch mit den anderen Grundrechenarten?
Dem Grunde nach nur mit Multiplikation, denn Subtraktion und Division sind doch nur sinnvoll mit jeweils zwei Zellen denkbar.
Eine Formel für Multiplikation finde ich auf die Schnelle nicht, evtl. muss man das mit einer benutzerdefinierten Funktion lösen, z.B. sollte gehen:
Code: Alles auswählen
Function diagonal_mult(SpalteLinkeZelle, ZeileLinkeZelle, SpalteRechteZelle, ZeileRechteZelle)
With ThisComponent.CurrentController.ActiveSheet
If ZeileLInkeZelle > ZeileRechteZelle Then
'von links aufwärts nach rechts
z = ZeileLinkeZelle
s = SpalteLinkeZelle
k = .getCellByPosition(s, z).Value
Do While s < SpalteRechteZelle
s = s + 1
z = z - 1
k = k * .getCellByPosition(s, z).Value
Loop
Else
'von links abwärts nach rechts
z = ZeileLinkeZelle
s = SpalteLinkeZelle
k = .getCellByPosition(s, z).Value
Do While s < SpalteRechteZelle
s = s + 1
z = z + 1
k = k * .getCellByPosition(s, z).Value
Loop
End If
End With
diagonal_mult = k
End function
und aufrufen mit:
=DIAGONAL_MULT(0;3;3;0)
für Multiplizieren der Diagonale A4:D1
Gruß
Stephan
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 17:56
von Stephan
wie implementiere ich denn das makro?
benutzerdefinierte Funktionen müssen bei OO in der Bibliothek Standard abgelegt sein um zu funktionieren. Beispiel anhängend.
Gruß
Step
Re:
Verfasst: Fr, 25.10.2019 18:07
von Stephan
wimsey hat geschrieben: Fr, 25.10.2019 17:59
Auch bei deinem Beispiel habe ich #Wert!
Wieso "auch"?
Vorher hattest Du #Name, was daran liegt das die Funktion nicht richtig abgelegt war, wenn Du jetzt #Wert hast dann ist die Ausführung von Makros deaktiviert. Aktiviere diese Unter Extras-Optionen-OpenOffice-Sicherheit-Makrosicherheit indem Du dort auf "niedrig" oder "mittel" stellst. Bei "mittel" kommt jedes Mal eine Nachfrage wo Du Makros zulassen musst, bei "niedrig" kommt keine Nachfrage.
Gruß
Stephan
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 18:07
von mikeleb
Hallo,
Code: Alles auswählen
=SUMMENPRODUKT(L56:Q61;EINHEITSMATRIX(ZEILEN(L56:Q61)))
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 18:16
von mikeleb
Hallo,
für das Produkt:
Code: Alles auswählen
=PRODUKT(MMULT((L56:Q61)*EINHEITSMATRIX(ZEILEN(L56:Q61));ZEILE(L56:Q61)/ZEILE(L56:Q61)))
Ergänzung:
oder auch so
Code: Alles auswählen
=PRODUKT(WENN(ZEILE(L56:Q61)-ZEILE(L56)=SPALTE(L56:Q61)-SPALTE(L56);L56:Q61;1))
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 18:26
von Stephan
wimsey hat geschrieben: Fr, 25.10.2019 18:12
hi stephan:
Zeile 3 des Scripts:
Basic-Laufzeitfehler
Argument ist nicht optional
Die Beispieldatei funktioniert bei mir tadellos. Falls Du selbst die Formel geändert hast ist mutmaßlich ein Argument falsch, so wie es in der Fehlermeldung steht.
Gruß
Stephan
Re: diagonale Addition/Multiplikation
Verfasst: Fr, 25.10.2019 21:41
von Stephan
Ich habe das script so von dir übernommen. Warum das dann nicht hinhaut???
Ich weiß nicht was es heißt wenn Du davon redest das Script zu übernehmen. Du musst die Datei öffnen und gut, es muss nichts gesondert übernommen werden.
Wie sieht denn der Aufruf der Funktion in der Zelle aus? Steht dort (in Zelle D11) weiterhin:
=DIAGONAL_MULT(0;5;5;0)
?
Gruß
Stephan
Re: diagonale Addition/Multiplikation
Verfasst: Sa, 26.10.2019 09:48
von Stephan
Ergebnis ist weiterhin #WERT!
dann werden keine Makros ausgeführt.
Da beim Öffnen Makro-Viren-Möglichkeits-Meldung kam, habe ich in Extras/Einstellungen/OO/Sicherheit/Makrosicherheit die Sicherheitsstufe auf niedrig gesetzt.
Was nichts bewirkt, solange das Dokument nicht geschlossen und neu geöffnet wird.
F9-Taste brachte aber kein neues Ergebnis.
Kann es auch nicht, da die benutzerdefinierte funktion keinen direkten Bezug auf eine Zelle nimmt
verwende UMSCHALT + STRG + F9
Auch das wird natürlich nur funktionieren, wenn nach dem Ändern der Makro-Sicherheitseinstellung das Dokument geschlossen und neu geöffnet wurde
Gruß
Stephan