Saltar al contenido principal
Adaptive Planning
Última actualización: 2023-06-23
Referencia: funciones de fórmula

Referencia: funciones de fórmula

Las funciones de fórmula se agrupan en cuatro categorías: matemáticas, lógicas, de cadena y de fecha. En este tema se definirá cada una de las funciones y se acompañará de una breve explicación.
Para simplificar, las descripciones de la tabla muestran las fórmulas utilizando comas como separadores. Algunas configuraciones de navegador requieren utilizar puntos y coma como separadores. Las columnas de sintaxis muestran ambas versiones.

Funciones matemáticas

Las funciones matemáticas están disponibles como botones. Por ejemplo, más (=), menos (-) y multiplicar (*). Hay selecciones adicionales disponibles en
Función > Matemática
.

Funciones lógicas

Para incluir como parte de un
If
La instrucción, las funciones lógicas básicas y las comparaciones están disponibles como botones. Por ejemplo, lógico y (
AND
), lógica o (
OR
) y negación lógica (
NOT
). Las comparaciones incluyen igual a (
=
), mayor que (
>
), menor que (
<
) o distinto de (
!=
). También puede utilizar (
<>
) para no igual.
Otras selecciones disponibles en
Función > Lógica
son las siguientes:
Sintaxis
Descripción
Blank()
Devuelve el
Blank
valor Este valor se muestra en blanco (en lugar de cero), pero se evalúa de manera idéntica al cero a efectos de la fórmula. A diferencia de un cero, hace que el
IsBlank()
función para devolver
TRUE
, pero de forma similar a un cero, se puede suprimir cuando la opción "suprimir filas vacías" está activada en hojas o informes.
Error ()
Causa un error de evaluación en tiempo de ejecución.
Ejemplo:
IF(ACCT.EffectiveHeadcount < 0, Error(), ACCT.EffectiveHeadcount+ACCT.AddlHeadcount)
Si el headcount efectivo es inferior a 0, devuelva un error para facilitar la localización del problema subyacente.
If (EXPR, T, F)
If (EXPR; T; F)
Devuelve un valor numérico (
T
) si la expresión booleana (
EXPR
) es verdadero; de lo contrario, devuelve un valor numérico (
F
). Puede usar operadores booleanos y de comparación para crear la expresión booleana.
Iff (EXPR, T, F)
Iff (EXPR; T; F)
La forma "rápida" o de cortocircuito de la
If
función Devuelve el mismo valor que
If
. Sin embargo, si la condición es verdadera, el tercer argumento de la función no se evalúa. Del mismo modo, si la condición es falsa, el segundo argumento no se evalúa. Esto significa que el segundo o el tercer argumento podrían contener errores, pero los resultados de
Iff
seguirá siendo válido porque el argumento que incluye el error no se evalúa.
Ejemplos:
  • IFF (this.Version.isActuals, ACCT.TravelExp, ACCT.Personnel.EstimatedTravel)
  • IFF (this.Qtr.PositionOf (this.Month) = 2, 100000, 0)
IsBlank (N)
Aparece verdadero si el argumento está en blanco o vacío; si no, aparece falso. Solo se puede utilizar en un argumento de expresión (
EXPR
) a la
If
función
Ejemplo:
If(IsBlank(Row.StartDate),0,1)
Switch (Orig_EXPR, Case1, Case2, ..., Default)
Switch (Orig_EXPR; Case1; Case2; ...; Default)
Proporciona un método para escribir expresiones compactas que se pueden usar en lugar de expresiones complejas y anidadas.
If
declaraciones
  • El primer argumento (
    Orig_EXPR
    ) es la expresión original (a veces denominada
    expresión de control
    ) que se evalúa en primer lugar.
  • Los siguientes argumentos son
    Cases
    (valores y expresiones correspondientes) que se pueden activar en función de las mayúsculas y minúsculas que coincidan con el valor de la expresión original.
  • Se pueden definir uno o varios casos. Cada caso consta de un valor (
    N
    ) y una expresión (
    EXPR
    ) separados por una coma. La sintaxis expandida tiene este aspecto:
    Switch (Orig_EXPR, N1, EXPR1, N2, EXPR2, ..., Default)
  • Por ejemplo, si el valor de la expresión original coincide con el valor definido en
    Case1
    , la expresión asociada a
    Case1
    se devuelve. Pero, si el valor de la expresión original coincide
    Case2
    , la expresión asociada a
    Case2
    se devuelve, y así sucesivamente.
  • Si no hay ninguna coincidencia,
    Switch
    devuelve el
    Default
    expresión
  • Todas las expresiones (
    EXPR
    ) en el
    Switch
    debe ser del mismo tipo de datos (cadena, fecha, número, etc.). Si las expresiones varían en el tipo de datos, aparece este error:
    Inconsistent
    Cambiar tipos de valor devuelto
  • En lugar de un solo valor (
    N
    ) para cada caso, puede especificar un
    Range(L,U)
    de valores donde
    L
    es el límite inferior del rango y
    U
    es el límite superior del rango. Por ejemplo, un rango puede incluir varios años
    Range(2014,2017)
    y cuando el valor de la expresión original se encuentra dentro de ese rango, inclusive, se activa la expresión asociada a ese rango.
  • Cada argumento de un rango debe ser del mismo tipo de datos (por ejemplo, un número como 7, una constante de cadena como
    Engineering
    o una constante de fecha creada con la
    Date()
    una función o una expresión que se resuelva en el tipo de datos adecuado (por ejemplo,
    this.Version.Name
    o
    ACCT.Rent
    ).
Ejemplos:
  • Switch (ROW.DAY,1,"Sunday",2,"Monday",3,"Tuesday","No match")
    Si
    ROW.DAY
    es 2, el lunes es la expresión que corresponde al valor 2, por lo que
    Switch
    el resultado es lunes.
  • Switch (ToNumber (ROW.CaseQty), Range (0,11), 0, Range (12,24), 1, Range (24,48), 4, 0)
    Este segundo ejemplo devuelve0, 1 o4 en función del valor numérico encontrado en el
    CaseQty
    selector

Funciones de fecha y hora

Las funciones de fecha se suelen utilizar en combinación con las columnas
Fecha
de las hojas modeladas. Las funciones de fecha solo se muestran en las cuentas calculadas de las hojas modeladas.
Las funciones de fecha se aplican a los calendarios con configuraciones de Mes > Trimestre > Año. Si tiene un calendario que utiliza una estructura diferente, muchas de estas funciones devolverán errores. Considere la posibilidad de utilizar esta función en su lugar: this.version.positionOf(D.strata). Sustituya D por una fecha de calendario con este formato: aaaa, mm, dd y sustituya estratos por los estratos que utilice en su calendario. Ejemplo: this.version.positionOf(2024,01,02.week) devuelve la primera semana de 2024.
Sintaxis
Descripción
D.Month.NumberOfDays
Devuelve el número de días del mes en los que date
D
se produce
.
D.Year.PositionOf(D.Month).
Devuelve el mes del ejercicio contable en el que la fecha
D
se produce.
D.Year.PositionOf(D.Qtr)
Devuelve el trimestre del ejercicio contable en el que la fecha
D
se produce.
(Date).
stratum_code
Devuelve el
Timeperiod
del tipo de estrato solicitado que contiene la Fecha (única, gregoriana). Se puede utilizar cualquier fecha como base del código de estrato.
Ejemplo:
ToDate
(2016,8,5).Qtr
devuelve el trimestre natural contable que contiene el 5 de agosto de 2016.
Day (D)
Devuelve el día del mes para la fecha (
D
).
DaysInMonth (D)
Devuelve el número de días de un mes en los que aparece la fecha D. Puede devolver un error o un valor incorrecto con los calendarios personalizados. Utilizar
D.Month.NumberOfDays
en su lugar.
FiscalMonth (D)
Devuelve el mes del ejercicio contable en el que date (
D
). Puede devolver un error con los calendarios personalizados. Utilizar
D.Year.PositionOf(D.Month).
FiscalQuarter (D)
Devuelve el trimestre del ejercicio contable en el que la fecha (
D
). Puede devolver un error con los calendarios personalizados. Utilizar
D.Year.PositionOf(D.Qtr).
FiscalYear (D)
Devuelve el ejercicio contable en el que date (
D
). Puede devolver un error con los calendarios personalizados. Intente codificar sus años con números que coincidan exactamente con el año y utilice
ToNumber
(D.Year.code).
Month (D)
Devuelve el mes en el que date (
D
).
Quarter (D)
Devuelve el trimestre natural en el que la fecha (
D
). Puede que no coincida con el trimestre contable de su empresa (consulte a continuación).
this.Version.PositionOf(D.Month)
Devuelve un número que representa el mes de la versión en el que aparece la fecha D (primer mes =
0
). Este número puede ser negativo si la fecha D es anterior al inicio de la versión.
this.Version.PositionOf(D.Year)
Devuelve un número que representa el año de la versión en la que aparece la fecha D (primer año =
0
). Este número puede ser negativo si la fecha D es anterior al inicio de la versión.
TimeFraction (D1, D2, D, Dx)
TimeFraction (D1; D2; D; Dx)
Devuelve la parte del mes actual que se produce entre la fecha inicial (
D1
) y la fecha final (
D2
). Si una fecha opcional (
D
), utiliza el mes en el que
D
se produce, en lugar del mes actual. Si el parámetro opcional de número fijo de días (
Dx
), sustituya el periodo en
D
con el valor numérico.
Las instancias configuradas sin un calendario personalizado pueden usar
MonthFraction
en lugar de
TimeFraction
.
ToDate (Y, M, D)
ToDate (Y; M; D)
Devuelve la fecha especificada por el año especificado (
Y
), mes (
M
) y día (
D
). Si
D
se omite,
15
se utiliza. Este valor se puede utilizar como argumento para otras funciones que toman una fecha.
VersionMonth (D)
Devuelve un número que representa el mes de la versión en la que la fecha (
D
) se produce (primer mes =
0
). Este número puede ser negativo si la fecha (
D
) es anterior al inicio de la versión.
Puede devolver un error con los calendarios personalizados. Utilizar
this.Version.PositionOf(D.Month).
Version.PositionOf (timeperiod)
Devuelve el orden relativo del periodo proporcionado dentro del marco temporal completo de la versión. El primer periodo de una versión comienza con 1 y el número de orden puede ser negativo si el periodo se produce antes del inicio de la versión. Esta función también funciona con un periodo que se prolongue más allá del fin de la versión.
VersionYear (D)
Devuelve un número que representa el año de la versión en la que la fecha (
D
) se produce (primer año =
0
). Este número puede ser negativo si la fecha (
D
) es anterior al inicio de la versión.
Puede devolver un error con los calendarios personalizados. Utilizar
this.Version.PositionOf(D.Year)
.
Year (D)
Devuelve el año en el que date (
D
) se produce independientemente de si se utiliza o no un calendario personalizado.

Funciones de cadena

Sintaxis
Descripción
Concat (text1, text2, ...)
Concat (text1; text2; ...)
Devuelve una cadena concatenada al unir dos o más cadenas de texto.
Ejemplo:
Concat ("hello", "world")
devuelve "
helloworld"
.
Length (text)
Devuelve el número de caracteres de una cadena de texto.
Ejemplo:
Length ("Now, is the winter of our discontent. Made glorious summer by this son or York.")
devuelve
79
.
Search (source_text, search_text)
Search (source_text; search_text)
Devuelve la posición inicial de
search_text
en
source_text
. Devoluciones
0
si
search_text
no se ha encontrado. La función de búsqueda no distingue entre mayúsculas y minúsculas.
Ejemplos:
Search ("Now is the winter of our discontent.", "Winter")
devuelve
12
.
Search ("Now is the winter of our discontent.", "Summer")
devuelve
0.
Substring (source_text, start_position, length)
Substring (source_text; start_position; length)
Devuelve una cadena de texto que contiene los caracteres que se encuentran en
source_text
a partir de
start_position
(donde posición
1
es el primer carácter de la cadena de texto) y se ejecuta durante
length
(o hasta el final de la cadena de texto, lo que se encuentre primero).
Selección de
start_position
de
0
o menos se trata como si fuera una posición
1
. Seleccionar una longitud de
0
o menos se trata como una longitud de
0
y devuelve una cadena vacía. Selección de
start_position
que es posterior al final de
source_text
devuelve una cadena vacía.
ToNumber (text)
Convierte una cadena de texto que representa un número a su valor numérico. Convertirá la parte inicial de la cadena hasta que se encuentre un carácter no numérico. Si el primer carácter no es numérico, se produce un error.
Ejemplos:
ToNumber ("7")
devuelve
7
.
ToNumber ("2017-12-31")
devuelve 2017 (un número).
ToNumber ("Sample")
devuelve un error.

Ejemplos

A continuación se presenta una fórmula de Headcount de una hoja modelada de Personal. Es un buen ejemplo para ver cómo se pueden combinar funciones. Esta fórmula devuelve un resultado 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