Table of Contents
BI4-Controlling Formel- und Berichtsfunktionen
Allgemein
Für die Berechnung, Transformation und Manipulation von Werten und Texten sowie die Einführung von Logikabläufen wurden etliche Funktionen, von denen auch ein Großteil in Excel zu finden ist, in das System übernommen. Diese sind nachfolgend nach ihrem Funktionszweck-aufgelistet.
Mehrere Funktionen können auch kombiniert und ineinander verschachtelt werden.
WICHTIG!
Sind in der Überschrift eines Unterkapitels mehrere Befehle durch einen Schrägstrich getrennt, so sind dies verschiedene Namen für ein und die selbe Funktion. Der Einfachheit halber wird beim Syntax und beim Beispiel dann nur der erste angeführte Befehl aufgeführt. Die Parameter und die Reihenfolge dieser sind jedoch bei allen angeführten Befehlen identisch.
Datum & Zeit Funktionen
ACTANIVERSARY
Die Funktion ACTANIVERSARY gibt den Jahrestag im jeweiligen Jahr, basierend auf dem zweiten übergebenen Datum, zurück. Liegen beide Daten im selben Kalenderjahr, so wird der Jahrestag zurückgegeben. Andernfalls wird der Jahrestag im Jahr des 2. Datum zurückgeliefert.
Syntax: ACTANIVERSARY(Jahrestag;Datum)
Jahrestag: ein Datum für die Ermittlung eines Jahrestages.
Datum: ein Datum, das nach dem Jahrestag liegt.
Beispiel: ACTANIVERSARY(01.05.2018;04.01.2019) liefert als Datum den 01.05.2019 zurück.
BDATEDIFF
Die Funktion BDATEDIFF liefert die Differenz zwischen 2 Daten unter Berücksichtigung des Bankkalenders in ganzen Tagen zurück. Dabei wird jeder Monat mit 30 Tagen gerechnet.
Syntax: BDATEDIFF(Startdatum;Enddatum)
Startdatum: erstes Datum für die Ermittlung der Differenz im Format DD.MM.YYY
Enddatum: zweites Datum für die Ermittlung der Differenz im Format DD.MM.YYY
Beispiel: BDATEDIFF(01.02.2018;01.03.2018) liefert als Wert 30 (Tage) zurück.
CALCDATE
Die Funktion CALCDATE berechnet auf Gund des übergeben Datums und einer Datumsformel ein neues Datum.
Syntax: CALCDATE(Datum;Datumsformel)
Datum: ein gültiges Datum seit 01.01.1753 im Format DD.MM.YYYY
Datumsformel: eine Formel, die aus Vorzeichen, Zahlen und den Zeichen
„L“, … laufend
„T“ … Tag,
„W“ … Woche,
„M“ … Monat,
„Q“ … Quartal und
„J“ … Jahr.
Beispiel: CALCDATE(01.05.2018;+1M-4T)
Zum Startdatum (01. Mai 2018) wird zuerst 1 Monat hinzugerechnet und anschließend 4 Tage wieder abgezogen. Als Ergebnis wird er 28.Mai 2018 zurückgeliefert.
DATEADD
Die Funktion DATEADD addiert zum angegebenen Startdatum die Anzahl Tage / Wochen / Monate / Quartale / Jahre hinzu und gibt das daraus entstehende Datum zurück
Syntax: DATEADD(Datum;Datumsteil;Wert)
Datum: ein gültiges Datum seit 01.01.1753 im Format DD.MM.YYYY
Datumsteil: ein Buchstabe, der den Teil des Datums darstellt, der addiert werden soll. Folgende Buchstaben sind dafür erlaubt:
„T“ … Tag
„W“ … Woche
„M“ … Monat
„Q“ … Quartal
„J“ … Jahr
Wert: eine Ganzzahl, sowohl positiv als auch negativ, die zum angegebenen Datum addiert werden soll.
Beispiel: DATEADD(01.05.2018;W;2) addiert 2 Wochen zum angegebenen Datum und gibt dann den Wert 15.05.2018 als Datum zurück.
DATEDIFF
Die Funktion DATEDIFF liefert die Differenz zwischen 2 Daten in ganzen Tagen zurück.
Syntax: DATEDIFF(Startdatum;Enddatum)
Startdatum: erstes Datum für die Ermittlung der Differenz im Format DD.MM.YYY
Enddatum: zweites Datum für die Ermittlung der Differenz im Format DD.MM.YYY
Beispiel: DATEDIFF(01.05.2018;15.05.2018) liefert als Wert 14 (Tage) zurück.
DAY
Die Funktion DAY liefert die laufenden Nummer des Tages innerhalb des Monats als Zahl zurück.
Syntax: DAY(Datum)
Datum: ein gültiges Datum seit 01.01.1753 im Format DD.MM.YYYY
Beispiel: DAY(15.05.2018) liefert als Wert 15 zurück.
ENDDATE
Die Funktion ENDDATE liefert den letzten Tag eines Zeitbereichs als Datum zurück. Dazu wird ein Teil eines Datums übergeben. Die Funktion ermittelt dann, ob es sich um ein Jahr, ein Quartal, einen Monat oder eine Woche handelt und liefert den letzten Tag als Datum zurück. Der Datumscode wird meistens durch einen entsprechenden Filter, z.B. Leistungsdatum -> Jahr.Monat, übergeben.
Syntax: ENDDATE(Datumscode)
Datumscode: eine Jahreszahl, ein Quartal, ein Monat oder eine Wochenbezeichnung
Beispiel: ENDDATE(2018) liefert den 31.12.2018 als Datum zurück.
ENDDATE(2018Q3) liefert den 30.09.2018 als Datum zurück.
ENDDATE(2018.05) liefert den 31.05.2018 als Datum zurück.
ENDDATE(2018W44) liefert den 04.11.2018 als Datum zurück.
ENDOFMONTH / MONTHEND
Die Funktion ENDOFMONTH liefert den letzten Tag des Monats des übergebenen Datums zurück.
Syntax: ENDOFMONTH(Datum)
Datum: ein gültiges Datum seit 01.01.1753 im Format DD.MM.YYYY
Beispiel: ENDOFMONTH(15.05.2018) liefert den 31.05.2018 als Datum zurück.
ENDOFWEEK
Die Funktion ENDOFWEEK liefert den letzten Tag der Woche (Sonntag) des übergebenen Datums zurück.
Syntax: ENDOFWEEK(Datum)
Datum: ein gültiges Datum seit 01.01.1753 im Format DD.MM.YYYY
Beispiel: ENDOFWEEK(15.05.2018) liefert den 20.05.2018 als Datum zurück, da der 15.05. ein Dienstag war
FIRSTDATE
Die Funktion FIRSTDATE liefert das erste befüllte Datumsfeld der übergebenen Datumsfelder zurück.
Syntax: FIRSTDATE(Datum1;Datum2;…;DatumN)
Datum1;Datum2;…;DatumN: einzelne Datumsfelder, die übergeben werden
Beispiel: FIRSTDATE(01.01.1753;31.05.2018;01.01.1753;27.06.2018) liefert den 31.05.2018 als Datum zurück, da dies das erste befüllte Feld ist. Statt NULL wird bei Datumsfeldern der 01.01.1753 übergeben.
FORMATDATE
Die Funktion FORMATDATE liefert das übergebene Datum in dem Format, wie es die Formel vorgibt, als Text zurück.
Syntax: FORMATDATE(Datum;Formel)
Datum: ein gültiges Datum seit 01.01.1753 im Format DD.MM.YYYY
Formel: eine Formel
Beispiel: FORMATDATE(15.05.2018;MM/DD/YYYY) liefert als Text 05/15/2018 zurück.
LASTANIVERSARY
Die Funktion LASTANIVERSARY gibt den letzten Jahrestag, der vor dem 2. Datum liegt, zurück.
Syntax: LASTANIVERSARY(Jahrestag;Datum)
Jahrestag: ein Datum für die Ermittlung eines Jahrestages.
Datum: ein Datum, das nach dem Jahrestag liegt.
Beispiel: LASTANIVERSARY(01.05.2018;01.08.2019) liefert als Datum den 01.05.2019 zurück.
MAXDATE / MAXDATEWITHEMPTYMAX
Die Funktion MAXDATE liefert das größte Datum aus einem Datumsbereich zurück. Ein NULL-Wert wird dabei als 31.12.2099 zurückgegeben.
MINDATE / MINDATEWITHEMPTY
Die Funktion MINDATE liefert das kleinste Datum aus einem Datumsbereich zurück. Ein NULL-Wert wird dabei als 01.01.1753 zurückgegeben.
MONTH
Die Funktion MONTH liefert die laufenden Nummer des Monats innerhalb des Jahres als Zahl zurück.
Syntax: MONTH(Datum)
Datum: ein gültiges Datum seit 01.01.1753 im Format DD.MM.YYYY
Beispiel: MONTH(15.05.2018) liefert als Wert 5 zurück.
NEXTANIVERSARY
Die Funktion NEXTANIVERSARY gibt den nächsten Jahrestag, der nach dem 2. Datum liegt, zurück.
Syntax: NEXTANIVERSARY(Jahrestag;Datum)
Jahrestag: ein Datum für die Ermittlung eines Jahrestages.
Datum: ein Datum, das nach dem Jahrestag liegt.
Beispiel: NEXTANIVERSARY(01.05.2018;04.01.2019) liefert als Datum den 01.05.2019 zurück.
STARTDATE
Die Funktion STARTDATE liefert den ersten Tag eines Zeitbereichs als Datum zurück. Dazu wird ein Teil eines Datums übergeben. Die Funktion ermittelt dann, ob es sich um ein Jahr, ein Quartal, einen Monat oder eine Woche handelt und liefert den ersten Tag als Datum zurück. Der Datumscode wird meistens durch einen entsprechenden Filter, z.B. Leistungsdatum -> Jahr.Monat, übergeben.
Syntax: STARTDATE(Datumscode)
Datumscode: eine Jahreszahl, ein Quartal, ein Monat oder eine Wochenbezeichnung
Beispiel: STARTDATE (2018) liefert den 01.01.2018 als Datum zurück.
STARTDATE (2018Q3) liefert den 01.07.2018 als Datum zurück.
STARTDATE (2018.05) liefert den 01.05.2018 als Datum zurück.
STARTDATE (2018W44) liefert den 29.10.2018 als Datum zurück.
YEAR
Die Funktion YEAR liefert das Jahr als Zahl zurück.
Syntax: YEAR(Datum)
Datum: ein gültiges Datum seit 01.01.1753 im Format DD.MM.YYYY
Beispiel: YEAR(15.05.2018) liefert als Wert 2018 zurück.
Mathematische Funktionen
ABS
Die Funktion ABS liefert den absoluten Betrag eines Wertes zurück.
Syntax: ABS(Wert)
Wert: beliebige Dezimalzahl mit Vorzeichen
Beispiel: ABS(-5) liefert als Ergebnis 5 zurück.
CEIL / CEILING
Die Funktion CEILING liefert die Zahl auf die nächste Ganzzahl aufgerundet zurück
Syntax: CEIL(Zahl)
Zahl: eine Zahl mit Nachkommastellen
Beispiel: CEIL(1.547,33) liefert als Zahl den Wert 1.548,00 zurück.
DYNROUND / DYNRUNDEN
Die Funktion DYNROUND rundet von vorne auf die angegebenen Stellen.
Syntax: DYNROUND(Zahl1;Zahl2)
Zahl1: Zahl, die gerundet werden soll
Zahl2: Zahl, die die Stellen wiederspiegelt, auf die gerundet werden soll
Beispiel: DYNROUND(30486,25;1000) liefert als Zahl den Wert 30490,00 zurück.
DYNROUND(523,62;1000) liefert als Zahl den Wert 523,60 zurück.
DYNRQUOTIENT
Die Funktion DYNRQUOTIENT liefert bei einer Zahl die Stelle zurück, auf der gerundet wurde.
Syntax: DYNRQUOTIENT(Zahl1;Zahl2)
Zahl1: Zahl, die gerundet werden soll
Zahl2: Zahl, die die Stellen wiederspiegelt, auf die gerundet werden soll
Beispiel: DYNRQUOTIENT (30486,25;1000) liefert als Zahl den Wert 10 zurück.
DYNRQUOTIENT (523,62;1000) liefert als Zahl den Wert 0,1 zurück.
FLOOR
Die Funktion FLOOR liefert die Zahl auf die nächste Ganzzahl abgerundet zurück.
Syntax: FLOOR(Zahl)
Zahl: eine Zahl mit Nachkommastellen
Beispiel: FLOOR(1.547,33) liefert als Zahl den Wert 1.547,00 zurück.
INTERESTEXTENDED
Die Funktion INTERESTEXTENDED dient zur taggenauen Berechnung von Zinsen.
Damit die Berechnung funktioniert, muss auf Zeilenebene eine Gliederung nach dem Datum vorhanden sein.
Syntax: INTERESTEXTENDED(Betrag;Prozentsatz;Abrechnung;Abrechnungszeitpunkt;Kalender)
Betrag: eine Spalte, in der der Ausgangsbetrag steht
Prozentsatz: Prozentsatz, mit dem der Betrag verzinst wird
Abrechnung: Parameter, der angibt, ob es eine Abrechnung von Kosten gibt.
Mögliche Werte: 0…..keine Abrechnung
1…..Abrechnung aktiv
Abrechnungszeitpunkt: Parameter, der angibt, wann die Abrechnung erfolgt.
Mögliche Werte: N…..Abrechnung im nachhinein
V…..Abrechnung im vorraus
Kalender: Parameter, der angibt welcher Kalender verwendet werden soll.
Mögliche Werte: CD…Kalendertage
BD…Banktage
MAX
Die Funktion MAX liefert den größten Wert zurück, der an die Funktion übergeben wurde.
Syntax: MAX(Zahl1;Zahl2;…;ZahlN)
Zahl1;Zahl2;…;ZahlN: eine Reihe von Zahlen oder auch eine Spalte
Beispiel: MAX(37;25;69;18) liefert als Zahl den Wert 69 zurück.
MAX(B$) liefert den größten Wert in der Spalte B zurück.
MIN
Die Funktion MIN liefert den kleinsten Wert zurück, der an die Funktion übergeben wurde.
Syntax: MIN(Zahl1;Zahl2;…;ZahlN)
Zahl1;Zahl2;…;ZahlN: eine Reihe von Zahlen oder auch eine Spalte
Beispiel: MIN(37;25;69;18) liefert als Zahl den Wert 18 zurück.
MIN(B$) liefert den kleinsten Wert in der Spalte B zurück.
MINEXCEPT0
Die Funktion MINEXCEPT0 liefert den kleinsten Wert zurück, der an die Funktion übergeben wurde. Die Zahl 0 wird dabei aber ausgelassen
Syntax: MINEXCEPT0(Zahl1;Zahl2;…;ZahlN)
Zahl1;Zahl2;…;ZahlN: eine Reihe von Zahlen oder auch eine Spalte
Beispiel: MINEXCEPT0(37;25;69;18;0) liefert als Zahl den Wert 18 zurück.
MIN(B$) liefert den kleinsten Wert in der Spalte B zurück.
ROUND / RUNDEN
Die Funktion ROUND rundet eine Zahl kaufmännisch auf die nächste Ganzzahl auf bzw. ab.
Syntax: ROUND(Zahl;Nachkommastellen)
Zahl: eine Zahl mit Nachkommastellen oder auch eine Spalte
Nachkommastellen: Anzahl der Nachkommastellen, auf die gerundet werden soll
Beispiel: ROUND(37,25;1) liefert als Zahl den Wert 37,3 zurück.
SHARE
Die Funktion SHARE liefert den Prozentanteil eines Teilbetrags vom Gesamtbetrag zurück.
Syntax: SHARE(Teilbetrag;Gesamtbetrag)
Teilbetrag: eine Zahl oder auch eine Spalte
Gesamtbetrag: eine Zahl oder auch eine Spalte, von dem der Prozentsatz gerechnet werden soll
Beispiel: SHARE(140;200) liefert den Wert 70 als Prozentsatz zurück.
SHAREWIHRANGE
Die Funktion SHARE berechnet den Prozentanteil eines Teilbetrags vom Gesamtbetrag und legt diesen auf den übergebenen Bereich um. Zurückgegeben wird dann jedoch nicht der Prozentsatz sondern ein Wert, der den Prozentanteil des übergebenen Bereichs entspricht.
Syntax: SHARE(Teilbetrag;Gesamtbetrag;Bereichsbeginn;Bereichsende)
Teilbetrag: eine Zahl oder auch eine Spalte
Gesamtbetrag: eine Zahl oder auch eine Spalte, von dem der Prozentsatz gerechnet werden soll
Bereichsbeginn: eine Zahl oder eine Spalte, die den Beginn des Wertebereichs darstellt
Bereichsende: eine Zahl oder eine Spalte, die das Ende des Wertebereichs darstellt
Beispiel: SHAREWITHRANGE(140;200;1000;2000) liefert den Wert 1.700 zurück.
Text Funktionen
CHARCOUNT
Die Funktion CHARCOUNT liefert die Anzahl an Zeichen in einem Text bis zu einem Trennzeichen zurück.
Syntax: CHARCOUNT(Text;Trennzeichen)
Text: eine beliebige Zeichenfolge.
Trennzeichen: ein Trennzeichen, das das Ende der Zeichenfolge markiert.
Beispiel: CHARCOUNT(Das ist ein Text!;!) liefert 16 als Zahl zurück.
CON / CONCAT /CONCATE / CONCATENATE / VERKETTEN
Die Funktion CONCAT verkettet unterschiedliche Datentypen und gibt diese als Text zurück. Dabei kann ein beliebiges Trennzeichen zwischen die einzelnen Werte eingefügt werden.
Syntax: CONCAT(Wert 1;Wert 2;…;Wert n)
Wert 1: eine Zeichenfolge, eine Zahl, ein Datum, etc.
Wert 2: eine Zeichenfolge, eine Zahl, ein Datum, etc.
Wert n: eine Zeichenfolge, eine Zahl, ein Datum, etc.
Beispiel: CONCAT(387;´-´;15.05.2018) liefert als Zeichenfolge 387-15.05.2018 zurück.
CONSP / CONWSP / CONCATSP / CONCATWSP / CONCATWITHSPACE / CONCATENATEWITHSPACE
Die Funktion CONCATSP ist ähnlich der Funktion CONCAT nur wird hier immer zwischen den Werten ein Leerzeichen eingefügt.
Syntax: CONCATSP(Wert 1;Wert 2;…;Wert n)
Wert 1: eine Zeichenfolge, eine Zahl, ein Datum, etc.
Wert 2: eine Zeichenfolge, eine Zahl, ein Datum, etc.
Wert n: eine Zeichenfolge, eine Zahl, ein Datum, etc.
Beispiel: CONCATSP(387;15.05.2018) liefert als Zeichenfolge 387 15.05.2018 zurück.
CONTAIN / CONTAINS
Die Funktion CONTAINS durchsucht eine Zeichenfolge nach einer anderen Zeichenfolge und liefert den Wert 1 zurück, wenn diese gefunden wurde. Andernfalls liefert sie den Wert 0 zurück.
Syntax: CONTAINS(Text 1;Text 2)
Text 1: eine Zeichenfolge, die durchsucht werden soll.
Text 2: eine Zeichenfolge, nach der gesucht werden soll.
Beispiel: CONTAINS(Das ist ein Text;ist) liefert den Wert 1 zurück, da die Zeichenfolge „ist“ gefunden wurde.
CONWD / CONCATD / CONCATWD /CONCATWDOT / CONCATWITHDOT / CONCATENATEWITHDOT
Die Funktion CONCATD ist ähnlich der Funktion CONCATSP nur wird hier immer zwischen den Werten ein Punkt eingefügt.
Syntax: CONCATD(Wert 1;Wert 2;…;Wert n)
Wert 1: eine Zeichenfolge, eine Zahl, ein Datum, etc.
Wert 2: eine Zeichenfolge, eine Zahl, ein Datum, etc.
Wert n: eine Zeichenfolge, eine Zahl, ein Datum, etc.
Beispiel: CONCATD(387;15.05.2018) liefert als Zeichenfolge 387.15.05.2018 zurück.
ENDWITH / ENDSWITH
Die Funktion ENDSWITH durchsucht eine Zeichenfolge nach einer anderen Zeichenfolge und liefert den Wert 1 zurück, wenn diese am Ende der Zeichenfolge gefunden wurde. Andernfalls liefert sie den Wert 0 zurück.
Syntax: ENDSWITH(Text 1;Text 2)
Text 1: eine Zeichenfolge, die durchsucht werden soll.
Text 2: eine Zeichenfolge, nach der am Ende der Zeichenfolge gesucht werden soll.
Beispiel: ENDSWITH(Das ist ein Text;ist) liefert den Wert 0 zurück, da die Zeichenfolge „ist“ gefunden wurde, diese aber nicht am Ende der Zeichenfolge steht.
FIRSTFILLED / FF
Die Funktion FIRSTFILLED liefert den Wert des ersten gefüllten Feldes zurück.
Syntax: FIRSTFILLED(Text1;Text2;…;TextN)
Text1;Text2;…;TextN: eine Zeichenfolge, die in verschiedenen Textfeldern steht.
Beispiel: FILLEDTEXTFIELD(NULL;Rechnung;Null) liefert 2 den Wert „Rechnung“ zurück, da das erste und das dritte Feld leer sind.
LEFT / LINKS
Die Funktion LEFT liefert die angegebene Anzahl an Zeichen vom Anfang einer Zeichenfolge zurück.
Syntax: LEFT(Text;Anzahl)
Text: eine beliebige Zeichenfolge.
Anzahl: die Anzahl an Zeichen, die zurückgegeben werden soll.
Beispiel: LEFT(Das ist ein Text;5) liefert „Das i“ zurück.
LEN / LENGTH
Die Funktion LEN liefert die Länge einer Zeichenfolge zurück.
Syntax: LENGTH(Text)
Text: eine beliebige Zeichenfolge.
Beispiel: LENGTH(Das ist ein Text) liefert 16 als Zahl zurück.
MID / PART / SUBSTR / SUBSTRING
Die Funktion SUBSTRING liefert die Anzahl an Zeichen in einer Zeichenfolge zurück.
Syntax: SUBSTRING(Text;Start;Anzahl)
Text: eine beliebige Zeichenfolge.
Start: Nummer des Zeichens, ab dem die Zeichenfolge zurückgegeben werden soll.
Anzahl: Anzahl der Zeichen, die zurückgegeben werden sollen.
Beispiel: SUBSTRING(Das ist ein Text;4;3) liefert „ist“ als Zeichenfolge zurück.
REMOVESTRING
Die Funktion REMOVESTRING entfernt eine Zeichenfolge aus einer anderen.
Syntax: REMOVESTRING(Text 1;Text 2)
Text 1: eine beliebige Zeichenfolge.
Text 2: die Zeichenfolge, die entfernt werden soll.
Beispiel: REMOVESTRING(Das ist ein Text;ist) liefert „Das ein Text“ als Zeichenfolge zurück.
REPLACESTRING
Die Funktion REPLACESTRING entfernt eine Zeichenfolge aus einer anderen.
Syntax: REPLACESTRING(Text 1;Text 2;Text 3)
Text 1: eine beliebige Zeichenfolge.
Text 2: die Zeichenfolge, die entfernt werden soll.
Text 3: die Zeichenfolge, die ersetzt werden soll.
Beispiel: REPLACESTRING (Das ist ein Text;ein;1) liefert „Das ein 1 Text“ als Zeichenfolge zurück.
RIGHT / RECHTS
Die Funktion RIGHT liefert die angegebene Anzahl an Zeichen vom Ende einer Zeichenfolge zurück.
Syntax: RIGHT(Text;Anzahl)
Text: eine beliebige Zeichenfolge.
Anzahl: die Anzahl an Zeichen, die zurückgegeben werden soll.
Beispiel: RIGHT(Das ist ein Text;6) liefert „n Text“ zurück.
RIGHTCUT
Die Funktion RIGHTCUT schneidet den angegebenen Text nach der gewünschten Anzahl Zeichen ab.
Syntax: RIGHTCUT(Text;Anzahl)
Text: eine beliebige Zeichenfolge.
Anzahl: die Anzahl an Zeichen, nach denen der Text abgeschnitten werden soll.
Beispiel: RIGHTCUT(Das ist ein Text;11) liefert „Das ist ein“ zurück.
STARTWITH / STARTSWITH
Die Funktion ENDSWITH durchsucht eine Zeichenfolge nach einer anderen Zeichenfolge und liefert den Wert 1 zurück, wenn diese am Ende der Zeichenfolge gefunden wurde. Andernfalls liefert sie den Wert 0 zurück.
Syntax: STARTSWITH(Text 1;Text 2)
Text 1: eine Zeichenfolge, die durchsucht werden soll.
Text 2: eine Zeichenfolge, nach der am Anfang der Zeichenfolge gesucht werden soll.
Beispiel: STARTSWITH(Das ist ein Text;ist) liefert den Wert 1 zurück, da die Zeichenfolge „Das“ gefunden wurde und diese am Anfang der Zeichenfolge steht.
TEXTFIELD
Die Funktion TEXTFIELD teilt eine Zeichenfolge, die ein oder mehrere Trennzeichen enthält, auf einzelne Zeichenfolgen auf. Dabei wird das Vorkommen, das mit der Zahl angegeben wird, zurückgegeben.
Syntax: TEXTFIELD(Text;Trennzeichen;Zahl)
Text: eine Zeichenfolge, die ein oder mehrere Trennzeichen enthält.
Trennzeichen: eine Trennzeichen mit dem der Text zerteilt werden soll.
Zahl: eine Zahl, die das Vorkommen beschreibt, das zurückgegeben werden soll.
Beispiel: TEXTFIELD(Rechnung18-38715;-;2) liefert als Text „38715“ zurück.
TRIM
Die Funktion TRIM entfernt Leerzeichen am Anfang und am Ende einer Zeichenfolge.
Syntax: Trim(Text)
Text: eine Zeichenfolge, die ein oder mehrere Trennzeichen enthält.
Beispiel: TRIM( Das ist ein Text ) liefert die Zeichenfolge „Das ist ein Text“ ohne die führenden und folgenden Leerzeichen.
UAD / UPPERALPHADIGIT
Die Funktion UPPERALPHADIGIT konvertiert eine Zeichenfolge in Großbuchstaben. Dabei werden alle Umlaute sowie das „ß“ ersetzt. Weiters werden nur die Zahlen von 0 bis 9 sowie die Buchstaben A bis Z zurückgegeben. Satzzeichen und andere Sonderzeichen werden dabei ausgefiltert.
Syntax: UPPERALPHADIGIT(Text)
Text: eine Zeichenfolge, die ein oder mehrere Trennzeichen enthält.
Beispiel: UPPERALPHADIGIT(Das ist ein Text!) liefert die Zeichenfolge „DASISTEINTEXT“.
WORD
Die Funktion WORD teilt eine Zeichenfolge auf einzelne Zeichenfolgen auf. Als Trennzeichen dient hier das Leerzeichen.
Syntax: WORD(Text)
Text: eine Zeichenfolge, die ein oder mehrere Leerzeichen enthält.
Beispiel: WORD(Das ist ein Text) liefert 4 Texte zurück, einmal „Das“, das zweite Mal „ist“, das dritte Mal „ein“ und zuletzt noch „Text“.
Logik Kunktionen
AND / UND
Die Funktion UND wird verwendet um 2 oder mehrere logische Bedingungen zu verknüpfen. Sie liefert dann ein „Wahr“, wenn alle Bedingungen erfüllt werden.
Syntax: UND(Bedingung 1;Bedingung 2;…; Bedingung n)
Bedingung 1: eine logische Bedingung.
Bedingung 2: eine logische Bedingung.
Bedingung n: eine logische Bedingung.
Beispiel: UND(YEAR([TODAY])=2018;MONTH([TODDAY])=5) liefert Wahr zurück, wenn das Datum des aktuellen Tages im Mai 2018 liegt.
CASE / SWITCH
Die Funktion CASE wird verwendet, wenn auf Grund einer Bedingung entschieden werden soll, welcher von mehreren Werten zurückgegeben werden soll.
Syntax: WENN(Bedingung 1;Wert 1;Bedingung 2;Wert 2;Wert3)
Bedingung 1, Bedingung 2: eine logische Bedingung.
Wert 1, Wert 2: der Wert, der zurückgegeben wird, wenn die zugehörige Bedingung erfüllt wird.
Wert 3: der Wert, der zurückgegeben wird, wenn keine der Bedingungen erfüllt wird.
Beispiel: CASE(X<5;Kleiner 5;X<10;Kleiner 10;Größer) liefert „Größer“ zurück, wenn der Wert der Variable X größer als 10 ist. Ist der Wert von X jedoch kleiner 10 und größer oder gleich 5 wird „Kleiner 10“ zurückgeliefert.
IF / WENN
Die Funktion WENN wird verwendet, wenn auf Grund einer Bedingung entschieden werden soll, welcher von 2 Werten zurückgegeben werden soll.
Syntax: WENN(Bedingung;Wert 1;Wert 2)
Bedingung: eine logische Bedingung.
Wert 1: der Wert, der zurückgegeben wird, wenn die Bedingung erfüllt wird.
Wert 2: der Wert, der zurückgegeben wird, wenn die Bedingung nicht erfüllt wird.
Beispiel: WENN(X>5;Größer;Kleiner) liefert „Größer“ zurück, wenn der Wert der Variable X größer als 5 ist. Ist der Wert von X jedoch kleiner oder gleich 5 wird „Kleiner“ zurückgeliefert.
OR / ODER
Die Funktion ODER wird verwendet um 2 oder mehrere logische Bedingungen zu verknüpfen. Sie liefert dann ein „Wahr“, wenn eine der Bedingungen erfüllt wird.
Syntax: ODER(Bedingung 1;Bedingung 2;…; Bedingung n)
Bedingung 1: eine logische Bedingung.
Bedingung 2: eine logische Bedingung.
Bedingung n: eine logische Bedingung.
Beispiel: ODER(YEAR([TODAY])=2018;MONTH([TODDAY])=5) liefert Wahr zurück, wenn das Datum des aktuellen Tages im Mai (irgend eines Jahres) oder im Jahr 2018 liegt.
Konvertierungs Funktionen
DATE
Die Funktion DATE wandelt die übergebenen Texte in ein Datum um und gibt einen Wert vom Typ Datum zurück.
Syntax: DATE(Tag;Monat;Jahr)
Beispiel: DATE(12;2;2018) liefert den 12.02.2018 als Datumswert zurück
DECIMAL / TODECIMAL
Die Funktion TODECIMAL wandelt eine Zeichenfolge in einen gültigen Dezimalwert um.
Syntax: TODECIMAL(Text;Dezimaltrennzeichen)
Text: die in eine Zahl umzuwandelnde Zahl als Text
Dezimaltrennzeichen: die im Text enthaltenen Dezimaltrennzeichen
Beispiel: TODECIMAL(1.237.615,98;.,) liefert den Wert 1237615.98 als Dezimalzahl zurück
Sortier Funktionen
COLALLORDER / COLUMNALLORDER
Die Funktion COLALLORDER kann in Berichten verwendet werden, um die Werte aufsteigend, vom Kleinsten zum Größten, unabhängig einer Gliederung auf Spaltenebene virtuell zu ordnen. Allerdings sortiert diese Funktion die Werte nicht direkt sondern gibt nur eine Zahl zurück, die angibt, an welcher Stelle einer Liste der Wert steht. Eine Sortierung auf Spaltenebene ist nicht möglich.
Syntax: COLALLORDER([SpaltenNr])
[SpaltenNr]: die Bezeichnung der zu sortierenden Spalte
Beispiel: COLALLORDER(QTY$) liefert einen Wert von 1 bis zur Anzahl an Datensätzen zurück, abhängig von der Position, wo der aktuelle Wert in der sortierten Liste unabhängig von einer Gliederung stehen würde.
COLALLRANK / CLOUMNALLRANK
Die Funktion COLALLRANK kann in Berichten verwendet werden, um die Werte absteigend, vom Größten zum Kleinsten, innerhalb einer Gliederung auf Spaltenebene virtuell zu ordnen. Allerdings sortiert diese Funktion die Werte nicht direkt sondern gibt nur eine Zahl zurück, die angibt, an welcher Stelle einer Liste der Wert steht. Eine Sortierung auf Spaltenebene ist nicht möglich.
Syntax: COLALLRANK([SpaltenNr])
[SpaltenNr]: die Bezeichnung der zu sortierenden Spalte
Beispiel: COLALLRANK(QTY$) liefert einen Wert von 1 bis zur Anzahl an Datensätzen zurück, abhängig von der Position, wo der aktuelle Wert in der sortierten Liste unabhängig von einer Gliederung stehen würde.
CORDER / COLORDER / COLUMNORDER / COLUMNDETAILORDER
Die Funktion CORDER kann in Berichten verwendet werden, um die Werte aufsteigend, vom Kleinsten zum Größten, innerhalb einer Gliederung auf Spaltenebene virtuell zu ordnen. Allerdings sortiert diese Funktion die Werte nicht direkt sondern gibt nur eine Zahl zurück, die angibt, an welcher Stelle einer Liste der Wert steht. Eine Sortierung auf Spaltenebene ist nicht möglich.
Syntax: CORDER([SpaltenNr])
[SpaltenNr]: die Bezeichnung der zu sortierenden Spalte
Beispiel: CORDER(QTY$) liefert einen Wert von 1 bis zur Anzahl an Datensätzen zurück, abhängig von der Position, wo der aktuelle Wert in der sortierten Liste innerhalb einer Gliederung stehen würde.
CRANK / COLRANK / COLUMNRANK / COLDETAILRANK / COLUMNDETAILRANK
Die Funktion CRANK kann in Berichten verwendet werden, um die Werte absteigend, vom Größten zum Kleinsten, innerhalb einer Gliederung auf Spaltenebene virtuell zu ordnen. Allerdings sortiert diese Funktion die Werte nicht direkt sondern gibt nur eine Zahl zurück, die angibt, an welcher Stelle einer Liste der Wert steht. Eine Sortierung auf Spaltenebene ist nicht möglich.
Syntax: CRANK([SpaltenNr])
[SpaltenNr]: die Bezeichnung der zu sortierenden Spalte
Beispiel: CRANK(QTY$) liefert einen Wert von 1 bis zur Anzahl an Datensätzen zurück, abhängig von der Position, wo der aktuelle Wert in der sortierten Liste innerhalb einer Gliederung stehen würde.
ORDER / ROWORDER / ROWDETAILORDER
Die Funktion ORDER kann in Berichten verwendet werden, um die Werte aufsteigend, vom Kleinsten zum Größten, innerhalb einer Gliederung auf Zeilenebene zu ordnen. Allerdings sortiert diese Funktion die Werte nicht direkt sondern gibt nur eine Zahl zurück, die angibt, an welcher Stelle einer Liste der Wert steht. Diese kann wiederum für die Sortierung angegeben werden.
Syntax: ORDER([SpaltenNr])
[SpaltenNr]: die Bezeichnung der zu sortierenden Spalte
Beispiel: ORDER(QTY$) liefert einen Wert von 1 bis zur Anzahl an Datensätzen zurück, abhängig von der Position, wo der aktuelle Wert in der sortierten Liste innerhalb einer Gliederung stehen würde.
RANK / RRANK / ROWRANK / ROWDETAILRANK
Die Funktion RANK kann in Berichten verwendet werden, um die Werte absteigend, vom Größten zum Kleinsten, innerhalb einer Gliederung auf Zeilenebene zu ordnen. Allerdings sortiert diese Funktion die Werte nicht direkt sondern gibt nur eine Zahl zurück, die angibt, an welcher Stelle einer Liste der Wert steht. Diese kann wiederum für die Sortierung angegeben werden.
Syntax: RANK([SpaltenNr])
[SpaltenNr]: die Bezeichnung der zu sortierenden Spalte
Beispiel: RANK(QTY$) liefert einen Wert von 1 bis zur Anzahl an Datensätzen zurück, abhängig von der Position, wo der aktuelle Wert in der sortierten Liste innerhalb einer Gliederung stehen würde.
ROWALLORDER
Die Funktion ROWALLORDER kann in Berichten verwendet werden, um die Werte aufsteigend, vom Kleinsten zum Größten, unabhängig einer Gliederung auf Zeilenebene zu ordnen. Allerdings sortiert diese Funktion die Werte nicht direkt sondern gibt nur eine Zahl zurück, die angibt, an welcher Stelle einer Liste der Wert steht. Diese kann wiederum für die Sortierung angegeben werden.
Syntax: ROWALLORDER([SpaltenNr])
[SpaltenNr]: die Bezeichnung der zu sortierenden Spalte
Beispiel: ROWALLORDER(QTY$) liefert einen Wert von 1 bis zur Anzahl an Datensätzen zurück, abhängig von der Position, wo der aktuelle Wert in der sortierten Liste unabhängig von einer Gliederung stehen würde.
ROWALLRANK
Die Funktion ROWALLRANK kann in Berichten verwendet werden, um die Werte absteigend, vom Größten zum Kleinsten, unabhängig einer Gliederung auf Zeilenebene zu ordnen. Allerdings sortiert diese Funktion die Werte nicht direkt sondern gibt nur eine Zahl zurück, die angibt, an welcher Stelle einer Liste der Wert steht. Diese kann wiederum für die Sortierung angegeben werden.
Syntax: ROWALLRANK([SpaltenNr])
[SpaltenNr]: die Bezeichnung der zu sortierenden Spalte
Beispiel: ROWALLRANK(QTY$) liefert einen Wert von 1 bis zur Anzahl an Datensätzen zurück, abhängig von der Position, wo der aktuelle Wert in der sortierten Liste unabhängig von der Gliederung stehen würde.
Cube Funktionen
COLUMNLEVEL
Die Funktion COLUMNLEVEL gibt die aktuelle Gliederungsebene auf Spaltenebene zurück. Ist keine Gliederung auf Spaltenebene vorhanden, so gibt die Funktion immer 0 zurück.
Sie wird speziell für Bedingungen in Formeln, bedingte Formatierungen sowie die Bedinungen zur Editierbarkeit verwendet.
DETAILDIM / DETAILEDDIM / DIMDETAIL / DIMENSIONDETAIL / DD
Die Funktion DETAILDIM gibt True zurück, wenn die aktuelle Gliederungsebene genau dem angegebenen Dimensionscode entspricht.
Syntax: DETAILDIM(Dimensionscode)
Dimensionscode: interne Bezeichnung einer Dimension, die in der Gliederung verwendet wird.
Beispiel: DETAILDIM(D.COUNTRY) liefert True, wenn die Gliederung gleich der Dimensionsebene Land ist.
DIMEXIST / DIMENSIONEXIST / DE
Die Funktion DIMEXIST gibt True zurück, wenn die aktuelle Gliederungsebene unterhalb oder gleich dem angegebenen Dimensionscode ist
Syntax: DIMEXIST(Dimensionscode)
Dimensionscode: interne Bezeichnung einer Dimension, die in der Gliederung verwendet wird.
Beispiel: DIMEXIST(D.COUNTRY) liefert True, wenn die Gliederung gleich der Dimensionsebene Land oder eine untergeordnete Dimensionsebene ist.
FLEXPARAM
Die Funktion FLEXPARAM dient zum abrufen eines bestimmten Wertes, der zuvor in den flexiblen Parametern hinterlegt wurde.
Syntax: FLEXPARAM([Code];Feld;(Wert-Schlüssel))
[Code]: die Bezeichnung des Flex.Param.
Feld: Feld im Flex.Param, das zurückgeliefert werden soll
(Wert-Schlüssel): optional, sofern im Flex.Param. kein Wert-Schlüssel angegeben ist. Sonst sind alle Wert-Schlüssel in der Reihenfolge der Definition anzugeben
Beispiel: FLEXPARAM('WECHSELKURS';'KURS') liefert den zum Datensatz passenden Umrechnungskurs aus dem Flex.Param. „WECHSELKURS“.
FLEXPARAMDEBUG
Die Funktion FLEXPARAMDEBUG ist in der Funktionsweise identisch zu FLEXPARAM jedoch wird dier Zugriff protokolliert, damit Werte, die zurückgegeben werden, nachvollzogen werden können.
FLEXPARAMEXT
Die Funktion FLEXPARAMEXT ist eine Erweiterung der Funktions FLEXPARAM. Dabei kann für jedes einzelne Schlüsselfeld der Wert übergeben werden und damit die Rückgabe des Wertes beeinflusst werden.
Syntax: FLEXPARAMEXT([Code];Feld;(Wert-Schlüssel);Schlüsselfeld)
[Code]: die Bezeichnung des Flex.Param.
Feld: Feld im Flex.Param, das zurückgeliefert werden soll
(Wert-Schlüssel): optional, sofern im Flex.Param. kein Wert-Schlüssel angegeben ist. Sonst sind alle Wert-Schlüssel in der Reihenfolge der Definition anzugeben
Schlüsselfeld: Dimensions- und Datums-Schlüssel in der Reihenfolge der Definition im Flex.Param.
Hinweis: wenn statt einem Wert im Schlüsselfeld die Werte aus derGliederung übernommen werden sollen, so ist statt dem Wert „=>“ einzutragen.
FLEXPARAMINCLTOTALS
Die Funktion FLEXPARAMINCLTOTALS ermöglicht es, auch für Summenzeilen in einer Gliederung einen Flex.Parameter zurück zu liefern. Dies ist speziell für Gliederungen mit 2 oder mehr Ebenen interessant.
Damit dies funktioniert muss in den Flex.Param. Einträgen die selbe Hierarchie eingetragen werden, wie sie im Bericht in der Gliederung verwendet wird. Für die Summe wird dann ein Eintrag erstellt, bei dem nur die höhere Ebene befüllt wird.
HEADERLEVEL
Die Funktion HEADERLEVEL gibt die aktuelle Gliederungsebene einer Kopfgliederung zurück. Ist keine Kopfgliederung vorhanden, so gibt die Funktion immer 0 zurück.
Sie wird speziell für Bedingungen in Formeln, bedingte Formatierungen sowie die Bedinungen zur Editierbarkeit verwendet.
LOOKUPEXT
Die Funktion LOOKUPEXT dient dazu, die Informationen von einer verbundenen Dimension unabhängig vom Datensatz in einer Gliederung abzurufen. Dazu wird der Wert, zu dem die Information gesucht werden soll, mit übergeben.
Syntax: LOOKUPEXT([Code];Wert)
[Code]: die interne Bezeichnung der verbundenen Dimension
Wert: Wert oder Feldbezeichnung, die übergeben werden soll
Beispiel: LOOKUPEXT('D.ARBEITSPLATZGRUPPE.KOSTENSTELLE';[No.]) liefert die Beschreibung der Kostenstelle aus der verbundenen Dimension Arbeitsplatzgruppe-Kostenstelle.
ROWLEVEL
Die Funktion ROWLEVEL gibt die aktuelle Gliederungsebene auf Zeilenebene zurück. Ist keine Gliederung auf Zeilenebene vorhanden, so gibt die Funktion immer 0 zurück.
Sie wird speziell für Bedingungen in Formeln, bedingte Formatierungen sowie die Bedinungen zur Editierbarkeit verwendet.
TRENDLINEAR / ROWTRENDLINEAR
Die Funktion TRENDLINEAR dient zur Berechung der Werte für eine lineare Trendlinie über einen Zeitraum. Dazu wird eine Spaltennummer übergeben.
Syntax: TRENDLINEAR(SpaltenNr)
SpaltenNr: Bezeichnung für eine Spalte, die einen Wert enthält, über den ein Trend berechnet werden soll
Beispiel: TRENDLINEAR(QTY$) liefert den Trendwert über die Spalte QTY zurück.
USERROLE
Die Funktion USERROLE dient zur Überprüfung, ob ein Benutzer zu der angegebenen Benutzerrolle gehört. Dies wird im häufig für die Bedingung zur Editierbarkeit (z.B. Eingabe von Budget-Daten) verwendet.
Syntax: USERROLE(Benutzerrolle)
Benutzerrolle: die Bezeichnung der Benutzerrolle
Beispiel: USERROLE('BUDGET') liefert 1 zurück, wenn der aktuelle Benutzer die Rolle „BUDGET“ zugeordnet bekommen hat.
Sonstige Funktionen
HSL
Die Funktion HSL liefert einen String für die Farbcodierung in einem Diagramm für einen bestimmten Wert.
Syntax: HSL(Farbcode;Sättigung;Leuchtkraft)
Farbcode: eine Zahl von 0 bis 359
Sättigung: eine Zahl von 0 bis 100 (Prozent)
Leuchtkraft: eine Zahl von 0 bis 100 (Prozent)
HSLA
Die Funktion HSLA liefert einen String für die Farbcodierung in einem Diagramm für einen bestimmten Wert. Der Unterschied zur vorherigen Funktion ist, dass zusätzlich noch ein Parameter für die Deckkraft angegeben wird.
Syntax: HSL(Farbcode;Sättigung;Leuchtkraft;Deckkraft)
Farbcode: eine Zahl von 0 bis 359
Sättigung: eine Zahl von 0 bis 100 (Prozent)
Leuchtkraft: eine Zahl von 0 bis 100 (Prozent)
Deckkraft: eine Zahl von 0 bis 1 (Prozent)
RGB
Die Funktion RGB liefert die einen String für die Farbcodierung in einem Diagramm für einen bestimmten Wert. Der Farbcode ist dabei im Hexadezimalsystem codiert.
Syntax: RGB(Farbwert Rot;Farbwert Grün;Farbwert Blau)
Farbwert Rot: eine Zahl von 0 bis 255
Farbwert Grün: eine Zahl von 0 bis 255
Farbwert Blau: eine Zahl von 0 bis 255
RGBA
Die Funktion RGB liefert die einen String für die Farbcodierung in einem Diagramm für einen bestimmten Wert. Der Farbcode ist dabei im Hexadezimalsystem codiert. Der Unterschied zur vorherigen Funktion ist, dass zusätzlich noch ein Parameter für die Deckkraft angegeben wird.
Syntax: RGB(Farbwert Rot;Farbwert Grün;Farbwert Blau;Deckkraft)
Farbwert Rot: eine Zahl von 0 bis 255
Farbwert Grün: eine Zahl von 0 bis 255
Farbwert Blau: eine Zahl von 0 bis 255
Deckkraft: eine Zahl von 0 bis 1 (Prozent)