Esempio: Creare formule per le tariffe
Per semplicità, gli esempi utilizzano virgole come separatori per i termini. Alcune impostazioni del browser richiedono l'utilizzo del punto e virgola come separatore.
In questo esempio, la formula Tariffa fa riferimento ai valori immessi nelle ipotesi
Mese aumento
e Percentuale aumento
.Alcuni aspetti da comprendere sul calcolo della Tariffa:
- La colonna Tariffa è un elemento Saldo di partenza (cumulativo), Pianificato in base a delta mensile, il che significa che i dati immessi in fase di pianificazione vengono poi riportati per tutti i periodi della versione. I calcoli effettuati sull'elemento verranno aggiunti al saldo del mese precedente nel conto.
- Sintassi per le istruzioni IF inAdaptive Planningdifferiscono da Excel:
- Adaptive Planningesempio:if(ACCT.A6=1 and ACCT.B6=0,X,0)
- Esempio di Excel:if(and(A6=1, B6=0),X,0)
- Nel calcolo della Tariffa sono presenti tre riferimenti temporali di base. Ogni riferimento assegna un numero a ciascun mese nella versione e può essere utilizzato per confrontare una colonna della data con un numero di mese assegnato nella versione.
- Month: a ogni mese viene assegnato un numero (da 1 a 12) seguendo l'anno di calendario che si ripete in tutta la versione.
- Fiscalmonth: a ogni mese viene assegnato un numero da 1 a 12 seguendo l'esercizio fiscale dell'azienda che si ripete in tutta la versione.
- Versionmonth: a ogni mese viene assegnato un numero. Il primo mese della versione è 0. I numeri continuano nel tempo (senza ripetersi). I numeri positivi indicano i mesi futuri. I numeri negativi (-) indicano i mesi passati.
Il calcolo della Tariffa è:
IF((VersionMonth(this) > 0) AND ROW.Headcount>0 AND (((VersionMonth(this) - VersionMonth(ROW.StartDate) > 1) AND ASSUM.RaiseMonth = 0 AND FiscalMonth(this) = FiscalMonth(ROW.StartDate)) OR (ASSUM.RaiseMonth = Month(this))), ROW.PayRate[time=THIS-1]*ASSUM.RaisePct, 0)
La tabella seguente fornisce una scomposizione dettagliata di ogni istruzione nel calcolo:
Istruzione | Descrizione |
|---|---|
VersionMonth(this)>0
| Questa istruzione verifica che il numero del mese assegnato in un determinato periodo della versione sia effettivamente successivo al primo mese della versione. In questo modo si impedisce di concedere un aumento nel primo mese della versione. Si presuppone che sia stato immesso lo stipendio di un dipendente nel primo mese come stipendio iniziale. |
ROW.Headcount>0
| Verifica che il dipendente sia impiegato per applicare l'aumento della tariffa. Headcount si basa sulla colonna della data di inizio e di fine del dipendente. Si tratta di un trigger binario con un risultato di 0 o 1 per indicare che il dipendente è occupato (o meno) in ogni periodo. |
VersionMonth(this)-VersionMonth(ROW.StartDate)>1
| Verifica ogni mese in cui viene applicata la formula per assicurarsi che venga applicato un aumento di stipendio solo dopo la data di inizio del dipendente. Il VersionMonth assegnato a ogni periodo viene confrontato con quello univoco VersionMonth assegnato alla data di inizio del dipendente. Se la differenza è maggiore di uno (il periodo è successivo alla data di inizio del dipendente), il dipendente può ottenere un aumento, a condizione che tutti gli altri and le istruzioni sono soddisfatte. |
ASSUM.RaiseMonth = 0
| Verifica ogni mese se il RaiseMonth ipotesi è 0 . Per gli aumenti di anniversario, il mese di aumento deve essere zero. |
FiscalMonth(this)=FiscalMonth(ROW.StartDate)
| Controlla ciascuno FiscalMonth e lo confronta con quello assegnato FiscalMonth per la data di inizio del dipendente. Ad esempio: se la data di inizio del dipendente è 8/12/2016 e l'esercizio fiscale dell'organizzazione è lo stesso dell'anno di calendario, il mese assegnato per FiscalMonth(ROW.StartDate) sarebbe 8 Nel mese di gennaio di ogni anno, FiscalMonth(this) restituisce a 1 . Febbraio restituisce a 2 e così via. Questa frase è vera solo quando FiscalMonth è uguale a FiscalMonth della data di inizio del dipendente. In questo modo, anno dopo anno, è possibile calcolare qualcosa in una data di anniversario. |
ASSUM.RaiseMonth = Month(this)
| Verifica che il numero immesso per il RaiseMonth ipotesi corrisponde al numero del mese corrente. Ad esempio: se si desidera che l'aumento avvenga nell'aprile 2017, inserire a 4 nell'ipotesi RaiseMonth ad aprile 2017. |
ROW.PayRate[time=THIS-1]*ASSUM.RaisePct
| Definisce la clausola True. Se le affermazioni precedenti sono vere (tutte le and e uno dei or istruzioni), quindi tutti i IF sono soddisfatte le condizioni e l'aumento (ASSUM.PaisePct ) viene applicato.Il PayRate la formula a fa riferimento al periodo precedente [time=THIS-1] , anziché il periodo corrente. I motivi sono i seguenti:
|
0
| Definisce la clausola False. Quando uno (o più) IF condizioni non sono soddisfatte, l'aumento lo è 0 e non viene aggiunto nulla al saldo. |
Se letta come una frase, questa formula sarebbe:
"Se si tratta di un mese all'interno di questa versione budget e il dipendente è assunto, e il periodo è successivo alla data di inizio del dipendente, e l'ipotesi ha valore pari a zero, e il mese corrente è uguale alla data di inizio del dipendente, oppure il mese corrente corrisponde al valore del mese corrente dell'ipotesi, allora concedere un aumento. In caso contrario, non concedere l'aumento."
Opzioni di aumento alternative
In genere le organizzazioni non concedono un aumento nel mese di aumento
o
in una data di anniversario. La maggior parte delle organizzazioni utilizzerà una versione più semplice di questo calcolo dell'aumento. Opzione 1:
applicare gli aumenti nel mese di aumento. La formula è:if(VersionMonth(this)>0 and ROW.Headcount>0 and VersionMonth(this)-VersionMonth(ROW.StartDate)>1 and ASSUM.RaiseMonth=fiscalmonth(this), ROW.PayRate[time=THIS-1]*ASSUM.RaisePct, 0
Le modifiche al calcolo includono:
Istruzione | Descrizione |
|---|---|
ROW.Headcount>0
| Come in precedenza, il Headcount deve essere maggiore di zero anziché uguale a 1 . In questo modo il calcolo funziona per tutte le righe di un dipendente suddiviso che potrebbe contare per meno di uno in una determinata riga. |
ASSUM.RaiseMonth=FiscalMonth(this)
| Il RaiseMonth viene confrontato con il mese fiscale dell'azienda. Ciò consente al dipendente che compila l'ipotesi di considerare l'esercizio fiscale dell'azienda anziché un anno di calendario forzato. |
fiscalmonth(this) = fiscalmonth(ROW.StartDate)) or ASSUM. RaiseMonth = Month(this)
| Non sono presenti or dichiarazione per la data dell'anniversario. L'aumento viene applicato solo nel mese di aumento. |
Opzione 2:
applicare gli aumenti in una data di anniversario. La formula è:if(VersionMonth(this)> 0 AND ROW.Headcount>0 AND VersionMonth(this)-VersionMonth(ROW.StartDate)> 1 AND FiscalMonth(this)=FiscalMonth(ROW.StartDate), ROW.PayRate[time=THIS-1]*ASSUM.RaisePct, 0)
Consultare Esempi di formule - Personale, Calcoli tariffa paga per ulteriori opzioni di tariffa.