Skip to main content
Adaptive Planning
Laatst bijgewerkt: 2023-06-23
Referentie: formulefuncties

Referentie: formulefuncties

Formulefuncties zijn gegroepeerd in vier categorieën: wiskundig, logisch, tekenreeks en datum. Elke functie wordt in dit onderwerp gedefinieerd en kort toegelicht.
Voor het gemak worden in de beschrijvingen in de tabel formules weergegeven met komma's als scheidingstekens. Voor sommige browserinstellingen moet u als scheidingstekens puntkomma's gebruiken. In de syntaxiskolommen worden beide versies weergegeven.

Wiskundige functies

Wiskundige functies zijn beschikbaar als knoppen. Bijvoorbeeld plus (+), min (-) en vermenigvuldigen (*). Aanvullende selecties zijn beschikbaar via
Functie > Wiskundig
.

Logische functies

Opnemen als onderdeel van een
If
statement, logische basisfuncties en vergelijkingen zijn beschikbaar als knoppen. Bijvoorbeeld: logische en (
AND
), logisch of (
OR
) en logische ontkenning (
NOT
). Vergelijkingen omvatten gelijk aan (
=
), groter dan (
>
), kleiner dan (
<
), of niet gelijk is aan (
!=
). U kunt ook (
<>
) voor niet gelijk aan.
Aanvullende selecties zijn beschikbaar via
Functie > Logisch
:
Syntaxis
Omschrijving
Blank()
Retourneert de
Blank
waarde. Deze waarde wordt weergegeven als leeg (in plaats van een nul), maar wordt voor formuledoeleinden op dezelfde manier geëvalueerd als nul. In tegenstelling tot een nul zorgt dit ervoor dat de
IsBlank()
te retourneren functie
TRUE
, maar kan net als een nul worden onderdrukt wanneer Lege rijen onderdrukken is ingeschakeld voor bladen of rapporten.
Error ()
Hierdoor ontstaat een evaluatiefout tijdens runtime.
Voorbeeld:
IF(ACCT.EffectiveHeadcount < 0, Error(), ACCT.EffectiveHeadcount+ACCT.AddlHeadcount)
Als de effectieve headcount kleiner is dan 0, wordt een fout geretourneerd om het onderliggende probleem te kunnen opsporen.
If (EXPR, T, F)
If (EXPR; T; F)
Retourneert een numerieke waarde (
T
) if Boole-expressie (
EXPR
) waar is, wordt anders een numerieke waarde (
F
). U kunt Booleaanse en vergelijkingsoperatoren gebruiken om de Booleaanse uitdrukking te construeren.
Iff (EXPR, T, F)
Iff (EXPR; T; F)
De snelle of verkorte vorm van de
If
functie. Retourneert dezelfde waarde als
If
. Als de voorwaarde echter waar is, wordt het derde argument voor de functie niet geëvalueerd. Als de voorwaarde onwaar is, wordt het tweede argument niet geëvalueerd. Dit betekent dat het tweede of derde argument mogelijk fouten kan bevatten, maar dat de resultaten van:
Iff
is nog steeds geldig omdat het argument dat de fout bevat niet wordt geëvalueerd.
Voorbeelden:
  • IFF (this.Version.isActuals, ACCT.TravelExp, ACCT.Personnel.EstimatedTravel)
  • IFF (this.Qtr.PositionOf (this.Month) = 2, 100000, 0)
IsBlank (N)
Hiermee wordt waar geretourneerd als het argument leeg is. Anders wordt onwaar geretourneerd. Kan alleen worden gebruikt in een expressieargument (
EXPR
) naar de
If
functie.
Voorbeeld:
If(IsBlank(Row.StartDate),0,1)
Switch (Orig_EXPR, Case1, Case2, ..., Default)
Switch (Orig_EXPR; Case1; Case2; ...; Default)
Biedt een methode voor het schrijven van compacte expressies die kunnen worden gebruikt in plaats van complexe, geneste
If
overzichten.
  • Het eerste argument (
    Orig_EXPR
    ) is de oorspronkelijke expressie (ook wel de
    besturingsexpressie
    genoemd) die als eerste wordt geëvalueerd.
  • De volgende argumenten zijn:
    Cases
    (waarden en bijbehorende expressies) die kunnen worden geactiveerd, afhankelijk van welk geval overeenkomt met de waarde van de oorspronkelijke expressie.
  • U kunt een of meer cases definiëren. Elke case bestaat uit een waarde (
    N
    ) en een expressie (
    EXPR
    ) gescheiden door een komma. De uitgevouwen syntaxis ziet er als volgt uit:
    Switch (Orig_EXPR, N1, EXPR1, N2, EXPR2, ..., Default)
  • Als de waarde van de oorspronkelijke expressie bijvoorbeeld overeenkomt met de waarde die is gedefinieerd in
    Case1
    , de expressie die is gekoppeld aan
    Case1
    wordt geretourneerd. Maar als de waarde van de oorspronkelijke expressie overeenkomt:
    Case2
    , de expressie die is gekoppeld aan
    Case2
    wordt geretourneerd, enzovoort.
  • Als er geen match is,
    Switch
    retourneert de
    Default
    expressie.
  • Alle expressies (
    EXPR
    ) in de
    Switch
    -statement moet van hetzelfde gegevenstype zijn (tekenreeks, datum, getal, enzovoort). Als de expressies verschillen in gegevenstype, wordt deze fout weergegeven:
    Inconsistent
    Retourtypen wijzigen
  • In plaats van één waarde (
    N
    ) voor elke case kunt u a . opgeven
    Range(L,U)
    van waarden waarbij
    L
    de ondergrens van het bereik is en
    U
    is de bovengrens van het bereik. Een bereik kan bijvoorbeeld een aantal jaren bevatten
    Range(2014,2017)
    en wanneer de waarde van de oorspronkelijke expressie binnen dat bereik valt, wordt de expressie die aan dat bereik is gekoppeld geactiveerd.
  • Elk argument voor een bereik moet van hetzelfde gegevenstype zijn (bijvoorbeeld een getal zoals 7, een tekenreeksconstante zoals
    Engineering
    of een datumconstante die is samengesteld met behulp van de bestaande
    Date()
    functie of een expressie die wordt omgezet in het juiste gegevenstype (bijv
    this.Version.Name
    of
    ACCT.Rent
    ).
Voorbeelden:
  • Switch (ROW.DAY,1,"Sunday",2,"Monday",3,"Tuesday","No match")
    Als
    ROW.DAY
    is 2, dan is maandag de expressie die overeenkomt met de waarde 2, dus de
    Switch
    resultaat is maandag.
  • Switch (ToNumber (ROW.CaseQty), Range (0,11), 0, Range (12,24), 1, Range (24,48), 4, 0)
    Dit tweede voorbeeld retourneert0, 1 of4 afhankelijk van de numerieke waarde in de
    CaseQty
    selectie.

Datum- en tijdfuncties

Datumfuncties worden vaak gebruikt in combinatie met de kolommen
Datum
van gemodelleerde bladen. Datumfuncties worden alleen weergegeven in berekende rekeningen van gemodelleerde bladen.
De datumfuncties zijn van toepassing op kalenders met de configuraties Maand > Kwartaal > Jaar. Als u een kalender hebt die een andere structuur gebruikt, retourneren veel van deze functies fouten. Overweeg om in plaats daarvan deze functie te gebruiken: this.version.positionOf(D.strata). Vervang D door een kalenderdatum in de volgende notatie: jjjj,mm,dd en vervang strata door de strata die u in uw kalender gebruikt. Voorbeeld: this.version.positionOf(2024,01,02.week) retourneert de eerste week van 2024.
Syntaxis
Omschrijving
D.Month.NumberOfDays
Retourneert het aantal dagen in de maand waarin de datum
D
optreedt
.
D.Year.PositionOf(D.Month).
Retourneert de maand van het boekjaar waarin de datum
D
optreedt.
D.Year.PositionOf(D.Qtr)
Retourneert het kwartaal van het boekjaar waarin de datum
D
optreedt.
(Date).
stratum_code
Retourneert de
Timeperiod
van het aangevraagde stratatype dat de (enkele, Gregoriaanse) datum bevat. Elke datum kan worden gebruikt als basis voor de stratumcode.
Voorbeeld:
ToDate
(2016,8,5).Qtr
retourneert het fiscale kalenderkwartaal dat 5 augustus 2016 bevat.
Day (D)
Retourneert de dag van de maand voor datum (
D
).
DaysInMonth (D)
Retourneert het aantal dagen in een maand waarin datum D valt. Retourneert mogelijk een fout of een onjuiste waarde voor aangepaste kalenders. Gebruiken
D.Month.NumberOfDays
in plaats daarvan.
FiscalMonth (D)
Retourneert de maand van het boekjaar waarin de datum (
D
) plaatsvindt. Retourneert mogelijk een fout voor aangepaste kalenders. Gebruiken
D.Year.PositionOf(D.Month).
FiscalQuarter (D)
Retourneert het kwartaal van het boekjaar waarin de datum (
D
) plaatsvindt. Retourneert mogelijk een fout voor aangepaste kalenders. Gebruiken
D.Year.PositionOf(D.Qtr).
FiscalYear (D)
Retourneert het boekjaar waarin de datum (
D
) plaatsvindt. Retourneert mogelijk een fout voor aangepaste kalenders. Probeer uw jaren te coderen met getallen die exact overeenkomen met het jaartal en gebruik
ToNumber
(D.Year.code).
Month (D)
Retourneert de maand waarin de datum (
D
) plaatsvindt.
Quarter (D)
Retourneert het kalenderkwartaal waarin de datum (
D
) plaatsvindt. Dit komt mogelijk niet overeen met het fiscale kwartaal van uw bedrijf (zie hieronder).
this.Version.PositionOf(D.Month)
Retourneert een getal dat de maand vertegenwoordigt van de versie waarin de datum D valt (eerste maand =
0
). Dit getal kan negatief zijn als de datum D eerder is dan het begin van de versie.
this.Version.PositionOf(D.Year)
Retourneert een getal dat het jaar vertegenwoordigt van de versie waarin de datum D valt (eerste jaar =
0
). Dit getal kan negatief zijn als de datum D eerder is dan het begin van de versie.
TimeFraction (D1, D2, D, Dx)
TimeFraction (D1; D2; D; Dx)
Retourneert het gedeelte van de huidige maand dat valt tussen de begindatum (
D1
) en de einddatum (
D2
). Als een optionele datum (
D
) is opgegeven, gebruikt de maand waarin
D
plaatsvindt, in plaats van de huidige maand. Als de optionele parameter voor het vaste aantal dagen (
Dx
) is opgegeven, overschrijft u de periode in
D
met de numerieke waarde.
Instances die zonder aangepaste kalender zijn geconfigureerd, kunnen gebruikmaken van
MonthFraction
in plaats van
TimeFraction
.
ToDate (Y, M, D)
ToDate (Y; M; D)
Retourneert de datum die is opgegeven door het opgegeven jaar (
Y
), maand (
M
) en dag (
D
). Als
D
is weggelaten,
15
wordt gebruikt. De resultaatwaarde kan worden gebruikt als argument in andere functies waarvoor een datum wordt gebruikt.
VersionMonth (D)
Retourneert een getal dat de maand vertegenwoordigt van de versie waarin de datum (
D
) vindt plaats (eerste maand =
0
). Dit getal kan negatief zijn als de datum (
D
) eerder is dan het begin van de versie.
Retourneert mogelijk een fout voor aangepaste kalenders. Gebruiken
this.Version.PositionOf(D.Month).
Version.PositionOf (timeperiod)
Retourneert de relatieve volgorde van de opgegeven periode binnen het volledige bereik van de versie. De eerste periode in een versie begint met 1 en het volgnummer kan negatief zijn als de periode vóór het begin van de versie valt. Deze functie werkt ook met een periode die na het einde van de versie valt.
VersionYear (D)
Retourneert een getal dat het jaar vertegenwoordigt van de versie waarin de datum (
D
) vindt plaats (eerste jaar =
0
). Dit getal kan negatief zijn als de datum (
D
) eerder is dan het begin van de versie.
Retourneert mogelijk een fout voor aangepaste kalenders. Gebruiken
this.Version.PositionOf(D.Year)
.
Year (D)
Retourneert het jaar waarin de datum (
D
) vindt plaats ongeacht of een aangepaste kalender wordt gebruikt of niet.

Tekenreeksfuncties

Syntaxis
Omschrijving
Concat (text1, text2, ...)
Concat (text1; text2; ...)
Hiermee wordt een samengevoegde tekenreeks (van twee of meer tekenreeksen) geretourneerd.
Voorbeeld:
Concat ("hello", "world")
retourneert '
helloworld"
.
Length (text)
Hiermee wordt het aantal tekens in een tekenreeks geretourneerd.
Voorbeeld:
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)
Retourneert de beginpositie van
search_text
in
source_text
. Retouren
0
if
search_text
is niet gevonden. Zoeken is niet hoofdlettergevoelig.
Voorbeelden:
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)
Retourneert een tekenreeks met de tekens die zijn gevonden in
source_text
beginnend om
start_position
(waar arbeidsplaats
1
is het eerste teken van de tekenreeks) en wordt uitgevoerd voor
length
(of tot het einde van de tekenreeks, afhankelijk van wat zich het eerst voordoet).
A . selecteren
start_position
van
0
of minder wordt behandeld alsof het een arbeidsplaats is
1
. Een lengte van selecteren
0
of minder wordt behandeld als een lengte van
0
en retourneert een lege tekenreeks. A . selecteren
start_position
dat is na het einde van
source_text
retourneert een lege tekenreeks.
ToNumber (text)
Hiermee wordt een tekenreeks die een getal voorstelt, geconverteerd naar de bijbehorende numerieke waarde. Het eerste deel van de tekenreeks wordt geconverteerd tot er een niet-numeriek teken wordt gevonden. Als het eerste teken niet-numeriek is, resulteert dit in een fout.
Voorbeelden:
ToNumber ("7")
retouren
7
.
ToNumber ("2017-12-31")
retourneert 2017 (een getal).
ToNumber ("Sample")
retourneert een fout.

Voorbeelden

Het volgende is een headcountformule op basis van een gemodelleerd blad Personeel. Het is een goed voorbeeld van hoe functies kunnen worden gecombineerd. Deze formule retourneert een binair resultaat:
1
of
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