In den folgenden Tabellen finden Sie Funktionen, die Sie in Formeln in xP&A verwenden können.

Die folgenden Funktionen sind in Lucanet xP&A für Formeln verfügbar:

FunktionBeschreibung
absDer Betrag einer Zahl
avgDas arithmetische Mittel (Durchschnitt) der Eingaben. Kann auch als avgif verwendet werden. Beispiel: avg(1, 2, 3) = 2; avg(if Var[all] % 2 = 0 then Var[all] else none) = Durchschnittswert aller geraden Werte
first_nonzero_valueDer erste Wert, der nicht Null oder leer ist Beispiel: first_nonzero_value(0,none,4,6) = 4
logNatürlicher Logarithmus (Basis e) Beispiel: log(e^2) = 2
log10Zehnerlogarithmus (Basis 10) Beispiel: log10(100) = 2
maxDer höchste der Eingabewerte Beispiel: max(1, 2, 3) = 3; max([1, 2, 3]) = 3
minDer niedrigste der Eingabewerte Beispiel: min(1, 2, 3) = 1; min([1, 2, 3]) = 1
modDer Rest einer Division. Statt mod kann auch "%" geschrieben werden. Beispiel: mod(5, 2) = 1; 5 % 2 = 1; Wiederholung alle 4 Monate: if timeStep % 4 = 0 then 1 else 0
reverseKehrt die Reihenfolge eines Arrays um. Beispiel: reverse([1, 2]) = [2, 1]
roundRundet die Zahl auf die nächste ganze Zahl. Optional können Sie die Anzahl der Nachkommastellen als zweites Argument angeben. Beispiel: round(2,3) = 2, round(2,5) = 3, round(2,26, 1) = 2,3
rounddownRundet ab, Richtung 0. Optional können Sie die Anzahl der Nachkommastellen als zweites Argument angeben. Beispiel: rounddown(2,8) = 2, rounddown(-2,8) = -2, rounddown(2,88, 1) = 2,8
roundupRundet auf, weg von 0. Optional können Sie die Anzahl der Nachkommastellen als zweites Argument angeben. Beispiel: roundup(2,2) = 3, roundup(-2,2) = -3, roundup(2,22, 1) = 2,3
signchangeZeitschritt, an dem der erste Vorzeichenwechsel stattfindet Beispiel: signchange​(Var[all])
spreadVerteilt einen Wert über einen Zeitraum. Beispiel: spread(Neukunden[0:t], Zahlungen[0:t]) Für ein ausführlicheres Beispiel siehe Beispiele für Funktionen.
sqrtQuadratwurzel eines Werts Beispiel: sqrt(4) = 2
sumDie Summe der Eingaben. Kann auch als sumif oder countif verwendet werden. Beispiel: sum(1, 2, 3) = 6; sum(if Var[all] % 2 = 0 then Var[all] else 0) = Summe aller geraden Werte
sumproductMultipliziert zwei oder mehr Arrays miteinander und gibt die Summe der Produkte zurück. Beispiel: sumproduct(Var1[all], Var2[all])
expExponentialfunktion Beispiel: exp(2) = e^2
FunktionBeschreibung
dateDie Nummer des Zeitschritts eines Datums. Zeitschritte beginnen bei 0. Beispiel: date(2021,12,24) = 11 in einem monatsbasierten Modell, das im Januar 2021 beginnt
month_from_dateExtrahiert den Monat eines Datums oder eines Zeitschritts. Beispiel: month_from_date( date(2021,12,24) ) = 12
year_from_dateExtrahiert das Jahr eines Datums oder eines Zeitschritts. Beispiel: year_from_date( date(2021,12,24) ) = 2021
FunktionBeschreibung
cumipmtKumulativer Zinsaufwand Beispiel: cumipmt(Zinssatz, Zeiträume, Wert, Start, Ende, Typ)
finance.AMAbschreibung Beispiel: finance.AM(Kapital, Zinssatz, Zeitraum, JahrOderMonat, ZahlungZuBeginn)
finance.CAGRDurchschnittliche jährliche Wachstumsrate Beispiel: finance.CAGR(Anfangswert, Endwert, Anzahl der Zeiträume)
finance.CIZinseszins Beispiel: finance.CI(Zinssatz, Aufzinsung pro Zeitraum, Kapital, Anzahl der Zeiträume)
finance.DFRabattfaktor (gibt ein Array zurück; muss Array indizieren, um Werte zu erhalten – um alle Werte des Arrays zu sehen, siehe Beispiel oben). Beispiel: finance.DF(Prozentsatz, Anzahl der Zeiträume)[index]
finance.FVZukunftswert Beispiel: finance.FV(rate, nper, pmt, pv, type)
finance.IARInflationsbereinigte Rendite Beispiel: finance.IAR(Investitionsrendite, Inflationsrate)
finance.irrInterne Rendite Beispiel: finance.IRR(Kapitalflüsse[all], [guess]) Für ein ausführlicheres Beispiel siehe Beispiele für Funktionen.
finance.LRFinanzhebel Beispiel: finance.LR(Gesamtverbindlichkeiten, Gesamtschulden, Gesamteinnahmen)
finance.NPVNettobarwert Beispiel: finance.NPV(Prozentsatz, Anfangsinvestition, Kapitalflüsse[all]) Für ein ausführlicheres Beispiel siehe Beispiele für Funktionen.
finance.PIRentabilitätsindex Beispiel: finance.PI(Prozentsatz, Anfangsinvestition, Kapitalflüsse[all])
finance.PMTZahlung für einen Kredit bei konstanten Zahlungen mit festem Zinssatz Beispiel: finance.PMT(fraktionierter Zinssatz, Anzahl der Zahlungen, Kapital)
finance.PPAmortisationszeitraum Beispiel: finance.PP(Anzahl der Zeiträume, Kapitalflüsse[all])
finance.PVBarwert Beispiel: finance.PV(rate, nper, pmt, [fv], [type])
finance.R7272er-Regel Beispiel: finance.R72(Zinssatz)
finance.roiRendite Beispiel: finance.ROI(Kapitalflüsse[all])
finance.WACCGewichteter durchschnittlicher Kapitalkostensatz Beispiel: finance.WACC(Marktwert des Eigenkapitals, Marktwert des Fremdkapitals, Eigenkapitalkosten, Fremdkapitalkosten, Steuersatz)
finance.xirrInterner Zinsfuß für Kapitalflussrechnungen Beispiel: finance.xirr([-10,11], [0,12], 12) = 10% Für ein ausführlicheres Beispiel siehe Beispiele für Funktionen.
fvZukunftswert Beispiel: v(rate, nper, pmt, pv, [type])
fvifaZukunftswert-Zinsfaktor einer Annuität Beispiel: fvifa(rate, nper)
ipmtZinsanteil einer bestimmten Kreditrate Beispiel: ipmt(rate, per, nper, pv, [fv], [type])
pmtRegelmäßige Zahlung für einen Kredit Beispiel: pmt(rate, nper, pv, [fv], [type])
ppmtTilgungsanteil einer bestimmten Kreditrate Beispiel: ppmt(rate, per, nper, pv, [fv], [type])
pvBarwert Beispiel: pv(rate, nper, pmt, fv, [type])
pvifBarwert-Zinsfaktor Beispiel: pvif(rate, nper)
rateZinssatz pro Zeitraum einer Annuität Beispiel: rate(nper, pmt, pv, [fv], [type], [guess])
FunktionBeschreibung
betaBeta-Verteilung Beispiel: beta(alpha, beta)
binominalBinomialverteilung Beispiel: binomial(n, p)
cauchyCauchy-Verteilung Beispiel: cauchy(local, scale)
chisqChi-Quadrat-Verteilung Beispiel: chisq(k)
exponentialExponentialverteilung Beispiel: exponential(rate)
gammaGammaverteilung Beispiel: gamma(shape, scale)
invgammaInverse Gammaverteilung Beispiel: invgamma(shape, scale)
lognormalLog-Normal-Verteilung Beispiel: lognormal(μ, σ^2)
lognormal_fromLog-Normal-Verteilung Beispiel: finance.LR(Gesamtverbindlichkeiten, Gesamtschulden, Gesamteinnahmen)
normalNettobarwert Beispiel: finance.NPV(Prozentsatz, Anfangsinvestition, Kapitalflüsse[all])
normal_fromLog-Normal-Verteilung Beispiel: lognormal_from_interval (from, to, confidence_percent)
paretoParetoverteilung Beispiel: pareto(min, alpha)
poissonPoisson-Verteilung Beispiel: poisson(λ)
stdevStandardabweichung eines Arrays Beispiel: stdev(Var[all])
triangleDreiecksverteilung Beispiel: triangle(from, to, confidence_percent)
uniformGleichmäßige Verteilung Beispiel: uniform(from, to)
varianceAbweichung eines Arrays Beispiel: variance(Var[all])

Fehler bei der Erklärung eines ungültigen Zustands

Beispiel: error()

Prognostiziert Kohortendaten ohne die Kohortendimension.

Beispiel: flat_cohort_forecast​(oldCohorts[all],​ newCohorts[all], retentionRates[all],​ lastDataDate, t, [additionalChurn])

Prognostiziert Ihre zukünftigen Eingaben basierend auf historischen Daten mithilfe von KI.

Beispiel: forecast(timestep, past_values, growth_rate), wobei timestep t ist und past_values auf die Variable mit Werten referenziert.

Hinweise:

  • Stellen Sie sicher, dass Sie einen Zeitraum wählen, der mindestens 13 Eingaben enthält, um die genauesten Ergebnisse zu erhalten, z. B. 13 Monate an Daten.
  • growth_rate ist optional.

Rechnet einen Wert über einen Zeitraum in Form einer Gaußschen Glockenkurve hoch.

Beispiel: gaussian_ramp​(timestep,date(2022,10), 2, 100)

Wenn das erste Argument einen Fehler „ungültige Zahl“ ergibt, wird das zweite Argument zurückgegeben. Andernfalls wird das erste Argument zurückgegeben.

Beispiel: if_error(Y/X, Z) – nützlich, wenn der Teiler X gleich 0 ist und das erste Argument daher ein Teilen durch 0 (Fehler „ungültige Zahl“) ergeben würde

Ergibt 1, wenn das Argument von einer Datenquelle abgeleitet ist, sonst 0.

Beispiel: is_data(Variable[all])

Ergibt 1, wenn das Argument ein Element einer gesperrten Dimension ist, sonst 0.

Beispiel: is_locked​(dimensionitem)

Gibt den letzten aus einer Datenquelle abgeleiteten Zeitschritt zurück.

Beispiel: last_data_​timestep​(Var[all])

Rechnet einen Wert über einen Zeitraum in einer S-Form (logistische Funktion) hoch.

Beispiel: logistic_ramp​(timestep, date(2022,1),​ date(2022,10), 1.8, 100, 200)

Rechnet einen Wert quadratisch über einen Zeitraum hoch.

Beispiel: quadratic_ramp​(timestep,date(2022,1),​ date(2022,10) [startValue],​ [endValue])

Rechnet einen Wert linear über einen Zeitraum hoch.

Beispiel: ramp(timestep, date(2022,1), date(2022,10), 100, 200)

Hochrechnung mit der kumulativen Summe 1. Nützlich für die Verteilung eines festen Werts über einen bestimmten Zeitraum.

Beispiel: ramp_normalized​(timestep, date(2022,1),​ date(2022,10)

Die folgende Tabelle bietet einige praktische Beispiele für ausgewählte Funktionen:

Spread ist eine leistungsstarke und flexible xP&A-Funktion. Damit können Sie einen Wert oder eine Gruppe von Werten über einen Zeitraum verteilen. Die Funktion ist ähnlich wie die Funktion sumproduct in Excel, jedoch mit einer intuitiveren Benutzeroberfläche.

Spread hat zwei Argumente:

  • x – der Wert oder die Menge der Werte
  • y – der Betrag, mit dem Sie x verteilen

Wenn alle neuen Kunden im ersten Monat eine Anmeldegebühr von 100 $ zahlen müssen und ab dem zweiten Monat je Monat 10 $ für ihr Abonnement zahlen, können Sie Ihren monatlichen Umsatz mit spread berechnen.

In diesem Fall wäre x die Anzahl der neuen Kunden pro Monat, und y wäre die Zahlungsstruktur, mit der diese Werte verteilt werden.

In xP&A würde dies wie folgt aussehen:

xP&A verfügt über viele Finanzfunktionen, die Sie vielleicht von Excel oder Google Sheets kennen – und sie funktionieren sehr ähnlich.

Wenn Sie eine Variable Cash Flows haben, bei der der erste Wert die anfängliche Investition und die folgenden Werte die Rückflüsse sind, können Sie den IRR wie folgt berechnen:

Beispiel für die Funktion 'finance.irr'

XIRR wird verwendet, wenn die Cashflows nicht periodisch sind. Deshalb benötigt XIRR drei Argumente:

  • Die Cashflows
  • Die Zeitschritte, zu denen sie auftreten
  • Die Granularität (Anzahl der Zeitschritte in einem Jahr)

Wenn Sie im Erster Monat 10 $ investieren und nach 10 Monaten eine Rendite von 6 $ sowie nach 12 Monate weitere 6 $ erhalten, würde Ihre Formel wie folgt aussehen:

Beispiel für die Funktion 'finance.xirr'

Der Nettobarwert (Net Present Value, NPV) vergleicht den in der Zukunft erhaltenen Geldbetrag mit einem heute erhaltenen Geldbetrag, wobei Zeit und Zinsen berücksichtigt werden. Die Argumente der Funktion sind:

  • Zinssatz in Prozent
  • Cashflows

Beispiel:

Bei einem Diskontsatz von 10 %, einer Anfangsinvestition von 500 und Cashflows von 200, 300 und 200 können Sie die Funktion wie folgt verwenden: finance.npv(10, -500, 200, 300, 200).

Normalerweise sind die Cashflows in einer Zeitreihenvariablen enthalten, in diesem Fall können Sie die Variable in der Funktion verwenden:

Beispiel für die Funktion 'finance.npv'