Zum Hauptinhalt wechseln
Adaptive Planning
Zuletzt aktualisiert: 2023-06-23
Referenz: Formelfunktionen

Referenz: Formelfunktionen

Formelfunktionen sind in vier Kategorien gruppiert: mathematisch, logisch, Zeichenfolge und Datum. In diesem Thema wird jede Funktion mit einer kurzen Erklärung definiert.
Der Übersichtlichkeit halber werden in den Beschreibungen in der Tabelle Formeln mit Komma als Trennzeichen angezeigt. Für einige Browsereinstellungen müssen Sie Semikolons als Trennzeichen verwenden. In den Syntaxspalten werden beide Versionen angezeigt.

Mathematische Funktionen

Mathematische Funktionen sind als Schaltflächen verfügbar. Beispielsweise Plus (+), Minus (-) und Multiplizieren (*). Weitere Optionen sind verfügbar unter
Funktion > Mathematisch
.

Logische Funktionen

Um als Teil von einzuschließen
If
-Anweisung sind grundlegende Logikfunktionen und Vergleiche als Schaltflächen verfügbar. Beispiel: Das logische und (
AND
), logisches oder (
OR
) und logische Negation (
NOT
). Vergleiche schließen gleich (
=
), größer als (
>
), kleiner als (
<
) oder ungleich (
!=
). Sie können auch (
<>
) für „ungleich“.
Weitere Optionen sind verfügbar unter
Funktion > Logisch
:
Syntax
Beschreibung
Blank()
Gibt zurück
Blank
Wert. Dieser Wert wird als leer angezeigt (anstelle von 0), wird aber für Formelzwecke genau wie 0 evaluiert. Im Gegensatz zu 0 verursacht er die
IsBlank()
Funktion zurückzugeben
TRUE
, aber ähnlich wie eine 0 kann er unterdrückt werden, wenn „Leere Zeilen unterdrücken“ in Tabellenblättern oder Berichten aktiviert ist.
Error ()
Verursacht einen Laufzeit-Evaluierungsfehler.
Beispiel:
IF(ACCT.EffectiveHeadcount < 0, Error(), ACCT.EffectiveHeadcount+ACCT.AddlHeadcount)
Wenn der effektive Headcount kleiner als 0 ist, wird ein Fehler zurückgegeben, um das zugrunde liegende Problem zu ermitteln.
If (EXPR, T, F)
If (EXPR; T; F)
Gibt einen numerischen Wert zurück (
T
), wenn der boolesche Ausdruck (
EXPR
) ist „true“. Andernfalls wird ein numerischer Wert zurückgegeben (
F
). Sie können boolesche und Vergleichsoperatoren verwenden, um den booleschen Ausdruck zu erstellen.
Iff (EXPR, T, F)
Iff (EXPR; T; F)
Die „schnelle“ oder abgekürzte Form der
If
-Funktion. Gibt denselben Wert zurück wie
If
. Wenn die Bedingung jedoch „true“ ist, wird das dritte Argument der Funktion nicht evaluiert. Dementsprechend wird, wenn die Bedingung falsch ist, das zweite Argument nicht evaluiert. Dies bedeutet, dass entweder das zweite oder das dritte Argument Fehler enthalten könnte, die Ergebnisse jedoch von
Iff
weiterhin gültig, da das Argument, das den Fehler enthält, nicht evaluiert wird.
Beispiele:
  • IFF (this.Version.isActuals, ACCT.TravelExp, ACCT.Personnel.EstimatedTravel)
  • IFF (this.Qtr.PositionOf (this.Month) = 2, 100000, 0)
IsBlank (N)
Gibt "true" zurück, wenn das Argument leer ist; andernfalls "false". Kann nur in einem Ausdrucksargument verwendet werden (
EXPR
) mit
If
-Funktion.
Beispiel:
If(IsBlank(Row.StartDate),0,1)
Switch (Orig_EXPR, Case1, Case2, ..., Default)
Switch (Orig_EXPR; Case1; Case2; ...; Default)
Stellt eine Methode zum Schreiben von kompakten Ausdrücken bereit, die anstelle von komplexen, verschachtelten Ausdrücken verwendet werden kann
If
Anweisungen.
  • Das erste Argument (
    Orig_EXPR
    ) ist der ursprüngliche Ausdruck (manchmal als
    Kontrollausdruck
    bezeichnet), der zuerst evaluiert wird.
  • Die nachfolgenden Argumente sind
    Cases
    (Werte und entsprechende Ausdrücke), die aktiviert werden können, je nachdem, ob die Groß-/Kleinschreibung mit dem Wert des ursprünglichen Ausdrucks übereinstimmt.
  • Sie können einen oder mehrere Fälle definieren. Jeder Fall besteht aus einem Wert (
    N
    ) und ein Ausdruck (
    EXPR
    ) durch ein Komma getrennt. Die erweiterte Syntax lautet wie folgt:
    Switch (Orig_EXPR, N1, EXPR1, N2, EXPR2, ..., Default)
  • Beispiel: Wenn der Wert des ursprünglichen Ausdrucks mit dem in definierten Wert übereinstimmt
    Case1
    , der Ausdruck, der zugeordnet ist
    Case1
    zurückgegeben wird. Wenn jedoch der Wert des ursprünglichen Ausdrucks übereinstimmt
    Case2
    , der Ausdruck, der zugeordnet ist
    Case2
    zurückgegeben wird usw.
  • Wenn es keine Übereinstimmung gibt,
    Switch
    gibt die zurück
    Default
    Ausdruck.
  • Alle Ausdrücke (
    EXPR
    ) in
    Switch
    -Anweisung muss denselben Datentyp haben (Zeichenfolge, Datum, Zahl usw.). Wenn sich die Ausdrücke im Datentyp unterscheiden, wird dieser Fehler angezeigt:
    Inconsistent
    Rückgabearten wechseln
  • Anstelle eines einzelnen Werts (
    N
    ) können Sie für jeden Fall a angeben
    Range(L,U)
    von Werten, bei denen
    L
    ist die Untergrenze des Bereichs und
    U
    ist die Obergrenze des Bereichs. Beispielsweise kann ein Bereich eine Anzahl von Jahren umfassen
    Range(2014,2017)
    und wenn der Wert des ursprünglichen Ausdrucks innerhalb dieses Bereichs (einschließlich) liegt, wird der diesem Bereich zugeordnete Ausdruck aktiviert.
  • Jedes Argument für einen Bereich muss denselben Datentyp haben (z. B. eine Zahl wie 7, eine Zeichenfolgenkonstante wie).
    Engineering
    oder eine Datumskonstante, die unter Verwendung der vorhandenen Konstante erstellt wurde
    Date()
    -Funktion oder einen Ausdruck, der in den richtigen Datentyp aufgelöst wird (z
    this.Version.Name
    oder
    ACCT.Rent
    ).
Beispiele:
  • Switch (ROW.DAY,1,"Sunday",2,"Monday",3,"Tuesday","No match")
    Wenn
    ROW.DAY
    2 ist, dann ist „Monday“ der Ausdruck, der dem Wert „2“ entspricht, also ist „Monday“ der Ausdruck, der dem Wert „2“ entspricht
    Switch
    Ergebnis ist Montag.
  • Switch (ToNumber (ROW.CaseQty), Range (0,11), 0, Range (12,24), 1, Range (24,48), 4, 0)
    Dieses zweite Beispiel gibt zurück0, 1 oder4 abhängig vom numerischen Wert in
    CaseQty
    -Auswahl.

Datums- und Zeitfunktionen

Datumsfunktionen werden häufig in Kombination mit Spalten
Datum
in modellierten Tabellenblättern verwendet. Datumsfunktionen werden nur in berechneten Konten mit modelliertem Tabellenblatt angezeigt.
Die Datumsfunktionen gelten für Kalender mit Konfigurationen „Monat > Quartal > Jahr“. Wenn Sie einen Kalender mit einer anderen Struktur haben, geben viele dieser Funktionen Fehler zurück. Erwägen Sie stattdessen die Verwendung dieser Funktion: this.version.positionOf(D. Strata). Ersetzen Sie D durch ein Kalenderdatum in diesem Format: yyyy,mm,dd und ersetzen Sie Schichten durch die Schichten, die Sie in Ihrem Kalender verwenden. Beispiel: this.version.positionOf(2024,01,02.week) gibt die erste Woche von 2024 zurück.
Syntax
Beschreibung
D.Month.NumberOfDays
Gibt die Anzahl der Tage im Monat zurück, in denen das Datum liegt
D
auftritt
.
D.Year.PositionOf(D.Month).
Gibt den Monat des Geschäftsjahres zurück, in dem das Datum liegt
D
auftritt.
D.Year.PositionOf(D.Qtr)
Gibt das Quartal des Geschäftsjahres zurück, in dem das Datum liegt
D
auftritt.
(Date).
stratum_code
Gibt zurück
Timeperiod
der angeforderten Schichtart, die das (einzelne, gregorianische) Datum enthält. Jedes Datum kann als Basis für den Schichtcode verwendet werden.
Beispiel:
ToDate
(2016,8,5).Qtr
gibt das Geschäftskalenderquartal zurück, das den 5. August 2016 enthält.
Day (D)
Gibt den Tag im Monat für das Datum zurück (
D
).
DaysInMonth (D)
Gibt die Anzahl der Tage in einem Monat zurück, in dem das Datum D vorkommt. Kann für benutzerdefinierte Kalender einen Fehler oder einen falschen Wert zurückgeben. Verwenden
D.Month.NumberOfDays
stattdessen.
FiscalMonth (D)
Gibt den Monat des Geschäftsjahres zurück, in dem das Datum (
D
) auftritt. Kann bei benutzerdefinierten Kalendern einen Fehler zurückgeben. Verwenden
D.Year.PositionOf(D.Month).
FiscalQuarter (D)
Gibt das Quartal des Geschäftsjahres zurück, in dem das Datum (
D
) auftritt. Kann bei benutzerdefinierten Kalendern einen Fehler zurückgeben. Verwenden
D.Year.PositionOf(D.Qtr).
FiscalYear (D)
Gibt das Geschäftsjahr zurück, in dem das Datum (
D
) auftritt. Kann bei benutzerdefinierten Kalendern einen Fehler zurückgeben. Versuchen Sie, Ihre Jahre mit Zahlen zu codieren, die genau mit dem Jahr und der Verwendung übereinstimmen
ToNumber
(D.Year.code).
Month (D)
Gibt den Monat zurück, in dem das Datum (
D
) auftritt.
Quarter (D)
Gibt das Kalenderquartal zurück, in dem das Datum (
D
) auftritt. Dieses stimmt ggf. nicht mit dem Geschäftsquartal Ihres Unternehmens überein (siehe unten).
this.Version.PositionOf(D.Month)
Gibt eine Zahl zurück, die den Monat der Version darstellt, in der das Datum D vorkommt (erster Monat =
0
). Diese Zahl kann negativ sein, wenn das Datum D vor dem Versionsstart liegt.
this.Version.PositionOf(D.Year)
Gibt eine Zahl zurück, die das Jahr der Version darstellt, in der das Datum D vorkommt (erstes Jahr =
0
). Diese Zahl kann negativ sein, wenn das Datum D vor dem Versionsstart liegt.
TimeFraction (D1, D2, D, Dx)
TimeFraction (D1; D2; D; Dx)
Gibt den Teil des aktuellen Monats zurück, der zwischen dem Startdatum (
D1
) und das Enddatum (
D2
). Wenn ein optionales Datum (
D
) angegeben ist, verwendet den Monat, in dem
D
erfolgt, anstelle des aktuellen Monats. Wenn der optionale Parameter für eine feste Anzahl von Tagen (
Dx
) angegeben ist, überschreiben Sie die Zeitperiode in
D
durch den numerischen Wert.
Instanzen, die ohne einen benutzerdefinierten Kalender konfiguriert sind, können verwenden
MonthFraction
statt
TimeFraction
.
ToDate (Y, M, D)
ToDate (Y; M; D)
Gibt das durch das angegebene Jahr angegebene Datum zurück (
Y
), Monat (
M
) und Tag (
D
). Wenn
D
wird ausgelassen,
15
verwendet wird. Der zurückgegebene Wert kann als Argument in anderen Funktionen verwendet werden, die ein Datum verwenden.
VersionMonth (D)
Gibt eine Zahl zurück, die den Monat der Version darstellt, in der das Datum (
D
) tritt auf (erster Monat =
0
). Diese Zahl kann negativ sein, wenn das Datum (
D
) liegt vor dem Versionsstart.
Kann bei benutzerdefinierten Kalendern einen Fehler zurückgeben. Verwenden
this.Version.PositionOf(D.Month).
Version.PositionOf (timeperiod)
Gibt die relative Reihenfolge der angegebenen Zeitperiode innerhalb der gesamten Zeitspanne der Version zurück. Die erste Zeitperiode in einer Version beginnt mit 1 und die Nummer in der Reihenfolge kann negativ sein, wenn die Zeitperiode vor dem Versionsstart liegt. Diese Funktion funktioniert auch mit einer Zeitperiode, die über das Versionsende hinausgeht.
VersionYear (D)
Gibt eine Zahl zurück, die das Jahr der Version darstellt, in der das Datum (
D
) kommt vor (erstes Jahr =
0
). Diese Zahl kann negativ sein, wenn das Datum (
D
) liegt vor dem Versionsstart.
Kann bei benutzerdefinierten Kalendern einen Fehler zurückgeben. Verwenden
this.Version.PositionOf(D.Year)
.
Year (D)
Gibt das Jahr zurück, in dem das Datum (
D
) erfolgt unabhängig davon, ob ein benutzerdefinierter Kalender verwendet wird oder nicht.

Zeichenfolgenfunktionen

Syntax
Beschreibung
Concat (text1, text2, ...)
Concat (text1; text2; ...)
Gibt eine verkettete Zeichenfolge zurück, indem zwei oder mehrere Textzeichenfolgen verbunden werden.
Beispiel:
Concat ("hello", "world")
gibt "
helloworld"
.
Length (text)
Gibt die Anzahl von Zeichen in einer Textzeichenfolge zurück.
Beispiel:
Length ("Now, is the winter of our discontent. Made glorious summer by this son or York.")
Retouren
79
.
Search (source_text, search_text)
Search (source_text; search_text)
Gibt die Startposition von zurück
search_text
in
source_text
. Retouren
0
wenn
search_text
wird nicht gefunden. Bei der Suche wird nicht zwischen Groß- und Kleinschreibung unterschieden.
Beispiele:
Search ("Now is the winter of our discontent.", "Winter")
Retouren
12
.
Search ("Now is the winter of our discontent.", "Summer")
Retouren
0.
Substring (source_text, start_position, length)
Substring (source_text; start_position; length)
Gibt eine Textzeichenfolge zurück, die die in gefundenen Zeichen enthält
source_text
ab
start_position
(Wobei Position
1
ist das erste Zeichen der Zeichenfolge) und wird ausgeführt für
length
(oder bis zum Ende der Zeichenfolge, je nachdem, was zuerst eintritt).
Wenn Sie Folgendes auswählen:
start_position
von
0
oder weniger wird behandelt, als wäre es eine Stelle
1
. Sie wählen eine Länge von aus
0
oder weniger wird als Länge von behandelt
0
und gibt eine leere Zeichenfolge zurück. Wenn Sie Folgendes auswählen:
start_position
Welches Datum nach dem Ende von ist
source_text
gibt eine leere Zeichenfolge zurück.
ToNumber (text)
Wandelt eine Textzeichenfolge, die für eine Zahl steht, in deren numerischen Wert um. Konvertiert den führenden Teil der Zeichenfolge, bis ein nicht numerisches Zeichen gefunden wird. Ist das erste Zeichen nicht numerisch, wird ein Fehler angezeigt.
Beispiele:
ToNumber ("7")
Retouren
7
.
ToNumber ("2017-12-31")
gibt 2017 (eine Zahl) zurück.
ToNumber ("Sample")
gibt einen Fehler zurück.

Beispiele

Nachfolgend finden Sie eine Headcount-Formel aus einem modellierten Tabellenblatt „Personal“. Sie ist ein gutes Beispiel dafür, wie Funktionen kombiniert werden können. Die folgende Formel gibt ein binäres Ergebnis zurück:
1
oder
0
.
If(this.Version.PositionOf(this.Month) >= this.Version.PositionOf(ROW.StartDate.Month) # if this month is after the person's start date and (isblank(ROW.EndDate) # and either they have no termination date or this.Version.PositionOf(this.Month) <= Version.PositionOf(ROW.EndDate.Month)), # or the current month is before termination date 1, # return 1 for their headcount in this month 0) # otherwise, return 0