Passa al contenuto principale
Adaptive Planning
Ultimo aggiornamento: 2023-06-23
Riferimenti: Funzioni delle formule

Riferimenti: Funzioni delle formule

Le funzioni delle formule sono raggruppate in quattro categorie: matematiche, logiche, stringa e data. Questo argomento definisce ogni funzione e fornisce una breve spiegazione.
Per semplicità, le descrizioni nella tabella mostrano le formule utilizzando virgole come separatori. Alcune impostazioni del browser richiedono l'utilizzo del punto e virgola come separatore. Le colonne della sintassi mostrano entrambe le versioni.

Funzioni matematiche

Le funzioni matematiche sono disponibili come pulsanti. Ad esempio addizione (+), sottrazione (-) e moltiplicazione (*). Ulteriori selezioni sono disponibili da
Funzione > Matematica
.

Funzioni logiche

Da includere come parte di un
If
istruzione, le funzioni logiche di base e i confronti sono disponibili come pulsanti. Ad esempio, logico e (
AND
), logico o (
OR
) e la negazione logica (
NOT
). I confronti includono uguale a (
=
), maggiore di (
>
), minore di (
<
) o diverso da (
!=
). È anche possibile utilizzare (
<>
) per non uguale.
Ulteriori selezioni sono disponibili da
Funzione > Logica
:
Sintassi
Descrizione
Blank()
Restituisce
Blank
valore Questo valore viene visualizzato come vuoto (anziché come zero), ma coincide con lo zero ai fini della formula. A differenza di uno zero, provoca il
IsBlank()
funzione da restituire
TRUE
, ma in modo simile a zero può essere soppresso quando l'opzione "Elimina righe vuote" è abilitata nei fogli o nei report.
Error ()
Causa un errore di valutazione di runtime.
Esempio:
IF(ACCT.EffectiveHeadcount < 0, Error(), ACCT.EffectiveHeadcount+ACCT.AddlHeadcount)
Se il numero degli effettivi è inferiore a 0, restituisce un errore per individuare il problema sottostante.
If (EXPR, T, F)
If (EXPR; T; F)
Restituisce un valore numerico (
T
) se Espressione booleana (
EXPR
) è vero, altrimenti restituisce un valore numerico (
F
). È possibile utilizzare gli operatori booleani e di confronto per creare l'espressione booleana.
Iff (EXPR, T, F)
Iff (EXPR; T; F)
La forma "veloce" o in cortocircuito del file
If
funzione Restituisce lo stesso valore di
If
. Tuttavia, se la condizione è vera, il terzo argomento della funzione non viene valutato. Analogamente, se la condizione è falsa, il secondo argomento non viene valutato. Ciò significa che il secondo o il terzo argomento potrebbero contenere errori ma i risultati di
Iff
sarà comunque valido perché l'argomento che include l'errore non viene valutato.
Esempi:
  • IFF (this.Version.isActuals, ACCT.TravelExp, ACCT.Personnel.EstimatedTravel)
  • IFF (this.Qtr.PositionOf (this.Month) = 2, 100000, 0)
IsBlank (N)
Restituisce vero se l'argomento è nullo o vuoto, in caso contrario falso. Può essere utilizzato solo in un argomento di espressione (
EXPR
) al
If
funzione
Esempio:
If(IsBlank(Row.StartDate),0,1)
Switch (Orig_EXPR, Case1, Case2, ..., Default)
Switch (Orig_EXPR; Case1; Case2; ...; Default)
Fornisce un metodo per scrivere espressioni compatte che possono essere utilizzate al posto di complesse e nidificate
If
dichiarazioni
  • Il primo argomento (
    Orig_EXPR
    ) è l'espressione originale (a volte chiamata
    espressione di controllo
    ) che viene valutata per prima.
  • Gli argomenti successivi sono
    Cases
    (valori ed espressioni corrispondenti) che possono essere attivati a seconda di quale maiuscole/minuscole corrisponde al valore dell'espressione originale.
  • È possibile definire uno o più casi. Ogni ticket è costituito da un valore (
    N
    ) e un'espressione (
    EXPR
    ) separati da una virgola. La sintassi espansa ha il seguente aspetto:
    Switch (Orig_EXPR, N1, EXPR1, N2, EXPR2, ..., Default)
  • Ad esempio, se il valore dell'espressione originale corrisponde al valore definito in
    Case1
    , l'espressione associata a
    Case1
    viene restituito. Tuttavia, se il valore dell'espressione originale corrisponde
    Case2
    , l'espressione associata a
    Case2
    viene restituito e così via.
  • Se non è presente alcuna corrispondenza,
    Switch
    restituisce il
    Default
    espressione
  • Tutte le espressioni (
    EXPR
    ) nel
    Switch
    deve essere dello stesso tipo di dati (stringa, data, numero e così via). Se le espressioni variano nel tipo di dati, viene visualizzato il seguente errore:
    Inconsistent
    Cambiare i tipi di reso
  • Invece di un singolo valore (
    N
    ) per ogni ticket, è possibile specificare a
    Range(L,U)
    di valori in cui
    L
    è il limite inferiore dell'intervallo e
    U
    è il limite superiore dell'intervallo. Ad esempio, un intervallo potrebbe includere un numero di anni
    Range(2014,2017)
    e quando il valore dell'espressione originale rientra in tale intervallo compreso, l'espressione associata a tale intervallo viene attivata.
  • Ogni argomento di un intervallo deve essere dello stesso tipo di dati (ad esempio, un numero come 7, una costante stringa come
    Engineering
    o una costante di data creata utilizzando l'esistente
    Date()
    funzione o un'espressione che si risolve nel tipo di dati appropriato (ad es
    this.Version.Name
    o
    ACCT.Rent
    ).
Esempi:
  • Switch (ROW.DAY,1,"Sunday",2,"Monday",3,"Tuesday","No match")
    Se
    ROW.DAY
    è 2, lunedì è l'espressione che corrisponde al valore 2, quindi
    Switch
    il risultato è lunedì.
  • Switch (ToNumber (ROW.CaseQty), Range (0,11), 0, Range (12,24), 1, Range (24,48), 4, 0)
    Questo secondo esempio viene restituito0, 1 o4 a seconda del valore numerico trovato nel file
    CaseQty
    selettore

Funzioni di data e tempo

Le funzioni di data vengono spesso utilizzate in combinazione con le colonne
Data
dei fogli modellati. Le funzioni di data vengono visualizzate solo nei conti calcolati dal foglio modellato.
Le funzioni di data si applicano ai calendari con configurazioni Mese > Trimestre > Anno. Se si dispone di un calendario che utilizza una struttura diversa, molte di queste funzioni restituiscono errori. Valutare la possibilità di utilizzare questa funzione: this.version.positionOf(D.strata). Sostituire D con una data di calendario nel seguente formato: aaaa, mm, gg e sostituire gli strati con gli strati utilizzati nel calendario. Esempio: this.version.positionOf(2024,01,02.week) restituisce la prima settimana del 2024.
Sintassi
Descrizione
D.Month.NumberOfDays
Restituisce il numero di giorni del mese in cui la data
D
si verifica
.
D.Year.PositionOf(D.Month).
Restituisce il mese dell'esercizio fiscale in cui la data
D
si verifica.
D.Year.PositionOf(D.Qtr)
Restituisce il trimestre dell'esercizio fiscale in cui la data
D
si verifica.
(Date).
stratum_code
Restituisce
Timeperiod
del tipo di strati richiesto che contiene la Data (singola, gregoriana). Qualsiasi data può essere utilizzata come base del codice strato.
Esempio:
ToDate
(2016,8,5).Qtr
restituisce il trimestre del calendario fiscale che contiene il 5 agosto 2016.
Day (D)
Restituisce il giorno del mese per la data (
D
).
DaysInMonth (D)
Restituisce il numero di giorni in un mese in cui è presente la data D. Può restituire un errore o un valore errato per i calendari personalizzati. Utilizzare
D.Month.NumberOfDays
invece.
FiscalMonth (D)
Restituisce il mese dell'esercizio fiscale in cui la data (
D
) si verifica. Può restituire un errore per i calendari personalizzati. Utilizzare
D.Year.PositionOf(D.Month).
FiscalQuarter (D)
Restituisce il trimestre dell'esercizio fiscale in cui la data (
D
) si verifica. Può restituire un errore per i calendari personalizzati. Utilizzare
D.Year.PositionOf(D.Qtr).
FiscalYear (D)
Restituisce l'esercizio fiscale in cui la data (
D
) si verifica. Può restituire un errore per i calendari personalizzati. Provare a codificare gli anni con numeri che corrispondono esattamente all'anno e all'utilizzo
ToNumber
(D.Year.code).
Month (D)
Restituisce il mese in cui la data (
D
) si verifica.
Quarter (D)
Restituisce il trimestre di calendario in cui la data (
D
) si verifica. Questo potrebbe non corrispondere al trimestre fiscale dell'azienda (vedere di seguito).
this.Version.PositionOf(D.Month)
Restituisce un numero che rappresenta il mese della versione in cui è presente la data D (primo mese =
0
). Questo numero può essere negativo se la data D è precedente all'inizio della versione.
this.Version.PositionOf(D.Year)
Restituisce un numero che rappresenta l'anno della versione in cui è presente la data D (primo anno =
0
). Questo numero può essere negativo se la data D è precedente all'inizio della versione.
TimeFraction (D1, D2, D, Dx)
TimeFraction (D1; D2; D; Dx)
Restituisce la parte del mese corrente che intercorre tra la data di inizio (
D1
) e la data di fine (
D2
). Se una data facoltativa (
D
) è specificato, utilizza il mese in cui
D
si verifica invece del mese corrente. Se il parametro relativo al numero di giorni fisso facoltativo (
Dx
) è specificato, sostituire il periodo di tempo in
D
con il valore numerico.
Possono essere utilizzate le istanze configurate senza un calendario personalizzato
MonthFraction
invece di
TimeFraction
.
ToDate (Y, M, D)
ToDate (Y; M; D)
Restituisce la data specificata dall'anno specificato (
Y
), mese (
M
) e il giorno (
D
). Se
D
viene omesso,
15
viene utilizzato. Il valore restituito può essere usato come argomento per altre funzioni che prevedono una data.
VersionMonth (D)
Restituisce un numero che rappresenta il mese della versione in cui la data (
D
) si verifica (primo mese =
0
). Questo numero può essere negativo se la data (
D
) è precedente all'inizio della versione.
Può restituire un errore per i calendari personalizzati. Utilizzare
this.Version.PositionOf(D.Month).
Version.PositionOf (timeperiod)
Restituisce l'ordine relativo del periodo di tempo specificato all'interno dell'intero intervallo della versione. Il primo periodo di tempo in una versione inizia con 1 e il numero d'ordine può essere negativo se il periodo di tempo cade prima dell'inizio della versione. Questa funzione funziona anche con un periodo di tempo successivo alla fine della versione.
VersionYear (D)
Restituisce un numero che rappresenta l'anno della versione in cui la data (
D
) si verifica (primo anno =
0
). Questo numero può essere negativo se la data (
D
) è precedente all'inizio della versione.
Può restituire un errore per i calendari personalizzati. Utilizzare
this.Version.PositionOf(D.Year)
.
Year (D)
Restituisce l'anno in cui la data (
D
) si verifica indipendentemente dal fatto che venga utilizzato o meno un calendario personalizzato.

Funzioni di stringa

Sintassi
Descrizione
Concat (text1, text2, ...)
Concat (text1; text2; ...)
Restituisce una stringa concatenata unendo due o più stringhe di testo.
Esempio:
Concat ("hello", "world")
restituisce "
helloworld"
.
Length (text)
Restituisce il numero di caratteri in una stringa di testo.
Esempio:
Length ("Now, is the winter of our discontent. Made glorious summer by this son or York.")
resi
79
.
Search (source_text, search_text)
Search (source_text; search_text)
Restituisce la posizione iniziale di
search_text
in
source_text
. Resi
0
se
search_text
non è stato trovato. La ricerca non distingue tra maiuscole e minuscole.
Esempi:
Search ("Now is the winter of our discontent.", "Winter")
resi
12
.
Search ("Now is the winter of our discontent.", "Summer")
resi
0.
Substring (source_text, start_position, length)
Substring (source_text; start_position; length)
Restituisce una stringa di testo contenente i caratteri trovati in
source_text
a partire dalle
start_position
(dove position
1
è il primo carattere della stringa di testo) e in esecuzione per
length
(o fino alla fine della stringa di testo, a seconda di quella che si incontra per prima).
Selezionando a
start_position
di
0
o meno viene trattata come se si trattasse di una posizione
1
. Selezionando una lunghezza di
0
o meno viene considerato come una lunghezza di
0
e restituisce una stringa vuota. Selezionando a
start_position
dopo la fine di
source_text
restituisce una stringa vuota.
ToNumber (text)
Converte una stringa di testo corrispondente a un numero nel relativo valore numerico. Converte la parte iniziale della stringa finché non viene trovato un carattere non numerico. Se il primo carattere non è numerico, genera un errore.
Esempi:
ToNumber ("7")
resi
7
.
ToNumber ("2017-12-31")
restituisce 2017 (un numero).
ToNumber ("Sample")
restituisce un errore.

Esempi

La seguente è una formula Effettivi di un foglio modellato Personale. È un buon esempio di come è possibile combinare le funzioni. Questa formula restituisce un risultato binario:
1
o
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