Manual de funciones
Operadores
El operador condicional IF devuelve un valor si la condición especificada resulta en el valor VERDADERO, y otro valor si la condición resulta en el valor FALSO.
F.IF(bool <expresión1>, float <expresión2>, float <expresión3>)
- expresión1 - expresión lógica
- expresión2 - valor, si la condición especificada resulta en el valor VERDADERO
- expresión3 - valor, si la condición resulta en el valor FALSO
F.IF (A > 0, B, 0)
Se devuelve el valor B, si A es mayor que 0, o 0, si A es menor o igual que 0
F.IF (((A /B) > 1.5) and ((A/B) < 2.3), C, 0)
Se devuelve el valor C, si A/B es mayor que 1.5 y menor que 2.3, o 0, si A/B es menor o igual que 1.5 y mayor o igual que 2.3
El operador lógico AND ejecuta la condición solo en el caso de que como resultado del cálculo de todos los argumentos se obtenga el valor VERDADERO. Si al menos una condición es FALSA, entonces toda la condición es FALSA. Habitualmente la función AND se utiliza para ampliar las posibilidades de otras funciones que realizan verificación lógica.
(<expresión1>) AND (<expresión2>)
- expresión1 - primera condición verificada, cuyo cálculo da el valor VERDADERO o FALSO.
- expresión2 - segunda condición verificada, cuyo cálculo da el valor VERDADERO o FALSO.
F.IF (A > 0 AND B=5, B, 0)
Se devuelve el valor B, si A>0 y B=5, de lo contrario 0
El operador condicional OR permite verificar alguna condición y, dependiendo de los resultados de la verificación, ejecutar una u otra acción. Devuelve el valor VERDADERO, si al menos uno de los argumentos tiene el valor VERDADERO, o FALSO, si todos los argumentos tienen el valor FALSO. Habitualmente la función OR se utiliza para ampliar las posibilidades de otras funciones que realizan verificación lógica.
(<expresión1>) OR (<expresión2>)
El operador LIKE es aplicable solo a valores de cadena del catálogo de referencia, con los cuales se utiliza para encontrar subcadenas. Se usa para aplicar filtros en el catálogo de referencia al buscar los valores necesarios. No se admite en campos calculados del Indicador base (se usa "=")
<'Código catálogo de referencia'> LIKE <'Plantilla'>
- Código catálogo de referencia – argumento código del catálogo de referencia
- Plantilla – argumento subcadena/parte de palabra/frase
F.SUM (A, 20110101, 20111231, rep.everymonth, 'suc' LIKE 'Московский*')
Búsqueda de valores en el catálogo de referencia "Sucursales" (código del catálogo de referencia "suc") que comienzan con la palabra "Московский"
El operador NOT LIKE, inverso al operador LIKE, es aplicable solo a valores de cadena del catálogo de referencia, con los cuales se utiliza para encontrar subcadenas. Se usa para aplicar filtros en el catálogo de referencia al buscar los valores necesarios. No se admite en campos calculados del Indicador base (se usa "<>" o "!=")
<'Código catálogo de referencia'> NOT LIKE <'Plantilla'>
- Código catálogo de referencia – argumento código del catálogo de referencia
- Plantilla – argumento subcadena/parte de palabra/frase
F.SUM (A, 20110101, 20111231, rep.everymonth, 'suc' NOT LIKE 'Московский*')
Búsqueda de valores en el catálogo de referencia "Sucursales" (código del catálogo de referencia "suc") que no contengan en el nombre la palabra "Московский"
El operador NOT niega la condición u operador.
NOT (<Condición_Operador>)
- Condición_Operador – argumento para condición u operador que requieren negación
F.SUM (A, 20110101, 20111231, rep.everymonth, 'suc' NOT LIKE 'Московский*')
Búsqueda de todos los valores excepto "Московский*" en el catálogo de referencia "Sucursales" (código del catálogo de referencia "suc")
NOT (A=8)
A no es igual a 8
Funciones matemáticas
La función F.PI devuelve el número Pi - 3.1415...
F.PI
F.PI
Para un indicador cuya unidad de medida tiene precisión de dos dígitos después de la coma, devuelve el valor 3.14
función F.SIN devuelve el seno del ángulo
F.SIN(float <ángulo>)
- ángulo – indicador o expresión, para el cálculo del seno
F.SIN(30)
Devuelve el valor 0,5
La función F.COS devuelve el coseno del ángulo
F.COS (float <ángulo>)
- ángulo – indicador o expresión, para el cálculo del coseno
F.COS(360)
Devuelve el valor 1
La función F.TG devuelve la tangente del ángulo
F.TG (float <ángulo>)
- ángulo – indicador o expresión, para el cálculo de la tangente
F. TG (45)
Devuelve el valor 1
La función F.CTG devuelve la cotangente del ángulo
F.CTG (float <ángulo>)
- ángulo – indicador o expresión, para el cálculo de la cotangente
F.CTG (45)
Devuelve el valor 1
La función F.ARCSIN devuelve el arcoseno del ángulo
F.ARCSIN (float <ángulo>)
- ángulo – indicador o expresión, para el cálculo del arcoseno
F.ARCSIN (1)
Devuelve el valor 90°
La función F.ARCCOS devuelve el arcocoseno del ángulo
F.ARCCOS (float <ángulo>)
- ángulo – indicador o expresión, para el cálculo del arcocoseno
F.ARCCOS (1)
Devuelve el valor 0.
La función F.ARCTG devuelve la arcotangente del ángulo
F.ARCTG (1)
Devuelve el valor 45°
La función F.ARCCTG devuelve la arcocotangente del ángulo
F.ARCCTG (float <ángulo>)
- ángulo – indicador o expresión, para el cálculo de la arcocotangente
F.ARCCTG (1)
Devuelve el valor 45°
La función F.EXP devuelve la base del logaritmo natural (e = 2.7182818284590452...) elevada a la potencia especificada
F.EXP(float <expresión>)
expresión – indicador o expresión, para el cálculo de la exponencial
F.EXP (0)
Devuelve el valor 1
La función F.LG devuelve el logaritmo base 10 del número especificado
F.LG (float <expresión>)
- expresión – indicador o expresión, para el cálculo
F.LG (10)
Devuelve el valor 1
La función F.LN devuelve el logaritmo natural del número especificado
F.LN (float <expresión>)
expresión – indicador o expresión, para el cálculo
F.LN (1)
Devuelve el valor 0
La función F.ABC devuelve el módulo (valor absoluto) del número, es decir, el número sin signo.
F.ABC(float <expresión>)
- expresión - número real cuyo valor absoluto se necesita encontrar
F.ABC (3)
Devuelve el valor 3
F.ABC (-2)
Devuelve el valor 2
La función F.MAX devuelve el valor más grande del conjunto de valores.
F.MAX(float <expresión1>,..., float <expresiónN>)
- expresión1 , ... , expresiónN - números reales, el máximo de los cuales se necesita encontrar
Función F.MAXTAB para calcular el valor máximo del indicador, desglosado por catálogo de referencia
F.MAXTAB (<indicador>, '<código_catálogo>')
- indicador - variable del indicador, cuyo valor máximo se necesita encontrar
- código_catálogo - código del catálogo de referencia por el cual se produce el desglose al calcular el valor máximo del indicador
F.MAXTAB (A, 'Empleado')
El indicador correspondiente a la variable A se desglosa por el catálogo de referencia "Empleado", y de la lista resultante <Valor del catálogo>=<valor de indicador> se devuelve el valor máximo del indicador.
La función F.MAXIMUM calcula el valor máximo durante un período en un paso de período especificado o el valor máximo en un array.
Al calcular el valor durante un período, la función primero suma los datos en el paso de período indicado y luego encuentra el extremo en el rango de fechas establecidas.
F.MAXIMUM(<indicador>, int <fecha_inicio>, int <fecha_fin>, REP.EVERY*, {<filtro>}, {bool <expresión>})
F.MAXIMUM ([<expresión>{,<expresión>}])
- indicador – código de variable
- fecha_inicio - fecha desde la cual se realiza el cálculo
- fecha_fin - fecha hasta la cual se realiza el cálculo
- REP.EVERY* - constante del paso de período correspondiente
- filtro - filtro opcional sobre diccionarios de datos
- expresión - cualquier expresión sintácticamente correcta cuyo resultado sea un número
F.MAXIMUM(A, 20140101, 20141231, rep.everymonth)
Devuelve el valor mensual máximo del año 2014.
F.MAXIMUM(A, 20140101, 20141231, rep.everymonth, 'Segmento' LIKE 'Pequeño*')
Devuelve el valor mensual máximo del indicador seleccionado para el año 2014 con valor "Pequeño" según el diccionario "Segmento".
F.MAXIMUM([2, 4])
Devuelve el valor máximo en el array - 4
La función F.MIN devuelve el valor menor de un conjunto de valores.
F.MIN(float <expresión1>, float <expresión>)
- expresión1, ... , expresiónN - números reales, de los cuales es necesario encontrar el mínimo
F.MIN (2, 3, 5)
Devuelve el valor 2
La función F.MINTAB calcula el valor mínimo de un indicador, desglosado por catálogo de referencia.
F.MINTAB (<indicador>, '<código_catálogo>')
- indicador - variable del indicador cuyo valor mínimo es necesario encontrar
- código_catálogo - código del catálogo de referencia por el cual se realiza el desglose al calcular el valor mínimo del indicador
F.MINTAB (A, 'Empleado')
El indicador correspondiente a la variable A se desglosa por el catálogo de referencia "Empleado", y de la lista resultante <Valor del catálogo>=<valor del indicador> se devuelve el valor mínimo del indicador.
La función F.MINIMUM calcula el valor mínimo durante un período en un paso de período especificado o el valor mínimo en un array.
Al calcular el valor durante un período, la función primero suma los datos en el paso de período indicado y luego encuentra el extremo en el rango de fechas establecidas.
F.MINIMUM(<indicador>, int <fecha_inicio>, int <fecha_fin>, REP.EVERY*, {<filtro>},{bool <expresión>})
F.MINIMUM ([<expresión>{, <expresión>}])
- indicador – código de variable
- fecha_inicio - fecha desde la cual se realiza el cálculo
- fecha_fin - fecha hasta la cual se realiza el cálculo
- REP.EVERY* - constante del paso de período correspondiente
- filtro - filtro opcional sobre diccionarios de datos
- expresión - cualquier expresión sintácticamente correcta cuyo resultado sea un número
F.MINIMUM(A, 20140101, 20141231, rep.everymonth)
Devuelve el valor mensual mínimo del año 2014.
F.MINIMUM(A, 20140101, 20141231, rep.everymonth, 'Segmento' LIKE 'Pequeño*')
Devuelve el valor mensual mínimo del indicador seleccionado para el año 2014 con valor "Pequeño" según el diccionario "Segmento".
F.MINIMUM([2, 4])
Devuelve el valor mínimo en el array - 2
La función F.SQRT calcula la raíz cuadrada de la expresión o valor del indicador especificado.
F.SQRT(float <expresión>)
- expresión – código de variable o expresión
F.SQRT(A)
Devuelve la raíz cuadrada del valor del indicador.
F.SQRT(64)
Devuelve el valor 8.
La función F.ROUND redondea el valor de la parte decimal con la precisión especificada. Si la precisión es un número negativo, se redondea la cantidad de dígitos de la parte entera.
F.ROUND(float <expresión>, int <precisión>)
- expresión – código de variable o expresión
- precisión – cantidad de dígitos de redondeo (si la precisión es un número negativo, se redondea la cantidad de dígitos de la parte entera)
F.ROUND(748.58, -3)
Возвращает значение 1000
F.ROUND(123.9994, 3)
Devuelve el valor 123
F.ROUND(123.9995, 3)
Devuelve el valor 124
F.ROUND(748.58, -1)
Devuelve el valor 750.00
F.ROUND(748.58, -3)
Devuelve el valor 1000
La función F.FLOOR redondea el número hacia abajo al múltiplo más cercano de la precisión especificada.
F.FLOOR(float <expresión>, float <precisión>)
- expresión – código de variable o expresión
- precisión – cantidad de dígitos múltiplo del cual se realiza el redondeo
F.FLOOR(2.5, 1)
Devuelve el valor redondeado hacia abajo al número más cercano múltiplo de 1: 2
F.FLOOR(-2.5, -2)
Devuelve el valor redondeado hacia abajo al número más cercano múltiplo de -2: -2
F.FLOOR(-2.5, 2)
Devuelve error, ya que los números -2.5 y 2 tienen signos diferentes
F.FLOOR(1.5, 0.1)
Devuelve el valor redondeado hacia abajo al número más cercano múltiplo de 0.1: 1.5
F.FLOOR(0.234, 0.01)
Devuelve el valor redondeado hacia abajo al número más cercano múltiplo de 0.01: 0.23.
La función F.ROUNDDOWN redondea el valor hacia el valor más cercano menor en módulo.
F.ROUNDDOWN(float <expresión>, int <precisión>)
- expresión – código de variable o expresión
- precisión – cantidad de dígitos después del redondeo
F.ROUNDDOWN(3.14159, 3)
Devuelve el valor redondeado hacia abajo hasta tres posiciones decimales: 3.141
F.ROUNDDOWN(76.9, 0)
Devuelve el valor redondeado hacia abajo al entero más cercano: 76
F.ROUNDDOWN(-3.14159, 1)
Devuelve el valor redondeado hacia abajo hasta una posición decimal: -3.1
F.ROUNDDOWN(31415.92654, -2)
Devuelve el valor redondeado hacia abajo hasta dos posiciones decimales a la izquierda de la coma: 31400
La función F.ROUNDUP redondea el valor hacia el valor más cercano mayor en módulo.
F.ROUNDUP(float <expresión>, int <precisión>)
- expresión – código de variable o expresión
- precisión – cantidad de dígitos hasta los cuales se redondea el valor
F.ROUNDUP(3.14159, 3)
Devuelve el valor redondeado hacia arriba hasta tres posiciones decimales: 3.142
F.ROUNDUP(76.1, 0)
Devuelve el valor redondeado hacia arriba al entero más cercano: 77
F.ROUNDUP(-3.14159, 1)
Devuelve el valor redondeado hacia arriba hasta una posición decimal: -3.2
F.ROUNDUP(31415.92654, -2)
Devuelve el valor redondeado hacia arriba hasta dos posiciones decimales a la izquierda de la coma: 31500
La función F.NUMFROMSEP devuelve el número después del separador decimal de un número.
F.NUMFROMSEP (float <expresión>)
- expresión – cualquier expresión sintácticamente correcta cuyo resultado sea un valor real
F.NUMFROMSEP (123.4567)
Devuelve el valor 4567
La función F.COUNTFROMSEP devuelve la cantidad de dígitos significativos después del separador decimal de un número.
F.COUNTFROMSEP (float <expresión>)
- expresión – cualquier expresión sintácticamente correcta cuyo resultado sea un valor real
F.COUNTFROMSEP(123.1567)
Devuelve el valor 4
Funciones para trabajo con fechas
La función F.TODAY devuelve la fecha actual (o una fecha con desplazamiento desde la actual).
F.TODAY({int <desplazamiento>, {REP.BYCURRENT | REP.BYSTART | REP.BYEND}})
- desplazamiento - cantidad de pasos del período para desplazamiento en el paso del período del informe
- parámetro opcional, que devuelve el valor de la fecha actual BYCURRENT | REP.BYSTART | REP.BYEND (por defecto se usa REP.BYEND). Si no se especifica el modo de fecha actual, entonces la función toma el valor REP.BYCURRENT
F.TODAY
Se devuelve la fecha actual - 20150305 00:00:00.000
F.TODAY (-1)
Si el paso del informe es mes, entonces se devuelve la fecha actual menos 1 mes
Si el paso del informe es trimestre, entonces se devuelve la fecha actual menos 1 trimestre.
F.TODAY (+2)
Si el paso del informe es mes, entonces se devuelve la fecha actual más 2 meses
F.TODAY (0, rep.bystart)
Con paso del informe mes al calcular el indicador para noviembre devuelve el inicio de noviembre – 20141101 00:00:00.000
F.IF(F.TODAY = 20141225, 'Navidad Católica', '')
En esta función se determina la fecha actual y, si es igual al 25 de diciembre de 2014, entonces se devuelve el valor "Navidad Católica", de lo contrario - " "
Функция F.DATEADD возвращает дату со смещением
F.DATEADD(int <fecha_inicio>, int <desplazamiento>, REP.EVERY*, {REP.BYSTART | REP.BYEND| REP.BYREPORT})
- fecha_inicio - fecha desde la cual se realiza el cálculo
- desplazamiento - cantidad de pasos de período para el desplazamiento
- REP.EVERY* - constante del paso de período correspondiente
- parámetro opcional que devuelve el valor de fecha al inicio o final del período: REP.BYSTART | REP.BYEND| REP.BYREPORT (por defecto se usa REP.BYEND)
F.DATEADD (F.REPORTDATE (rep.byend), -11, rep.everyquarter, rep.bystart), F.DATEADD (F.REPORTDATE (rep.byend), -4, rep.everyquarter, rep.byend)
En esta función se define el período de cálculo.
La fecha de inicio del período y la fecha de fin del período de cálculo están establecidas con desplazamiento desde la fecha final del período de reporte del indicador. Para un indicador con paso "Trimestre" y período de reporte del I trimestre 2014 al VI trimestre 2014, el período de cálculo serán 2 años - I trimestre 2012 - VI trimestre 2013.
F.AVG (A, 4, F.DATEADD (F.REPORTDATE (rep.byend), -11, rep.everyquarter, rep.bystart), F.DATEADD (F.REPORTDATE (rep.byend), -4, rep.everyquarter, rep.byend), rep.everyquarter, 4)
En esta función se define el valor promedio trimestral de la variable "A".
Para calcular el período de cálculo del valor promedio se utilizó la función F.DATEADD, examinada anteriormente. El valor promedio, calculado para los años 2012 - 2013, se mostrará en el año 2014.
La función F.REPORTDATE devuelve la fecha actual de inicio del reporte, la fecha actual de fin del reporte o la fecha del paso de período actual.
F.REPORTDATE({REP.BYSTART | REP.BYEND | REP.BYREPORT})
- REP.BYSTART | REP.BYEND | REP.BYREPORT - parámetro que determina el valor de fecha devuelto - al inicio del período de reporte, final del período de reporte o la fecha del paso de período actual respectivamente.
F.SUM (A , F.REPORTDATE (rep.bystart) , F.TODAY(0, rep.byend) , rep.everymonth )
La suma para el período de enero a diciembre de 2014 se calculará mensualmente con total acumulado hasta la columna actual del reporte (para enero devolverá el valor de enero, para febrero - (enero+febrero), para marzo - (enero+febrero+marzo) y así sucesivamente)
F.REPORTDATE (rep.bystart)
Devuelve la fecha de inicio del reporte
La función F.DATE devuelve una fecha en formato (día, mes, año) con posibilidad de calcular uno de estos parámetros mediante otras funciones.
F.DATE (int <día>, int <mes>, int <año>)
F.DATE (1,1,2015)
Devuelve el valor 20150101, es decir, 01.01.2015
F.SUM(A, F.DATE (01, 01, F.YEAR (F.REPORTDATE(rep.byreport))), F.TODAY (0, rep.byend), rep.everyquarter )
Con ayuda de la función F.DATE al calcular la suma se establece la fecha de inicio de la sumatoria - 01 de enero de cada año, donde el año se calcula mediante las funciones F.REPORTDATE.
La función F.PERIOD devuelve la diferencia entre dos fechas en un paso de período especificado.
F.PERIOD(int <fecha_inicio>, int <fecha_fin>, REP.EVERY*)
- fecha_inicio - fecha desde la cual se realiza el cálculo
- fecha_fin - fecha hasta la cual se realiza el cálculo
- REP.EVERY* - constante del paso de período correspondiente
F.PERIOD(20150101, 20150201, rep.everyday)
Devuelve 31 días
F.PERIOD(20150101, 20150201, rep.everyhour)
Devuelve 744 horas
F.PERIOD(20140101, 20150101, rep.everymonth)
Devuelve 12 meses
La función F.PERIODOF devuelve la diferencia entre el inicio y el final del paso de período de reporte actual que se está calculando
F.PERIODOF(REP.EVERY*)
- REP.EVERY* - constante del paso de período correspondiente
F.PERIODOF(rep.everyday)
Al calcular el indicador para el período de enero a diciembre de 2014 con paso "Mes" devolverá secuencialmente: 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
La misma función en paso de período "Trimestre" devolverá: 90, 91, 92, 92
Es análoga a la escritura de combinaciones de funciones F.PERIOD(F.TODAY (0, rep.bystart), F.TODAY (0, rep.byend), rep.everyday)+1
La función F.DAY calcula el día del parámetro de fecha.
F.DAY(int <fecha>, REP.EVERY*)
- fecha - fecha de la cual se realiza el cálculo del día
- REP.EVERY* - constante del paso de período correspondiente
F.DAY(20151101)
Devuelve el valor 1
La función F.MONTH calcula el mes del parámetro de fecha.
F.MONTH(int <fecha>)
- fecha - fecha de la cual se realiza el cálculo del mes
F.MONTH(20151101)
Devuelve el valor 11
F.QUARTER(int <fecha>)
- fecha - fecha de la cual se realiza el cálculo del trimestre
F.QUARTER(20151101)
Devuelve el valor 4
La función F.YEAR calcula el año del parámetro de fecha.
F.YEAR(int <fecha>)
- fecha - fecha de la cual se realiza el cálculo del año
F.YEAR(20151101)
Devuelve el valor 2015
La función F.GETDATE devuelve la fecha y hora actual.
F.GETDATE()
F.GETDATE
Devuelve la fecha y hora actual
La función F.DATENIL devuelve el valor mínimo (vacío) de fecha.
F.DATENIL()
F.DATENIL
Devuelve 18991230 - el valor mínimo de fecha 30.12.1899
La función F.DATEONLY devuelve solo la fecha del valor especificado (sin la hora)
F.DATEONLY(int <fecha>)
- fecha - fecha con hora de la cual se realiza el cálculo de la fecha
F.DATEONLY( F.GETDATE )
Devuelve el valor de fecha actual sin la hora
La función F.SECOND devuelve el valor de los segundos de una fecha.
F.SECOND(int <fecha>)
- fecha - fecha con hora de la cual se realiza el cálculo
F.SECOND( F.GETDATE() )
Devuelve los segundos de la fecha y hora actual
La función F.MINUTE devuelve el valor de los minutos de una fecha.
F.MINUTE ( F.GETDATE() )
Devuelve los minutos de la fecha y hora actual
La función F.HOUR devuelve el valor de la hora de una fecha.
F.HOUR(int <fecha>)
- fecha - fecha con hora de la cual se realiza el cálculo
F.HOUR( F.GETDATE() )
Devuelve las horas de la fecha y hora actual
La función F.DATEDIFF devuelve la diferencia de fechas en un paso de período especificado. El resultado es un número entero.
F.DATEDIFF(REP.EVERY*, int <fecha_inicio>, int <fecha_fin>)
- REP.EVERY* - constante del paso de período correspondiente
- fecha_inicio - fecha desde la cual se realiza el cálculo
- fecha_fin - fecha hasta la cual se realiza el cálculo
F.DATEDIFF(rep.everymonth, 20100101, 20101231)
Devuelve 11 meses
Funciones para valores de cadena
La función F.DATESTR devuelve la representación en cadena de la fecha
F.DATESTR(int <fecha>, REP.EVERY*)
- fecha – fecha que se necesita convertir en cadena
- REP.EVERY* - constante del paso del período correspondiente (por defecto se usa el paso del período del informe).
F.DATESTR(20141231, rep.everysecond)
Devuelve '2014.12.31 00:00:00'
F.DATESTR(20141231, rep.everyminute)
Devuelve '2014.12.31 00:00'
F.DATESTR(20141231, rep.everyhour)
Devuelve '2014.12.31 00:00'
F.DATESTR(20141231, rep.everyday)
Devuelve '2014.12.31'
F.DATESTR(20141231, rep.everyweek)
Devuelve '2014 53 sem'
F.DATESTR(20141231, rep.everymonth)
Devuelve '2014.12'
F.DATESTR(20111231, rep.everyquarter) -- '2011 04 trim'
Devuelve '2014.12'
F.DATESTR(20111231, rep.everyhalf)
Devuelve '2011 02 sem'
F.DATESTR(20111231, rep.everyyear)
Devuelve '2011'
Ejemplo de aplicación de la función
Consideremos el indicador A, en el cual hay 12 valores por catálogo de referencia "Período" para el año 2011 desde "2011.01; 2011 01 trim" hasta "2011.12; 2011 04 trim".
Supongamos que los datos de este indicador se introdujeron en abril y están marcados por el catálogo de referencia "Período" como datos de febrero.
Entonces, para reflejar el ingreso por indicador del período anterior, escribiremos la fórmula para el indicador calculado:
F.SUM (A, F.REPORTDATE (rep.bystart), F.REPORTDATE (rep.byend), rep.byreport, 'Período' like ('' + F.DATESTR (F.DATEADD (F.TODAY(0, rep.byend), -2, F.REPORTSTEP, rep.byend) , F.REPORTSTEP) + ''))
Si el gráfico se construye por el indicador calculado para el año 2011 con paso del período "Mes", entonces la aplicación de la fórmula para el cálculo de cada paso se verá así:
F.SUM(A, 20110101, 20111231, rep.everymonth, 'Período' like '2010.11'))
Devuelve 2011.01.01 - 2011.01.31
F.TODAY (0, rep.ByEnd)
Devuelve 2011.02.28
F.DATEADD (2011.01.31, -2, rep.everymonth, rep.byend)
Resta 2 meses y alinea la fecha al final del mes - 2010.12.31
F.DATESTR(2010.11.30, rep.everymonth)
Devuelve '2010.12'
F.SUM (A, 20110101, 20111231, rep.everymonth, 'Período' like '2011.01'))
Devuelve 2011.03.01 - 2011.03.31
F.SUM (A, 20110101, 20111231, rep.everymonth, 'Período' like '2011.10'))
Devuelve 2011.12.01 - 2011.12.31
Al agregar el mismo indicador hasta el paso del período "Trimestre", la aplicación de la fórmula se verá así:
F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Período' like '2010 03 trim')
Devuelve 2011.01.01 - 2011.03.31
F.TODAY (0, rep.byend)
Devuelve 2011.03.31
F.DATEADD(2011.03.31, -2, rep.everyquarter, rep.byend)
Resta 2 trimestres y alinea al final del trimestre - 2010.09.30
F.DATESTR(2010.09.30, rep.everyquarter)
Devuelve '2010 03 trim'
F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Período' like '2010 04 trim')
Devuelve 2011.04.01 - 2011.06.30
F.TODAY (0, rep.byend)
Devuelve 2011.06.30
F.DATEADD (2011.06.30, -2, rep.everyquarter, rep.byend)
Resta 2 trimestres y alinea la fecha al final del trimestre -- 2010.12.31
F.DATESTR(2010.12.31, rep.everyquarter)
Devuelve '2010 04 trim'
F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Período' like '2011 01 trim'))
Devuelve 2012.01.01 - 2011.03.31
F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Período' like '2011 02 trim'))
Devuelve 2012.04.01 - 2011.06.30
F.STRINDEXOF(string <expresión1>, string <expresión2>)
- Expresión1 – cadena buscada
- Expresión2 – cadena en la que se realiza la búsqueda
No se pueden usar los siguientes símbolos: %, _ , [ ] , ^
F.STRINDEXOF('(', '10 (100%)')
Devulve el valor 4
La función F.SUBSTR devuelve una cadena contenida en la cadena (parámetro 1) desde una posición dada (parámetro 2) hasta una longitud dada (parámetro 3)
F.SUBSTR(string <expresión1>, int <expresión2>, int <expresión3>)
- expresión1 - cadena de la cual se extraerá la subcadena
- expresión2 - posición desde la cual se realiza la extracción de la cadena
- expresión3 - longitud de la cadena que se desea obtener
No se pueden usar los siguientes símbolos: %, _ , [ ] , ^
F.SUBSTR('10 (100%)', 5, 3)
Devuelve el valor 100
F.SUBSTR(Pushkin Aleksandr Sergeevich'; 0 ; f.strindexof( ' ' ; Pushkin Aleksandr Sergeevich))
Devuelve el valor 'Pushkin'
La función F.STRUBSTR devuelve la cadena (parámetro 1) hasta la cadena especificada (parámetro 2).
Esta función se utiliza solo en el Asistente de configuración de escenarios de importación.
F.STRUBSTR (string <expresión1>, string <expresión2>)
- expresión1 - cadena hasta la cual se realiza la extracción
- expresión2 - cadena de la cual se realiza la extracción
No se pueden usar los siguientes símbolos: %, _ , [ ] , ^
F.STRUBSTR ( ',' , 'Tumén, calle Lenina, 100' )
Devuelve el valor Tumén
La función F.STRFMTTMPL complementa con símbolos la cadena (parámetro 2) hasta una cadena en el formato especificado (parámetro 1).
Esta función se utiliza solo en el Asistente de configuración de escenarios de importación.
F.STRFMTTMPL (string <expresión1>, string <expresión2>)
- expresión1 - cadena en el formato especificado
- expresión2 - cadena para convertir al formato especificado
No se pueden usar los siguientes símbolos: %, _ , [ ] , ^
F.STRFMTTMPL( '00000' , '123' )
Devuelve el valor '00123'
La función F.SUBSTRBETW devuelve una cadena contenida en la cadena (parámetro 1) entre la cadena (parámetro 2) y la cadena (parámetro 3).
Esta función se utiliza solo en el Asistente de configuración de escenarios de importación.
F.SUBSTRBETW(string <expresión1>, string <expresión2>, string <expresión3>)
- expresión1 - cadena de la cual se realiza la extracción
- expresión2 - cadena hasta la cual se realiza la extracción
- expresión3 - cadena desde la cual se realiza la extracción
No se pueden usar los siguientes símbolos: %, _ , [ ] , ^
F.SUBSTRBETW (',', ',', 'Tumén, calle Lenina, 100, int. 99')
Devuelve el valor 'calle Lenina, 100'
F.SUBSTRBETW ('ATM', ',', 'cajero automático ATM2345, sucursal №1')
Devuelve el valor '2345'
Funciones para cálculo de valores de indicadores
La función F.AVG calcula el valor promedio de la variable durante el período en el paso del período (suma durante el período, dividida por la cantidad de valores en ese período)
F.AVG(<indicador>)
o
F.AVG(<indicador>, int <fecha inicio>, int<fecha fin>, REP.EVERY*)
- indicador – código de variable o expresión
- fecha inicio y fecha fin - cualquier expresión sintácticamente correcta que devuelva la fecha de inicio y fin del período para el cual se realiza el cálculo.
- REP.EVERY*- constante del paso del período correspondiente (por defecto se usa el paso del período del informe)
F.AVG(A) o F.AVG( A , F.ToDay(0, rep.bystart ), F.ToDay(0, rep.byend ), F.ReportStep( A ))
Devuelve el valor promedio del período actual (suma del período actual, dividida por la cantidad de valores de ese período).
Equivale a F.SUM(A) / F.Count(A)
La función F.AVGPERIOD calcula el valor promedio de una variable durante un período (suma del período actual desde el período inicial, dividida por la cantidad de períodos).
F.AVGPERIOD(<indicador>, {int <desplazamiento>,)
o
F.AVGPERIOD(<indicador>, {int <desplazamiento>, {int <fecha_inicio>, int<fecha_fin>, REP.EVERY*, {int <desplazamiento_fechas_período>}, {<filtro>, {bool <expresión>} } }})
- indicador – código de variable o expresión
- desplazamiento - desplazamiento de variable por período para el cálculo
- fecha_inicio - fecha desde la cual se realiza el cálculo (por defecto se usa el período del reporte)
- fecha_fin - fecha hasta la cual se realiza el cálculo (por defecto se usa el período del reporte)
- REP.EVERY* - constante del paso de período correspondiente (por defecto se usa el paso de período del reporte)
- desplazamiento_fechas_período - cantidad de pasos de período para desplazar los datos del cálculo del valor promedio en el tiempo (por defecto el valor es cero)
- filtro - filtro opcional sobre catálogos de referencia
F.AVGPERIOD(A) o F.AVGPERIOD(A, 1)
Devuelve la suma del período actual desde el período inicial, dividida por la cantidad de períodos.
F.AVGPERIOD(A, 2)
Devuelve la suma y número de período, que se incrementan cada segundo período del reporte, es decir, si se establece un período anual con paso de período en el reporte "Mes", entonces:
- para el primer mes obtendremos suma del Primer mes/1
- para el segundo mes obtendremos suma del Segundo mes/1
- para el tercer mes obtendremos (suma del Primer + Tercer mes)/2
- para el cuarto mes obtendremos (suma del Segundo + Cuarto mes)/2
- para el quinto mes obtendremos (suma del Primer + Tercer + Quinto mes)/3
- para el sexto mes obtendremos (suma del Segundo + Cuarto + Sexto mes)/3
y así sucesivamente.
F.AVGPERIOD(A,12)
Con parámetros del reporte con paso de período "Mes" durante un período de 2 años, el valor promedio se calculará para cada mes anualmente, es decir:
- para el primer mes del primer año obtendremos Enero2010/1
- para el primer mes del segundo año obtendremos (Enero2010+Enero2011)/2
- para el segundo mes del primer año obtendremos Febrero2010/1
- para el segundo mes del segundo año obtendremos (Febrero2010+Febrero2011)/2
F.AVGPERIOD(A, 12, 20130101, 20141231, rep.everymonth, 12)
En esta función se define el valor promedio mensual de la variable "A" considerando los valores de los 2 años especificados en la función. El resultado promedio obtenido para los años 13 y 14 se mostrará en el año 15. Para 2014 el valor promedio será igual al valor de 2013.
F.AVGPERIOD(A, 0, F.TODAY(0, rep.bystart), F.TODAY (0, rep.byend), rep.everymonth )
En esta función se define el valor promedio mensual de la variable "A" para el período actual.
Para calcular el período de cálculo del valor promedio se utiliza la función F.TODAY, examinada anteriormente.
Al construir el indicador con paso "Trimestre" se calculará el valor promedio mensual del indicador para cada trimestre del período del reporte.
Al construir el indicador con paso "Semestre" se calculará el valor promedio mensual del indicador para cada semestre del período del reporte.
y así sucesivamente.
F.AVGPERIOD(A, 0, F.TODAY (0, rep.bystart), F.TODAY (0, rep.byend), rep.everyday )
En esta función se define el valor promedio para cada mes de la variable "A" durante el período del reporte con paso mes.
F.AVGPERIOD(A, 4, F.DATE (1, 1, F.YEAR (F.REPORTDATE (rep.byend))-3), F.DATE (31, 12, F.YEAR (F.REPORTDATE (rep.byend)) -1), rep.everyquarter, 4 )
En esta función, para el indicador con paso "Trimestre" y período del 1er trimestre 2015 al 4to trimestre 2015, calcula el valor promedio trimestral por el trimestre correspondiente durante los tres años precedentes, donde:
A - variable
4 - desplazamiento del paso de suma para el cálculo del valor promedio, es decir, se sumarán no todos los valores del indicador A, sino según el desplazamiento especificado (1er trimestre 2012 + 1er trimestre 2013 + 1er trimestre 2014). El valor obtenido en el cálculo se dividirá por la cantidad de pasos de suma (en este caso cantidad de primeros trimestres = 3).
La función F.DATE (1, 1, F.YEAR (F.REPORTDATE (rep.byend)) -3) - define la fecha de inicio para el cálculo del valor promedio. El día y mes están establecidos (1 de enero), y el año lo calculamos basándonos en el año de la fecha de fin del reporte y el desplazamiento especificado. En este caso el desplazamiento "-3" = 2015 - 3 = 2012.
De manera análoga calculamos la fecha de fin para el cálculo del valor promedio: establecemos día y mes (31 de diciembre), y el año lo calculamos desde la fecha de fin del reporte con desplazamiento. En este caso el desplazamiento "-1" = 2015 - 1 = 2014.
rep.everyquarter - paso de cálculo del valor promedio – Trimestre
4 - desplazamiento de los datos obtenidos en el paso de cálculo del valor promedio (4 períodos hacia adelante), es decir, el valor para el 1er trimestre 2015 será el resultado - (1er trim.2012+1er trim.2013+1er trim.2014) /3
el valor para el 2do trimestre 2015 será el resultado - (2do trim.2012+2do trim.2013+2do trim.2014) /3 y así sucesivamente.
Si no se especifica la cantidad de pasos de período para el desplazamiento de datos del cálculo del valor promedio en el tiempo, entonces el resultado obtenido se mostrará en 2014.
F.AVGPERIOD(A, 12, F.DATE (1, 1, F.YEAR (F.REPORTDATE (rep.byreport)) -2), F.DATE (31, 12, F.YEAR (F.REPORTDATE (rep.byreport) ) -1), rep.everymonth , 12)
En esta función se define la fecha del reporte y el valor promedio mensual de la variable "A" durante los 2 años previos.
El valor promedio de 2011 y 2012 se mostrará en 2013,
El valor promedio de 2012 y 2013 se mostrará en 2014,
El valor promedio de 2013 y 2014 se mostrará en 2015
y así sucesivamente.
La función F.AVGTAB calcula el valor promedio de un indicador, desglosado por catálogo de referencia.
F.AVGTAB (<indicador>, '<código_catálogo>')
- indicador - variable del indicador cuyo valor promedio es necesario encontrar
- código_catálogo - código del catálogo de referencia por el cual se realiza el desglose al calcular el valor promedio
F.AVGTAB(A, 'Empleado')
El indicador correspondiente a la variable A se desglosa por el catálogo de referencia "Empleado" y en la lista resultante <Valor del catálogo>=<valor del indicador> se toma la suma de valores del indicador y se divide por la cantidad de valores del catálogo de referencia. Para la suma y cantidad se considera la analítica no establecida.
Nota:
A primera vista puede parecer que
F.AVGTAB(A, 'Empleado') corresponde a
F.SUMTAB(A, 'Empleado') / F.ANALITCOUNT(A, 'Empleado'), pero en el caso general, esto no es así.
F.ANALITCOUNT() No considera la analítica no establecida.
Supongamos que el desglose por el catálogo de referencia Empleado para el indicador dio la siguiente lista de valores:
'Ivanov' = 15
'Petrov' = 5
'Sidorov' = 10
'valor no establecido' = 7,
Entonces:
F.SUMTAB(A, 'Empleado') = 37
F.ANALITCOUNT(A, 'Empleado') = 3
F.SUMTAB(A, 'Empleado') / F.ANALITCOUNT(A, 'Empleado') = 37 / 3 = 12,(3)
F.AVGTAB(A, 'Empleado') = 37 / 4 = 9,25
La función F.SUM calcula la suma del indicador durante un período en un paso de período especificado o la suma de un array.
F.SUM(<indicador>, int <fecha_inicio>, int <fecha_fin>, REP.EVERY*, {<filtro>},{bool <expresión>})
F.SUM(<indicador>) equivale a F.SUM(<indicador>, F.ToDay(0, Rep.ByStart), F.ToDay(0, Rep.ByEnd), F.ReportStep(<indicador>))
F.SUM ([<expresión>{,<expresión>}])
- indicador – código de variable o expresión
- fecha_inicio - fecha desde la cual se realiza el cálculo (por defecto se usa el período del reporte)
- fecha_fin - fecha hasta la cual se realiza el cálculo (por defecto se usa el período del reporte)
- REP.EVERY* - constante del paso de período correspondiente (por defecto se usa el paso de período del reporte)
- filtro - filtro opcional sobre catálogos de referencia del indicador
- expresión – cualquier expresión sintácticamente correcta cuyo resultado sea un número
F.SUM(A, 20140101, 20141231, rep.everymonth)
Devuelve la suma de valores mensuales del indicador "A" para el año 2014.
F.SUM(A, 20140101, 20141231, rep.everymonth, 'suc' = 'Sucursal de Moscú')
Devuelve la suma anual de valores mensuales del indicador "A" con analítica "Sucursal de Moscú" por el catálogo de referencia "Sucursales" (código del catálogo "suc").
F.SUM(A, F.TODAY (-1, rep.bystart), F.TODAY (0, rep.byend), rep.everymonth)
Devuelve la suma del indicador A durante el período desde el inicio del mes de cálculo anterior hasta el final del mes de cálculo actual.
Para el cálculo de fecha de inicio y fecha de fin se utiliza la función F.TODAY con desplazamiento
F.TODAY (-1, rep.bycurrent) -- con paso de reporte mes, fecha actual menos 1 mes
F.TODAY (0, rep.byend) -- con paso de reporte mes al calcular el indicador para noviembre --- final de noviembre
F.SUM(A, F.REPORTDATE(rep.bystart), F.TODAY(0, rep.byend) , rep.everymonth )
Devuelve la suma durante el período con total acumulado.
F.REPORTDATE(rep.bystart) – devuelve la fecha de inicio del reporte
F.TODAY(0, rep.byend) - devuelve la fecha de la columna
Para el período de enero a diciembre de 2014, la suma se calculará mensualmente con total acumulado hasta la columna actual del reporte:
- para enero devuelve el valor de enero,
- para febrero - enero+febrero,
- para marzo- enero+febrero+marzo
y así sucesivamente.
F.SUM(A, F.TODAY(f.if(F.REPORTSTEP=rep.everymonth,-12,f.if (F.REPORTSTEP =rep.everyquarter, -4, f.if(F.REPORTSTEP=rep.everyhalf,-2,-1))),rep.bystart), F.TODAY(f.if ( F.REPORTSTEP=rep.everymonth, -12, f.if(F.REPORTSTEP=rep.everyquarter,-4, f.if(F.REPORTSTEP=rep.everyhalf,-2,-1))),rep.byend), rep.bycurrent )
Devuelve la suma por el indicador "A" para el período actual con desplazamiento de un año hacia adelante.
Al construir el reporte para 2015 con paso "Trimestre" se mostrará la suma:
- en el primer trimestre de 2015 - del primer trimestre de 2014.
- en el segundo trimestre de 2015 - del segundo trimestre de 2014
y así sucesivamente.
Al construir el reporte para 2015 con paso "Semestre"
- en el primer semestre de 2015 se mostrará la suma de valores del primer semestre de 2014.
Al construir el reporte para 2015 con paso año se mostrará la suma de valores de 2014.
F.SUM(A, F.DATE ( 01, f.if (F.QUARTER (F.REPORTDATE (rep.byreport))=1, 01, f.if (F.QUARTER (F.REPORTDATE (rep.byreport))=2, 04, f.if (F.QUARTER (F.REPORTDATE (rep.byreport))=3, 07, 10 ) ) ), F.YEAR (F.REPORTDATE (rep.byreport))) , F.TODAY (0, rep.byend), rep.everyweek)
Devuelve el total acumulado por semanas para cada trimestre del año del reporte.
F.SUM(A, F.DATE (01, 01,F.YEAR(F.REPORTDATE(rep.byreport)) ), F.TODAY (0, rep.byend), rep.everymonth)
Devuelve el total mensual acumulado para cada año del reporte. Para acelerar el cálculo del total acumulado también se puede utilizar la fórmula:
f.if(F.Month(F.REPORTDATE(rep.byreport)) = 1, A,
f.if( f.periodnumber(rep.ByCurrent) <= 0, 0, f.if( f.periodnumber(rep.ByCurrent) = 1,
F.SUM( A , F.DATE (01, 01,F.YEAR(F.REPORTDATE(rep.byreport)) ), F.ToDay(0, rep.byend), rep.everymonth),
f.prevvaluethis(1) + A)))
F.SUM( [A , B])
Devuelve la suma de variables en el array de manera más eficiente que A+B.
La función F.PROGRESSIVESUM calcula la suma de datos del indicador, agrupados en el paso de período del indicador, con total acumulado en uno de los períodos especificados.
F.PROGRESSIVESUM(<indicador>,rep.everyyear|rep.everyhalf|rep.everyquarter |rep.everymonth)
- indicador – variable del indicador para la cual se necesita calcular la suma de datos en el paso de período del indicador con total acumulado durante el período especificado
- rep.everyyear – el total acumulado se calcula desde el inicio de cada año
- rep.everyhalf – el total acumulado se calcula desde el inicio de cada semestre
- rep.everyquarter – el total acumulado se calcula desde el inicio de cada trimestre
- rep.everymonth – el total acumulado se calcula desde el inicio de cada mes
F.PROGRESSIVESUM (A, Rep.EveryYear)
Para el período de enero a diciembre de uno o varios años se calculará mensualmente con total acumulado dentro del marco de cada año:
- para enero devuelve el valor de enero,
- para febrero - enero+febrero,
- para marzo - enero+febrero+marzo
y así sucesivamente.
La función F.SUMTAB calcula la suma del indicador, desglosado por catálogo de referencia.
F.SUMTAB(<indicador>, <catálogo_referencia>)
- indicador – código de variable o expresión
- catálogo_referencia – código del catálogo de referencia por cuyos valores se realiza el desglose al sumar
F.SUMTAB(X, 'sucursal')
Devuelve la suma total de la variable X durante el período del reporte en el paso de período del reporte con desglose por el catálogo de referencia "sucursal".
X - indicador calculado, igual al producto de dos indicadores base A*B, cada uno de los cuales tiene analítica por el catálogo de referencia 'sucursal':
| Sucursal | A | B |
|---|---|---|
| sucursal 1 | 1,00 | 7,00 |
| sucursal 2 | 2,00 | 8,00 |
| sucursal 3 | 3,00 | 9,00 |
| Total: | 6,00 | 24,00 |
La función F.SUMTAB calculará la suma total de productos A*B en el desglose del catálogo de referencia 'sucursal' (como en el reporte tabular) durante el período del reporte:
F.SUMTAB (X, 'suc') = 7+16+27=50
La función F.SUM en este caso calculará durante el período especificado la suma por el indicador "A" y la multiplicará por la suma por el indicador "B" durante ese período:
F.SUM (X, 20140101, 20141231, rep.everymonth) = 6+24=30
La función F.COUNT calcula la cantidad de valores en el indicador durante un período en un paso de período especificado o la cantidad de elementos en un array.
F.COUNT(<indicador>, int <fecha_inicio>, int <fecha_fin>, REP.EVERY*, {<filtro>})
o
F.COUNT(<indicador>)
que equivale a
F.COUNT(<indicador>, F.ToDay(0, Rep.ByStart), F.ToDay(0, Rep.ByEnd), F.ReportStep(<indicador>))
F.COUNT ([<expresión>{, <expresión>}])
- indicador – código de variable o expresión
- fecha_inicio - fecha desde la cual se realiza el cálculo (por defecto se usa el período del reporte)
- fecha_fin - fecha hasta la cual se realiza el cálculo (por defecto se usa el período del reporte)
- REP.EVERY* - constante del paso de período correspondiente (por defecto se usa el paso de período del reporte)
- filtro - filtro opcional sobre catálogos de referencia del indicador
- expresión – cualquier expresión sintácticamente correcta cuyo resultado sea un número
F.COUNT(A)
Devuelve la cantidad de registros del indicador "A" durante el período del reporte.
F.COUNT(A, 20140101, 20141231, rep.everymonth)
Devuelve la cantidad de registros del indicador "A" durante el período especificado.
F.COUNT(A, F.TODAY (0, rep.bystart), F.TODAY (0, rep.byend), rep.byreport)
Devuelve la cantidad de registros del indicador "A" durante el período especificado.
F.COUNT(A, 20140101, F.TODAY, rep.everymonth, 'fil' = 'Sucursal de Moscú' AND 'suc' = 'Tver')
Devuelve la cantidad de registros del indicador "A" por las sucursales de Moscú y Tver en paso de período mes durante el período comenzando desde el 01 de enero 2014.
F.COUNT([A, B])
Devuelve la cantidad de elementos en el array - 2.
La función F.ANALITCOUNT devuelve la cantidad de valores del catálogo de referencia del indicador.
La función F.ANALITCOUNTBASE devuelve la cantidad de valores del catálogo de referencia en el indicador base.
Limitaciones de la función ANALITCOUNTBASE:
- en caso de usar esta función, la fórmula no debe contener otras funciones
- en el indicador calculado puede haber solo una variable, que sea un indicador base
- la variable de esta función no se calcula por separado (se muestra en el plan de cálculo, pero sin datos)
F.ANALITCOUNT(<indicador>, <código_catálogo>), F.ANALITCOUNTBASE(<indicador>, <código_catálogo>)
- indicador – código de variable
- código_catálogo – código del catálogo de referencia por el cual se cuenta la cantidad de valores del catálogo de referencia en los datos del indicador
F.ANALITCOUNT (A, 'Empleados')
Devuelve la cantidad de empleados por el indicador "A" durante el período del reporte.
La función F.PERIODNUMBER devuelve el número del paso que se está calculando en el momento actual.
F.PERIODNUMBER(REP.BYREPORT | REP.BYCURRENT)
- REP.BYCURRENT - devuelve el número de paso en el paso de período del indicador que se está calculando
- REP.BYREPORT - devuelve el número de paso en el paso de período del reporte
F.PERIODNUMBER(rep.byreport)
Para un reporte anual con paso de período trimestre por indicador calculado con paso de período mes devolverá secuencialmente 1, 2, 3, 4.
F.PERIODNUMBER (rep.bycurrent)
Para un reporte anual con paso de período trimestre por indicador calculado con paso de período mes devolverá 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12.
La función F.REPORTSTEP devuelve uno de los valores de las constantes REP.EVERY*, que corresponde al paso de período actual del indicador o del reporte.
F.REPORTSTEP({<indicador>})
- indicador – código de variable
f.if (F.REPORTSTEP(A) = rep.everymonth, 1, 2)
Devuelve para el indicador "A" con paso mes - 1, para indicador con otro paso - 2.
F.REPORTSTEP(A)
Devuelve el paso del indicador "A"
día – 4
semana – 5
mes – 6
trimestre – 7
semestre – 8
año – 9
F.REPORTSTEP
Devuelve el paso del reporte (4 – 9)
La función F.PREVVALUE devuelve el valor del indicador, tomado en el paso de período del indicador un número especificado de pasos hacia atrás.
F.PREVVALUE(<indicador>, int <expresión>)
- indicador – variable para la cual se devuelve el valor del período anterior
- expresión – cantidad de pasos en el paso de período del indicador
F.PREVVALUE (A, 1)
Devuelve el valor igual a la variable "A" del período anterior.
F.PREVVALUE (A, 2)
Devuelve el valor igual a la variable "A" del período que precede al anterior.
La función F.PREVVALUETHIS devuelve el valor del indicador actual, tomado en el paso de período del indicador un número especificado de pasos hacia atrás.
F.PREVVALUETHIS(int <expresión>)
- expresión – cantidad de pasos en el paso de período del indicador
A + F.PREVVALUETHIS (1)
Devuelve la suma de valores del indicador "A" del período actual y anterior.
A + F.PREVVALUETHIS (2)
Devuelve la suma de valores del indicador "A" del período actual y el período que precede al anterior.
f.if (F.MONTH (F.REPORTDATE (rep.byreport)) = 1, A, f.if ( F.PERIODNUMBER (rep.bycurrent) <= 0, 0, f.if ( F.PERIODNUMBER (rep. bycurrent) = 1, F.SUM( A , F.DATE (01, 01,F.YEAR(F.REPORTDATE (rep.byreport)) ), F.TODAY(0, rep.byend), rep.everymonth), A + F.PREVVALUETHIS (1))))
Devuelve el valor igual a la variable "A" del período anterior para el cálculo de la suma con total acumulado desde el inicio del año.
La función F.VALPOSTAB devuelve el valor del indicador por el número de la lista ordenada en el desglose del catálogo de referencia analítico.
F.VALPOSTAB (<indicador>, '<código_catálogo>', <posición>, <dirección_ordenamiento>)
- indicador - variable del indicador cuyo valor es necesario devolver desde la posición ordenada por valor y desglosada por catálogo de referencia
- código_catálogo - código del catálogo de referencia por el cual se realiza el desglose
- posición - número de posición desde la cual es necesario devolver el valor, desglosado por catálogo de referencia.
Cualquier expresión sintácticamente correcta que devuelva un número en el rango de 1 hasta la cantidad de elementos que entraron en el desglose por catálogo de referencia, es decir, de 1 a F.AnalitCount() por el mismo catálogo de referencia.
Con cualquier otro valor la función devuelve 0.
Si al desglosar por catálogo de referencia la lista de valores está vacía, es decir, F.AnalitCount() = 0, entonces la función también devuelve 0. Posición - número de posición desde la cual es necesario devolver el valor, desglosado por catálogo de referencia
- dirección_ordenamiento - true (o 1) - ordenar por valores ascendentes, false (o 0) - ordenar por valores descendentes
F.VALPOSTAB (A, 'EstructuraOrg', 3, 1)
Para el indicador base vinculado con la variable A, que tiene valores por el catálogo de referencia "EstructuraOrg":
15 - Unidad de energía 1
20 - Unidad de energía 2
10 - Unidad de energía 3
la función especificada devolverá el valor de la posición 3 de la lista ordenada de valores:
10 - Unidad de energía 3
15 - Unidad de energía 1
20 - Unidad de energía 2
Es decir, el resultado del trabajo de la función será igual a 20.
La función F.GETREFVALUE realiza la búsqueda de un elemento en el directorio de referencia mediante un patrón en el primer campo especificado. En caso de éxito, devuelve el valor del segundo campo; de lo contrario, devuelve 0.
F.GETREFVALUE (<catálogo_referencia>, <campo_catálogo>, <patrón>, <campo_catálogo>)
- catálogo_referencia – cadena con el código del catálogo de referencia
- campo_catálogo – cadena con el identificador del campo del catálogo de referencia
- patrón – patrón de búsqueda
- campo_catálogo – cadena con el identificador del campo del catálogo de referencia
F.GETREFVALUE ('CortePresupuestario', 'Code', '5206463403', 'DocID')
Registra en el campo de referencia al catálogo "CortePresupuestario" en los datos del indicador una referencia al valor del catálogo '5206463403'
F.GETREFVALUE ('Ordenante', 'DocID', Gastos.Ordenante, 'DocID')
Calcula el valor del campo de referencia al catálogo "Ordenante" del Indicador Base según el valor del campo de referencia a este mismo catálogo "Ordenante" en el catálogo "Gastos"
F.GETREFVALUE ('Ordenante', 'Code', Gastos.Ordenante, 'DocID')
Calcula el valor del catálogo "Ordenante" del Indicador Base según el campo de cadena "Ordenante" del catálogo "Gastos"
F.GETREFVALUE ('Porcentajes','DocID', f.matrixrefvalue ('DSS') , 'Name')
Registra en el campo de cadena del Indicador Base la denominación del valor del catálogo "Porcentajes", calculado mediante la Lista Dinámica\Catálogo de referencia con código "DSS"
F.GETREFVALUE ('Periodo', 'Code', F.Str(F.Year(DateOper)) +'.'+ F.Str(f.if(F.Month(DateOper)> 6, 2, 1)) +'.'+ F.Str(f.if(F.Month(DateOper)< 4, 1, f.if(F.Month(DateOper)< 7, 2, f.if(F.Month(DateOper)< 10, 3, 4)))) +'.'+ F.Str(F.Month(DateOper)) , 'DocID')
Calcula el valor del campo de referencia al catálogo del sistema "Periodo" en los datos del indicador según la fecha del valor del indicador.
La función F.MATRIXREFVALUE devuelve los valores del catálogo de referencia, calculados por clave analítica a partir de la versión de matrices de tipos "Lista Dinámica\Catálogo" y "Lista Dinámica\Número" en una fecha determinada.
F.MATRIXREFVALUE (<matriz>{, <fecha>})
- matriz – cadena con el código de la matriz de transformación tipo "Lista Dinámica\Catálogo" o "Lista Dinámica\Número"
- fecha – campo opcional con la fecha para la cual se toma la versión de la matriz (si no se especifica, se toma el valor de fecha del campo DateOper)
F.MATRIXREFVALUE ('CortePresupuestario') o F.MATRIXREFVALUE ('CortePresupuestario', DateOper)
Registra en los datos del indicador, en el campo de referencia al catálogo "Corte presupuestario", una referencia al valor del catálogo que será calculado por la matriz de transformación con código "CortePresupuestario" en la fecha del valor del indicador
Asistente de configuración de escenarios de importación
La función F.STR devuelve la representación en cadena del número
F.STR(float <expresión>)
- expresión – expresión que se necesita convertir en cadena
La función F.STRDATE devuelve la representación en cadena de la fecha.
F.STR(float <expresión>)
- expresión – expresión que se necesita convertir en cadena
La función F.LTRIM elimina los espacios en blanco a la izquierda de una cadena.
F.LTRIM(string <expresión>)
- expresión – cadena en la cual es necesario recortar los espacios en blanco de la izquierda
La función F.RTRIM elimina los espacios en blanco a la derecha de una cadena.
F.RTRIM (string <expresión>)
- expresión – cadena en la cual es necesario recortar los espacios en blanco de la derecha
La función F.TRIM elimina los espacios en blanco a la izquierda y a la derecha de una cadena.
F.TRIM(string <expresión>)
- expresión – cadena en la cual es necesario recortar los espacios en blanco de ambos extremos
La función F.HI convierte el valor de la cadena a mayúscuals.
F.HI(string <expresión>)
- expresión – cadena cuyos valores deben convertirse a mayúsculas
La función F.LO convierte el valor de la cadena a minúsculas.
F.LO(string <expresión>)
- expresión – cadena cuyos valores deben convertirse a minúsculas
La función F.REPLACE reemplaza en la cadena (parámetro 1) el primer valor (parámetro 2) por el segundo valor (parámetro 3).
F.REPLACE(string <expresión1>, string <expresión2>, string <expresión3>)
- expresión1 – cadena en la cual se realiza el reemplazo
- expresión2 – cadena/valor a reemplazar
- expresión3 – cadena/valor por el cual se realiza el reemplazo
La función F.GROUPSUM realiza la sumatoria de valores del campo numérico especificado según la agrupación de campos indicada. La especificación de la agrupación de campos es opcional; en este caso se tomará la suma de todo el conjunto de datos.
F.GROUPSUM(float <expresión>, {<argumento1>, ..., <argumentoN>})
- expresión – campo numérico cuyos valores se suman
- parámetro opcional de agrupación de campos – campos según los cuales se realiza la sumatoria
La función F.TSUM realiza la sumatoria de valores del campo numérico especificado según la condición indicada. La especificación de la condición no es obligatoria; en este caso se tomará la suma de todos los valores de los campos enumerados.
F.TSUM(float <expresión>{,float <expresión1>, ..., float <expresiónN>})
- expresión – campo numérico cuyos valores se suman o fórmula según la cual se realiza el cálculo del número para la sumatoria
Para la sumatoria de:
- valores del campo "A" (4)
- valores de los campos "A" y "B" (5)
- valores del campo "A", cuyo parámetro es "P1" (6)
| A | B | Parámetro | F. TSUM (A) | F. TSUM (A, B) | F. SUM ( F.IF (Parámetro = 'P1' , А, 0) |
|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 |
| 15,00 | 1,00 | P1 | 45,00 | 51,00 | 25,00 |
| 20.00 | 2,00 | P | 45,00 | 51,00 | 25,00 |
| 10,00 | 3,00 | P1 | 45,00 | 51,00 | 25,00 |
La función F.DIST realiza la distribución con la precisión especificada (parámetro 1) para la suma dada (parámetro 2) según el valor del peso (parámetro 3).
F.DIST(int <expresión1>, float <expresión2>, float <expresión3>)
- expresión1 – número entero de 0 a 16 - cantidad de dígitos después del punto decimal para el delta (error) entre el valor del parámetro 2 y la suma del producto del parámetro 3 (coeficiente de distribución para la fila de datos) por el valor del parámetro 2 (suma total para todas las filas de datos)
- expresión2 – número o parámetro (variable) que define el número total (suma) a distribuir
- expresión3 – variable o fórmula según la cual se calcula el coeficiente para la fila de datos
En el campo calculado (4) se calcula la proporción de la cantidad de empleados de cada departamento (1) en la cantidad total de empleados de la empresa (3).
La suma de todos los valores de la columna (4) debe ser igual a 1, pero debido a la gran cantidad de filas con valores y sumas pequeñas (1), debido a los redondeos podemos obtener una suma no igual a 1.
Es necesario calcular el delta entre 1 y la suma obtenida (4) y distribuirla proporcionalmente en cada valor por fila (4).
| А | Parámetro | F. TSUM (A) | А/B | F.DIST(5, 1, А/B ) | |
|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | |
| 20,00 | Depto 1 | 11 565,00 | 0,00177746178… | 0,00177746178… | |
| 5,00 | P | Depto 2 | 11 565,00 | 0,00177746178… | |
| ... | P1 | Depto N | 11 565,00 | ... | |
| Suma | 11 565,00 | 0,99... | 1,00000 |
La función F.DIST(5, 1, A/B) calculará la suma de los valores A/B, la comparará con 1 y la diferencia faltante la distribuirá proporcionalmente por filas (5). La suma de los valores (5) la comparará con 1. Si la suma obtenida (5) con precisión de 5 dígitos después del punto decimal no alcanza el 1 necesario, entonces calculará la diferencia y nuevamente la distribuirá proporcionalmente por fila. Y así sucesivamente hasta que la suma obtenida de los valores (5) sea igual a 1.
Funciones de Mapas KPI
La función F.VARISENABLED devuelve VERDADERO, si la variable especificada de la fila está incluida en el cálculo del mapa KPI. De lo contrario - FALSO
F.VARISENABLED(<variable>)
- variable – variable de celda del Mapa KPI
F.VARISENABLED(<H1>)
Devuelve 1 (verdadero), si la variable de la fila participa en el cálculo.
De lo contrario, devuelve 0 (falso).
Parámetros
- paso del período año
- paso del período hora
– Paso actual del período
– Paso de período día
– inicio del período
– fin del período
– paso de período del reporte
– paso de período semana