Grundlegende Regeln bei der Verwendung des Formel-Assistenten zur Definition von Kennzahlen: - Dezimalzahlen werden mit einem Punkt statt Komma definiert (z.B. 0.3 anstatt 0,3)
- Prozentzahlen können als ganze Zahl mit %-Symbol angegeben werden (z.B. 15% statt 0.15)
- Funktionsparameter müssen in normalen Klammern übergeben werden (z.B. sum({c010, r010}))
- Werden in einer Formel unterschiedliche Tabellen referenziert, müssen diese als Teil der Zellen- bzw. Bereichsdefinition vorkommen (z.B. {C_01.00, r700, c010} = {C_05.01, r360, c060})
- Es werden folgende Operatoren verwendet:
- + für Addition
- - für Subtraktion
- * für Multiplikation
- / für Division
- = für Gleichheit
- != für Ungleichheit
- < für kleiner
- > für grösser
- <= für kleiner gleich
- >= für grösser gleich
Definition von Zellen und Bereichen: - Eine Zelle kann wie folgt definiert werden: {r010, c010} für Zeile 010, Spalte 010. Dabei gilt:
- Eine Zeile wird immer von einem kleinen r (für Row) angeführt, gefolgt vom Koordinatencode der Zelle
- Eine Spalte wird immer von einem kleinen c (für Column) angeführt, gefolgt vom Koordinatencode der Spalte
- Ein Sheet (bzw. eine Z-Achse) wird immer von einem kleinen s (für Sheet) angeführt, gefolgt vom Koordinatencode des Sheets
- Die Angabe der Tabelle ist optional, sofern diese eindeutig ist und in der entsprechenden Spalte (T1) angegeben wurde
- Bereiche können wie folgt definiert werden, dabei gelten für Spalte, Zeile und Sheet die gleichen Regeln:
- Der Start des Bereichs wird wie auch bei der Zellendefinition angegeben (z.B. {r010}), gefolgt von einem Bindestrich und dem Ende des Bereichs. Das Ende des Bereichs kann wahlweise mit dem Achsenliteral oder ohne definiert werden (z.B. {r010-060} oder {r010-r060}
- Bereiche können weiterhin explizit als Auswahl angegeben werden, dabei werden die einzelnen Teile mit einem Komma separiert (z.B. {C 01.00, c010, (r070, r092, r250, r300, r340, r370-390, r430-510, r524)})
- Ebenfalls als Bereich zählen alleinstehende Angaben von Teilen, z.B. entspricht {r010} den kombinierten Werten der Zeile 010 über alle vorhandenen Spalten
- Verfügt eine Tabelle über offene Zeilen bzw. Sheets (Z-Achsen), können diese über rNNN (für Zeilen) respektive sNNN (für Z-Achsen) angesprochen werden
Funktionen:
- Folgende Funktionen können genutzt werden:
- sum() => Berechnet die Summe aus dem in den Klammern angegebenen Bereich. Z.B.: sum({S.05.01.02.02, C0210, R1410, sZ Axis:}, {S.05.01.02.02, C0220, R1420, sZ Axis:}) . Ergebnis: 30000
- min() => Berechnet das Minimum aus dem in den Klammern angegebenen Bereich. Z.B.: min({S.05.01.02.02, C0210, R1410, sZ Axis:}, {S.05.01.02.02, C0220, R1420, sZ Axis:}) . Ergebnis: 10000
- max() => Berechnet das Maximum aus dem in den Klammern angegebenen Bereich. Z.B.: max({S.05.01.02.02, C021, R1410, sZ Axis:}, {S.05.01.02.02, C0220, R1420, sZ Axis:}) . Ergebnis: 20000
- abs() => Berechnet die nicht negative, absolute Zahl aus der in den Klammern angegebenen Zelle. Z.B.: abs({S.05.01.02.02, C0200, R1410, sZ Axis:}) . Ergebnis: 15000
- if()
- => Überprüft mehrere Bedingungen. Syntax: if (Bedingung1, Bedingung2 falls Bedingung1 wahr ist, Bedingung3 falls Bedingung1 falsch ist) . Z.B.: if( {S.05.01.02.02, C0210, R1410, sZ Axis:} == 11000 , {S.05.01.02.02, C0220, R1410, sZ Axis:} == 21000 , {S.05.01.02.02, C0220, R1410, sZ Axis:} == 20000 ) . Ergebnis: true (weil 20000 = 20000)
- => Gibt einen Wert anhand einer Bedingung zurück. Syntax: if (Bedingung1, Wert falls Bedingung1 wahr ist, Wert falls Bedingung1 falsch ist) . Z.B.: if( {S.05.01.02.02, C0210, R1410, sZ Axis:} == 11000 , 'Erwarteter Wert gefunden', 'Warnung, unerwarteter Wert gefunden!') . Ergebnis: Warnung, unerwarteter Wert gefunden!
- count() => Zählt die Anzahl der wahren Ausdrücke innerhalb der Klammer. Z.B.: count({S.05.01.02.02, C0210, R1410, sZ Axis:} == 10000, {S.05.01.02.02, C0220, R1410, sZ Axis:} == 11000) . Ergebnis: 1
- like() => Muss genau 2 Parameter vom Typ String haben und vergleicht ob diese identisch sind. Z.B.: like({S.01.02.01.01, r0010, c0010, sZ Axis:}, '..1.') . Der "." steht für ein beliebiges Zeichen. "like" kann nur in Kombination mit "select" verwendet werden. Gibt "true" zurück, wenn der Wert der Zelle z.B. "XT13" ist.
- select() => Gibt alle Zellen aus einem bestimmten Suchraum zurück, für die die angegebenen Bedingungen wahr sind. Es müssen mindestens 2 Argumente angegeben werden. Z.B.: select({S.06.02, rNNN, c0170, sZ Axis:}, LIKE({S.06.02, rNNN, c0290, sZ Axis:}, '..1.')) . Wählt alle Zellen der Spalte c0170 aus, in deren Reihen die Funktion LIKE({S.06.02, rNNN, c0290, sZ Axis:}, '..1.') wahr ist.
- exists () => Gibt an, ob die angegebene Zelle einen Wert besitzt. Kann nur mit einem Argument verwendet werden. Z.B.: exists({S.05.01.02.02, C0210, R1410, sZ Axis:}) . Ergebnis: true
- not() => Gibt das Gegenteil des angegebenen boolischen Ausdrucks zurück. Z.B.: not(exists({S.05.01.02.02, C0210, R1410, sZ Axis:})) . Ergebnis: false
Bedingungen und Auswahlwerte: - Bedingungen
- Bedingungen können nach dem „if then else"-Prinzip beschrieben werden, dabei steht hinter dem „if"-Schlüsselwort eine Bedingung, welche sich mit wahr oder falsch beantworten lässt. Trifft diese zu, wird der „then"-Teil ausgeführt. Trifft sie nicht zu, wird der „else"-Teil ausgeführt. Der „else"-Teil ist optional. Z.B.: if ({S.05.01.02.02, C0200, R1410, sZ Axis:} != 0) then ({S.05.01.02.02, C0210, R1410, sZ Axis:})
- Bedingungen können mit den Schlüsselwörtern „and" und „or" erweitert werden, Beispiel: if ( {SE.06.02.16.02, C0290,r2,sZ Axis:} == 'XT31') then ({SE.06.02.16.02,EC0271,r2,sZ Axis:} == 0 and {SE.06.02.16.01,C0270,r3,sZ Axis:} == 0) . Für "and" kann auch "&&" und für "or" kann "||" verwendet werden.
- Auswahlwerte
|