Der Dialog Werte setzen nimmt einen einzeiligen, benutzerdefinierten Ausdruck und füllt ein oder mehrere Arbeitsblattspalten (oder Teile der Spalten) mit Werten, die durch den Ausdruck erzeugt werden. Der Ausdruck -- direkt im Feld Formel eingegeben -- kann arithmetische Operatoren, Spalten- und Zellenreferenzen, Funktionen, benutzerdefinierte Variablen, Konstanten etc. einbinden (siehe unten). Die Funktionen zur Syntaxfarbgebung im Dialog Werte setzen
Optionale Registerkartenz zur Programmierung:
Um Beispiele im Dialog Werte setzen zu laden, klicken Sie auf Formel, Sample laden > und wählen Sie auf der Liste der Beispielformeln. |
Seit Origin 2018 SR0 können Berechnungen auf Zellenebene (im Gegensatz zur Spaltenebene) durchgeführt werden. Siehe Mit einer Formel die Zellenwerte festlegen. |
Seit Origin 2017 SR0 ist die Vereinfachte Zellennotation (SCN) standardmäßig aktiviert. Wenn die SCN eingeschaltet ist, können Sie die vereinfachte Notation verwenden. Sie können auch die Notation vor 2017 verwenden, indem Sie entweder das Feld Spaltenformel oder die Spaltenbeschriftungszeile F(x)= verwenden. Beachten Sie jedoch, dass einige Beschränkungen gelten, wenn Sie die ältere Syntax "col" bzw. "wcol" verwenden.
Beim Öffnen der Origin-Dateien (OPJ, OGW etc.), die vor Origin 2017 gespeichert wurden, ist die SCN in der Arbeitsmappe ausgeschaltet. Sie kann jedoch auch in älteren Dateien über den Dialog Fenstereigenschaften aktiviert werden. Wenn Sie die vereinfachte Zellennotation nicht aktivieren (sie lassen das Kontrollkästchen Zellennotation für Tabellenkalkulationsblatt deaktiviert), müssen Sie die ältere Spalten- und Zellennotation in den Formeln in Werte setzen und F(x)= in allen betroffenenen Arbeitsmappen durchgehend verwenden.
Beachten Sie, dass die neue Zellennotation nur im Feld Spaltenformel und in der Beschriftungszeile F(x)= verwendet werden kann. Sie kann nicht im Feld Skript vor Anwenden der Formel unter Werte setzen und in LabTalk-Skripten an anderer Stelle in Origin verwendet werden.
Innerhalb eines gegebenen Arbeitsblatts werden Spalten- und Zellenreferenzen nun auf folgende Weise gemacht:
A; // Reference auf Spalte A im gleichen Blatt A1; // Referenz auf Spalte A, Zeile 1 im gleichen Blatt
Siehe Beispiele für Spaltenformel unten.
Vor Origin 2017 mussten Sie eine Bereichsvariable definieren, um Daten in anderen Blättern und Mappen in Ihren Formeln im Dialog Werte setzen zu verwenden. Wie in der Tabelle oben zu sehen, können Sie durch Verwendung der neuen Zellennotation direkte Referenzen zu Daten in anderen Blättern und Mappen vornehmen. Dies wird in der Beschriftungszeile F(x)= und im Feld Spaltenformel des Dialogs Werte setzen unterstützt. Die neue Zellennotation muss in den Zielmappen aktiviert werden.
Verwenden Sie die folgende Syntax:
1!A; // reference to column A in first sheet in the same book Sheet1!A; // reference to column A in a named sheet ([Sheet1]) in the same book [Book1]1!A; // reference to column A in the first sheet in another book ([Book1]) [Book2]Sheet1!B2; // reference to row 2 of column B, in a named sheet ([Sheet1]) in another book ([Book2])
Siehe Beispiele für Spaltenformel unten.
Standardmäßig ersetzt Origin den Blattkurznamen nicht automatisch beim Eingeben der Referenzen wie |
Ausdrücke können eine der folgenden Optionen enthalten. Beachten Sie, dass Bereichsvariablen vordefiniert sein müssen (z.B. Skript vor Anwenden der Formel), bevor Sie sie für den Ausdruck im Feld Spaltenformel verwenden können:
Datenbezüge | Variablen | Operatoren | Funktionen | Constants |
---|---|---|---|---|
�Muss im Feld Skript vor Anwenden der Formel, Skriptfenster etc. vordefiniert sein.
Beachten Sie, dass die Menübefehle Werte setzen wcol(1), Col(A), Funktionen und Variablen nützlich zum Durchsuchen und Einfügen von Datenreferenzen, Funktionen, Variablen und Konstanten in die Felder Formel bzw. Skript vor Anwenden der Formel sind. Ausgewählte Elemente werden beim Cursor eingefügt. Seit Origin 2017 SR0 unterstützen diese Menüfunktionen nur die ältere Spalten- und Zellennotation (keine neue Tabellenblattzellennotation). |
Es gibt eine schnelle Möglichkeit, ein bedingtes Kontroll- oder Schleifenskript zu laden, wenn Sie ein Skript in das Feld Skript vor Anwenden der Formel eingeben. Klicken Sie mit der rechten Maustaste auf das Feld Skript vor Anwenden der Formel, um Bedingt/Schleife unten im Kontextmenü auszuwählen. Wählen Sie dann eine gewünschte bedingte Struktur oder Schleife im Ausklappmenü. Die Syntax wird beim Cursor mit einfachen Kommentaren hinzugefügt. |
Hilfe für die Bedienelemente des Dialogs Werte setzen finden Sie unter Menüoptionen und Dialogbedienelemente.
Dies sind Beispiele für "alleinstehende" Ausdrücke, die im Feld Formel verwendet werden können.
Neue Zellennotation | Ältere Notation | Beschreibung |
---|---|---|
B - C | col(B)-col(C) | Ergibt die Differenz zwischen col(B)[i] and col(C)[i]. |
2!B - 3!C | N/A | Ergibt die Differenz zwischen Blattindex 2, col(B)[i], und Blattindex 3, col(C)[i]. |
[Book2]Sheet1!A - [Book3]Sheet1!A | N/A | Ergibt die Differenz zwischen [Book2]Sheet1!A[i] und [Book3]Sheet1!A[i]. |
[Book2]Sheet1!A - [Book3]Sheet1!A2 | N/A | Ergibt die Differenz zwischen [Book2]Sheet1!A[i] und [Book3]Sheet1!, Zelle A2. |
sin(pi*B) | sin(pi*col(B)) | Ergibt den Sinus von col(B)[i] mal Pi. |
today() | Keine Änderung | Ergibt das aktuelle Datum. |
A$ + B$ | col(A)$ + col(B)$ | Wandelt Spalte A und B intern in Zeichenketten um und fasst diese zusammen. |
A>0? A: Na() | col(A)>0? col(A): Na() | Wenn col(A) > 0, dann wird col(A) ausgegeben; ansonsten wird ein fehlender Wert ausgegeben (siehe LabTalk Utility Function, Na()). |
B-B1 | col(B)-col(B)[1] | Subtrahiert den ersten Punkt in Spalte B von allen anderen Werten in Spalte B. |
A + StartTime (Startzeit) | N/A | Fügt den Wert "StartTime" des benannten Bereichs zu den Werten in Spalte A hinzu. |
total(A[i-1:i+3]) | total(col(A)[i-3:i+3]) | Ergibt die Summe eines Unterbereichs von i-3 bis i+3 in col(A), wobei i der Zeilenindex ist. |
sum(A:C, D:G, F) | N/A | Ergibt die zeilenweise Summe der Werte in den Spalten A bis C, D bis G und F. |
(wcol(j)*2)-1 | Keine Änderung | Kann verwendet werden, um die j-te Spalte zu transformieren (alle ausgewählten Spalten), indem jeder Wert mit 2 multipliziert wird und 1 subtrahiert. |
Hinweis: Wenn Sie i und j im Dialog Werte setzen oder in der Spaltenbeschriftungszeile F(x)= verwenden, müssen Sie für sie Kleinbuchstaben verwenden. Die Großbuchstaben I und J werden als Spaltenkurznamen des Arbeitsblatts interpretiert. |
Verwenden Sie "end" oder "0", um die letzte Zelle in einer Spalte zu definieren, z. B. |
Seit Origin 2022 erhalten das Feld der Spaltenformel im Dialog Werte setzen und die Beschriftungszeile F(x)= Unterstützung durch die automatische Vervollständigung für LabTalk-unterstützte Funktionen und Bereiche mit Namen.
Wenn Sie die Funktion nicht nutzen möchten, können Sie sie für Spalten- und/oder Zellenformeln/F(x)= deaktivieren:
Wenn Sie Ihre Formeln zum Werte setzen mitsamt dem Code in Skript vor Anwenden der Formel und Python-Funktion erneut verwenden wollen, können Sie:
Bei Verwendung der neuen vereinfachten Syntax können Sie eine Spaltenformel in Spalte C definieren, die sich auf Werte in Spalte A und Spalte B bezieht. Fügen Sie dann eine Spalte zwischen Spalte A und B ein. Die Spaltenreferenzen in der Formel werden mit der Neuzuweisung der Spaltenkurznamen aktualisiert. Dieses Verhalten wird jedoch nicht unter irgendeiner der folgenden Bedingungen unterstützt:
Wenn eine Spaltenformel von einer dieser Bedingungen betroffen ist, wird die Spaltenformel nicht aktualisiert.
Das folgende kurze Tutorial zeigt Ihnen, wie Sie diesen Dialog verwenden, um Daten für eine simulierte Gaussian-Kurve zu erzeugen.
Origin unterstützt einen Teilbereich einer Spalte als Funktionsargument in dem Dialog Werte setzen. Zum Beispiel: Um die Summe eines Teilbereichs von i-3 bis i+3 in Spalte A zu berechnen (wobei "i" der Zeilenindex ist), können Sie eine Formel in dem Bearbeitungsfeld Spaltenformel eingeben. Total(A[i-3:i+3]) |
Das folgende kurze Tutorial zeigt Ihnen, wie Sie diesen Dialog verwenden, um Daten für mehrere Spalten gleichzeitig zu erzeugen.
range r1=[F1]F1!wcol(j); //"j" is the column index. range r2=[F2]F2!wcol(j);
Verwenden Sie zum Definieren von Variablen in Skript vor Anwenden der Formel Kleinbuchstaben für Variablennamen (z.B. "r1", nicht "R1"). Die Verwendung von Großbuchstaben erzeugt einen Fehler wie den folgenden: Die Beschränkung des Spaltenkurznamens ist aktiviert. R1 bezieht sich auf die Zelle und kann nicht als Variable definiert werden. Die Operation für Book1_G ist aufgrund eines Fehlers in den Skripten von Werte setzen fehlgeschlagen. |
Python-Funktionen können über das Feld Spaltenformel oder über die Registerkarte Skript vor Anwenden der Formel aufgerufen werden, abhängig von Ihren Anforderungen. Diese Funktionen können in einer externen Datei oder auf der Registerkarte Python-Funktion von Werte setzen definiert werden. Der Vorteil bei ihrer Definition im Dialog Werte setzen besteht darin, dass sie mit dem Projekt oder mit einer Vorlage zur wiederholten Nutzung gespeichert werden.
Python-Funktionen werden auf der Registerkarte mit folgender Form definiert ...
def ff(a)
...und auf der Registerkarte Skript vor Anwenden der Formel oder im Feld Spaltenformel aufgerufen mit ...
py.ff(a)
Weitere Informationen zur Verwendung von Python im Dialog Werte setzen finden Sie unter Python verwenden in Hilfsmitteln und Dialogen > Werte setzen.
Wenn die Zelle F(x)= (1) mit "py." beginnt und (2) eine in einer externen Datei definierten Python-Funktion aufruft, können Sie mit der rechten Maustaste auf die Zelle F(x)= klicken und Python-Datei öffnen wählen, um die Python-Funktion in der Entwicklungsumgebung (IDE) des Code Builder zu öffnen. |
Dieses einfache Tutorial zeigt Ihnen, wie Sie eine Funktion auf der Registerkarte Python-Funktion definieren und sie im Feld Spaltenformel aufrufen:
import numpy as np from scipy import signal def smooth(y,npts, norder): """ F:Fii Perform Savitzky-Golay smoothing using scipy signal """ #npts: number of points for smoothing window #norder: polynomial order y=signal.savgol_filter( np.array(y), npts, norder ) return y
py.smooth(B,101,3)