Справочник функций и операторов

Операторы

1. IF (условный оператор IF)

Описание

Условный оператор IF возвращает одно значение, если указанное условие дает в результате значение ИСТИНА, и другое значение, если условие дает в результате значение ЛОЖЬ.

Синтаксис

F.IF(bool <выражение1>, float <выражение2>, float <выражение3>)

  • выражение1 - логическое выражение
  • выражение2 - значение, если указанное условие дает в результате значение ИСТИНА
  • выражение3 - значение, если условие дает в результате значение ЛОЖЬ

Пример

F.IF (A > 0, B, 0)

Возвращается значение B, если A больше 0 или 0, если A меньше или равно 0

F.IF (((А /B) > 1.5) and ((A/B) < 2.3), C, 0)

Возвращается значение С, если A/В больше 1.5 и меньше 2.3 или 0, если A/В меньше или равно 1.5 и больше или равно 2.3

2. AND (оператор AND)

Описание

Логический оператор AND выполняет условие только в том случае, если в результате вычисления всех аргументов получается значение ИСТИНА. Если хотя бы одно условие ЛОЖНО, то все условие ЛОЖНО. Обычно функция AND используется для расширения возможностей других функций, выполняющих логическую проверку.

Синтаксис

(<выражение1>) AND (<выражение2>)

  • выражение1 - первое проверяемое условие, вычисление которого дает значение ИСТИНА или ЛОЖЬ.
  • выражение2 - второе проверяемое условие, вычисление которого дает значение ИСТИНА или ЛОЖЬ.

Пример

F.IF (A > 0 AND B=5, B, 0)

Возвращается значение B, если A>0 и B=5, иначе 0

3. OR (оператор OR)

Описание

Условный оператор OR позволяет проверить некоторое условие и, в зависимости от результатов проверки, выполнить то или иное действие. Возвращает значение ИСТИНА, если хотя бы один из аргументов имеет значение ИСТИНА или ЛОЖЬ, если все аргументы имеют значение ЛОЖЬ. Обычно функция OR используется для расширения возможностей других функций, выполняющих логическую проверку.

Синтаксис

(<выражение1>) OR (<выражение2>)

Пример

F.IF (A > 0 OR B=5, B, 0)

4. LIKE (оператор LIKE)

Описание

Оператор LIKE применим только к строковым значениям справочника, с которыми он используется, чтобы находить подстроки. Используется для наложения фильтров в справочнике при поиске нужных значений. В вычислимых полях Базового показателя не поддерживается (используется «=»)

Синтаксис

<'Код справочника'> LIKE <'Шаблон'>

  • Код справочника – аргумент код справочника
  • Шаблон – аргумент подстрока/часть слова/фразы

Пример

F.SUM (А, 20110101, 20111231, rep.everymonth, 'фил' LIKE 'Московский*')

Поиск значений в справочнике «Филиалы» (код справочника «Фил») начинающихся со слова «Московский»

5. NOT LIKE (оператор NOT LIKE)

Описание

Оператор NOT LIKE, обратный оператору LIKE, применим только к строковым значениям справочника, с которыми он используется, чтобы находить подстроки. Используется для наложения фильтров в справочнике при поиске нужных значений. В вычислимых полях Базового показателя не поддерживается (используется «<>» или «!=»)

Синтаксис

<'Код справочника'> NOT LIKE <'Шаблон'>

  • Код справочника – аргумент код справочника
  • Шаблон – аргумент подстрока/часть слова/фразы

Пример

F.SUM (А, 20110101, 20111231, rep.everymonth, 'фил' NOT LIKE 'Московский*')

Поиск значений в справочнике «Филиалы» (код справочника «Фил») не содержащих в названии слова «Московский»

6. NOT (оператор NOT)

Описание

Оператор NOT отрицает условие или оператор.

Синтаксис

NOT (<Условие_Оператор>)

  • Условие_Оператор – аргумент для условия или оператора, требующих отрицания

Пример

F.SUM (А, 20110101, 20111231, rep.everymonth, 'фил' NOT LIKE 'Московский*')

Поиск всех значений кроме «Московский*» в справочнике «Филиалы» (код справочника «Фил»)

NOT (A=8)

А не равно 8

Функции по работе с датами

1. TODAY (функция TODAY)

Описание

Функция F.TODAY возвращает текущую дату (или дату со смещением от текущей).

Синтаксис

F.TODAY({int <смещение>, {REP.BYCURRENT | REP.BYSTART | REP.BYEND}})

  • смещение - количество шагов периода для смещения в шаге периода отчета
  • необязательный параметр, возвращающий значение текущей даты BYCURRENT | REP.BYSTART | REP.BYEND (по умолчанию используется REP.BYEND). Если режим текущей даты не указан, то функция принимает значение REP.BYCURRENT

Пример

F.TODAY

Возвращается текущая дата - 20150305 00:00:00.000

F.TODAY (-1)

Если шаг отчета - месяц, то возвращается текущая дата минус 1 месяц

Если шаг отчета - квартал, то возвращается текущая дата минус 1 квартал.

F.TODAY (+2)

Если шаг отчета месяц, то возвращается текущая дата плюс 2 месяца

F.TODAY (0, rep.bystart) 

При шаге отчета месяц при расчете показателя на ноябрь возвращает начало ноября – 20141101 00:00:00.000

F.IF(F.TODAY = 20141225, 'Католическое Рождество', '')

В данной функции определяется текущая дата и, если она равна 25 декабря 2014, то возвращается значение «Католическое Рождество», иначе - «»

2. DATEADD (функция DATEADD)

Описание

Функция F.DATEADD возвращает дату со смещением

Синтаксис

F.DATEADD(int <дата начала>, int <смещение>, REP.EVERY*, {REP.BYSTART | REP.BYEND| REP.BYREPORT})

  • дата начала - дата, от которой производится вычисление
  • смещение - количество шагов периода для смещения
  • REP.EVERY*- константа соответствующего шага периода 
  • необязательный параметр, возвращающий значение даты на начало или конец периода REP.BYSTART | REP.BYEND| REP.BYREPORT (по умолчанию используется REP.BYEND)

Пример

F.DATEADD (F.REPORTDATE (rep.byend), -11, rep.everyquarter, rep.bystart), F.DATEADD (F.REPORTDATE (rep.byend), -4, rep.everyquarter, rep.byend)

В данной функции определяется период расчета.

Дата начала периода и конца периода расчета заданы со смещением от конечной даты периода отчета по Показателю. Для Показателя с шагом «Квартал» и периодом отчета с I квартала 2014 по VI квартал 2014 периодом расчета будут 2 года - I квартала 2012 - VI квартал 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)

В данной функции определяется поквартальное среднее значение переменной «A».

Для вычисления периода расчета среднего значения использована функция F.DATEADD, рассмотренная выше. Среднее значение, рассчитанное за 2012 - 2013 года, будет отображено в 2014 году.

3. REPORTDATE (функция REPORTDATE)

Описание

Функция F.REPORTDATE возвращает текущую дату начала отчета, текущую дату конца отчета или дату текущего шага периода

Синтаксис

F.REPORTDATE({REP.BYSTART | REP.BYEND | REP.BYREPORT})

  • REP.BYSTART | REP.BYEND | REP.BYREPORT - параметр, который определяет возвращаемое значение даты - на начало периода отчета, конец периода отчета или на дату текущего шага периода соответственно.

Пример

F.SUM (A , F.REPORTDATE (rep.bystart) , F.TODAY(0, rep.byend) , rep.everymonth )

Сумма за период с января по декабрь 2014 года будет рассчитываться помесячно нарастающим итогом до текущего столбца отчета (за январь вернется значение января, за февраль – (январь+февраль), за март - (январь+февраль+март) и т.д.)

F.REPORTDATE (rep.bystart)

Возвращается дату начала отчета

4. DATE (функция DATE)

Описание

Функция F.DATE возвращает дату в формате (день, месяц, год) с возможностью рассчитать один из этих параметров с помощью других функций

Синтаксис

F.DATE (int <день>, int <месяц>, int <год>)

Пример

F.DATE (1,1,2015)

Возвращает значение 20150101, т.е. 01.01.2015

F.SUM(А, F.DATE (01, 01, F.YEAR (F.REPORTDATE(rep.byreport))), F.REPORTDATE(rep.byreport), rep.everyquarter )

С помощью функции F.DATE при расчете суммы задается дата начала суммирования – 01 января каждого года, где год вычисляется с помощью функций F.REPORTDATE.

5. PERIOD (функция PERIOD)

Описание

Функция F.PERIOD возвращает разницу между двумя датами в заданном шаге периода.

Синтаксис

F.PERIOD(int <дата начала>, int <дата конца>, REP.EVERY*)

  • дата начала - дата, от которой производится вычисление
  • дата конца - дата, до которой производится вычисление
  • REP.EVERY*- константа соответствующего шага периода

Пример

F.PERIOD(20150101, 20150201, rep.everyday)

Возвращает 31 день

F.PERIOD(20150101, 20150201, rep.everyhour)

Возвращает 744 часа

F.PERIOD(20140101, 20150101, rep.everymonth)

Возвращает 12 месяцев

6. PERIODOF (функция PERIODOF)

Описание

Функция F.PERIODOF возвращает разницу между началом и концом текущего рассчитываемого шага периода отчета

Синтаксис

F.PERIODOF(REP.EVERY*)

  • REP.EVERY*- константа соответствующего шага периода

Пример

F.PERIODOF(rep.everyday)

При расчете показателя за период с января по декабрь 2014 года с шагом «Месяц» будет последовательно возвращать: 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31

Та же функция в шаге периода «Квартал» будет возвращать: 90, 91, 92, 92

Аналогична записи комбинаций функций F.PERIOD(F.TODAY (0, rep.bystart), F.TODAY (0, rep.byend), rep.everyday)+1

7. DAY (функция DAY)

Описание

Функция F.DAY вычисляет день из параметра даты

Синтаксис

F.DATESTR(int <дата>, REP.EVERY*)

  • дата- дата, из которой производится вычисление дня
  • REP.EVERY*- константа соответствующего шага периода

Пример

F.DAY(20151101)

Возвращает значение - 1

8. MONTH (функция MONTH)

Описание

Функция F.MONTH вычисляет месяц из параметра даты

Синтаксис

F.MONTH(int <дата>)

  • дата - дата, из которой производится вычисление месяца

Пример

F.MONTH(20151101)

Возвращает значение - 11

9. QUARTER (функция QUARTER)

Описание

Функция F.QUARTER вычисляет квартал из параметра даты

Синтаксис

F.QUARTER(int <дата>)

  • дата - дата, из которой производится вычисление квартала

Пример

F.QUARTER(20151101)

Возвращает значение - 4

10. YEAR (функция YEAR)

Описание

Функция F.YEAR вычисляет год из параметра даты

Синтаксис

F.YEAR(int <дата>)

  • дата- дата, из которой производится вычисление года

Пример

F.YEAR(20151101)

Возвращает значение - 2015

11. GETDATE (функция GETDATE)

Описание

Функция F.GETDATE возвращает текущую дату со временем

Синтаксис

F.GETDATE()

Пример

F.GETDATE

Возвращает текущую дату со временем

12. DATENIL (функция DATENIL)

Описание

Функция F.DATENIL возвращает минимальное (пустое) значение даты

Синтаксис

F.DATENIL()

Пример

F.DATENIL

Возвращает 18991230 - минимальное значение даты 30.12.1899

13. DATEONLY (функция DATEONLY)

Описание

Функция F.DATEONLY возвращает только дату из заданного значения (без времени)

Синтаксис

F.DATEONLY(int <дата>)

  • дата- дата со временем, из которой производится вычисление даты

Пример

F.DATEONLY( F.GETDATE )

Возвращает текущее значение даты без времени

14. SECOND (функция SECOND)

Описание

Функция F.SECOND возвращает значение секунд из даты

Синтаксис

F.SECOND(int <дата>)

  • дата- дата со временем, из которой производится вычисление

Пример

F.SECOND( F.GETDATE() )

Возвращает секунды из текущей даты со временем

15. MINUTE (функция MINUTE)

Описание

Функция F.MINUTE возвращает значение минуты из даты

Синтаксис

F.MINUTE(int <дата>)

  • дата- дата со временем, из которой производится вычисление

Пример

F.MINUTE ( F.GETDATE() )

Возвращает минуты из текущей даты со временем

16. HOUR (функция HOUR)

Описание

Функция F.HOUR возвращает значение часа из даты

Синтаксис

F.HOUR(int <дата>)

  • дата- дата со временем, из которой производится вычисление

Пример

F.HOUR( F.GETDATE() )

Возвращает часы из текущей даты со временем

17. DATEDIFF (функция DATEDIFF)

Описание

Функция F.DATEDIFF возвращает разность дат в заданном шаге периода. Результат целое число

Синтаксис

F.DATEDIFF(REP.EVERY*, int <дата начала>, int <дата конца>)

  • REP.EVERY*- константа соответствующего шага периода
  • дата начала - дата, от которой производится вычисление
  • дата конца - дата, до которой производится вычисление

Пример

F.DATEDIFF(rep.everymonth, 20100101, 20101231)

Возвращает 11 месяцев

Математические функции

1. PI (функция PI)

Описание

Функция F.PI возвращает число Пи - 3.1415....

Синтаксис

F.PI

Пример

F.PI

Для показателя измеритель, которого имеет точность два знака после запятой, возвращает значение 3.14

2. SIN (функция SIN)

Описание

Функция F.SIN возвращает синус угла

Синтаксис

F.SIN(float <угол>)

  • угол – показатель или выражение, для вычисления синуса

Пример

F.SIN(30)

Возвращает значение 0,5

3. COS (функция COS)

Описание

Функция F.COS возвращает косинус угла

Синтаксис

F.COS (float <угол>)

  • угол – показатель или выражение, для вычисления косинуса

Пример

F.COS(360)

Возвращает значение 1

4. TG (функция TG)

Описание

Функция F.TG возвращает тангенс угла

Синтаксис

F.TG(float <угол>)

  • угол – показатель или выражение, для вычисления тангенса

Пример

F.TG (45)

Возвращает значение 1

5. CTG (функция CTG)

Описание

Функция F.CTG возвращает котангенс угла

Синтаксис

F.CTG(float <угол>)

  • угол – показатель или выражение, для вычисления котангенса

Пример

F.CTG (45)

Возвращает значение 1

6. ARCSIN (функция ARCSIN)

Описание

Функция F.ARCSIN возвращает арксинус угла

Синтаксис

F.ARCSIN (float <угол>)

  • угол – показатель или выражение, для вычисления арксинуса

F.ARCSIN (30)

7. ARCCOS (функция ARCCOS)

Описание

Функция F.ARCCOS возвращает арккосинус угла

Синтаксис

F.ARCCOS (float <угол>)

  • угол – показатель или выражение, для вычисления арккосинус

Пример

F.ARCCOS (1)

8. ARCTG (функция ARCTG)

Описание

Функция F.ARCTG возвращает арктангенс угла

Синтаксис

F.ARCTG (float <угол>)

  • угол – показатель или выражение, для вычисления арктангенса

Пример

F.ARCTG (1)

9. ARCCTG (функция ARCCTG)

Описание

Функция F.ARCCTG возвращает арккотангенс угла

Синтаксис

F.ARCCTG (float <угол>)

  • угол – показатель или выражение, для вычисления арккотангенса

Пример

F.ARCCTG (1)

10. EXP (функция EXP)

Описание

Функция F.EXP возвращает основание натурального логарифма (e = 2.7182818284590452...) в указанной степени

Синтаксис

F.EXP(float <выражение>)

  • выражение – показатель или выражение, для вычисления экспоненты

Пример

F.EXP (0)

Возвращает значение 1

11. LG (функция LG)

Описание

Функция F.LG возвращает логарифм по основанию 10 указанного числа

Синтаксис

F.LG (float <выражение>)

  • выражение – показатель или выражение, для вычисления

Пример

F.LG (10)

Возвращает значение 1

12. LN (функция LN)

Описание

Функция F.LN возвращает натуральный логарифм указанного числа

Синтаксис

F.LN (float <выражение>)

  • выражение – показатель или выражение, для вычисления

Пример

F.LG (1)

Возвращает значение 0

13. ABC (функция ABC)

Описание

Функция F.ABC возвращает модуль (абсолютную величину) числа, т.е. число без знака.

Синтаксис

F.ABC(float <выражение>)

  • выражение - вещественное число, абсолютное значение которого необходимо найти

Пример

F.ABC (3)

Возвращает значение 3

F.ABC (-2)

Возвращает значение 2

14. MAX (функция MAX)

Описание

Функция F.MAX возвращает наибольшее значение из набора значений.

Синтаксис

F.MAX(float <выражение1>, float <выражение2>)

  • выражение1 - вещественное число, абсолютное значение которого необходимо найти
  • выражение2 – другое вещественное число, абсолютное значение которого необходимо найти

Пример

F.MAX (2, 3)

Возвращает значение 3

15. MIN (функция MIN)

Описание

Функция F.MIN возвращает наименьшее значение из набора значений.

Синтаксис

F.MIN(float <выражение1>, float <выражение>)

  • выражение1 - вещественное число, абсолютное значение которого необходимо найти
  • выражение2 – другое вещественное число, абсолютное значение которого необходимо найти

Пример

F.MIN (2, 3)

Возвращает значение 2

16. MAXIMUM (функция MAXIMUM)

Описание

Функция F.MAXIMUM вычисляет максимальное значение за период в заданном шаге периода. Сначала функция суммирует данные в указанном шаге периода, а потом находит экстремум в диапазоне назначенных дат.

Синтаксис

F.MAXIMUM(<показатель>, int <дата начала>, int <дата конца>, REP.EVERY*, {<фильтр>}, {bool <выражение>})

  • показатель – код переменной
  • дата начала - дата, от которой производится вычисление
  • дата конца - дата, до которой производится вычисление
  • REP.EVERY*- константа соответствующего шага периода
  • необязательный фильтр на справочники

Пример

F.MAXIMUM(A, 20140101, 20141231, rep.everymonth)

Возвращает максимальное месячное значение за 2014 год.

F.MAXIMUM(A, 20140101, 20141231, rep.everymonth, 'Сегмент' LIKE 'Малый*')

Возвращает максимальное месячное значение выбранного показателя за 2014 год со значением «Малый» по справочнику «Сегмент»

17. MINIMUM (функция MINIMUM)

Описание

Функция F.MINIMUM вычисляет максимальное значение за период в заданном шаге периода. Сначала функция суммирует данные в указанном шаге периода, а потом находит экстремум в диапазоне назначенных дат.

Синтаксис

F.MINIMUM(<показатель>, int <дата начала>, int <дата конца>, REP.EVERY*, {<фильтр>},{bool <выражение>})

  • показатель – код переменной
  • дата начала - дата, от которой производится вычисление
  • дата конца - дата, до которой производится вычисление
  • REP.EVERY*- константа соответствующего шага периода
  • необязательный фильтр на справочники

Пример

F.MINIMUM(A, 20140101, 20141231, rep.everymonth)

Возвращает минимальное месячное значение за 2014 год.

F.MINIMUM(A, 20140101, 20141231, rep.everymonth, 'Сегмент' LIKE 'Малый*')

Возвращает минимальное месячное значение выбранного показателя за 2014 год со значением «Малый» по справочнику «Сегмент»

F.MINIMUM(A, 20140101, 20141231, rep.everymonth, 'Сегмент' LIKE 'Малый*')

18. SQRT (функция SQRT)

Описание

Функция F.SQRT вычисляет квадратный корень из указанного выражения или значения показателя.

Синтаксис

F.SQRT(float <выражение>)

  • выражение – код переменной или выражение

Пример

F. SQRT(A)

Возвращает квадратный корень из значения Показателя

F. SQRT(64)

Возвращает значение 8

19. ROUND (функция ROUND)

Описание

Функция F.ROUND округляет значение десятичной части с указанной точностью. Если точность -отрицательное число, то округляется количество знаков целой части.

Синтаксис

F.ROUND(float <выражение>, int <точность>)

  • выражение – код переменной или выражение
  • точность – количество знаков округления (если точность - отрицательное число, то округляется количество знаков целой части)

Пример

F.ROUND(123.9994, 3)

Возвращает значение 123

F.ROUND(123.9995, 3)

Возвращает значение 124

F.ROUND(748.58, -1)

Возвращает значение 750.00

F.ROUND(748.58, -3)

Возвращает значение 1000

20. ROUNDDOWN (функция ROUNDDOWN)

Описание

Функция F.ROUNDDOWN округляет значение до ближайшего меньшего по модулю значения

Синтаксис

F.ROUNDDOWN(float <выражение>, int <точность>)

  • выражение – код переменной или выражение
  • точность – количество знаков после округления

Пример

F.ROUNDDOWN(3.14159, 3)

Возвращает округленное с недостатком до трех десятичных разрядов значение 3.141

F.ROUNDDOWN(76.9, 0)

Возвращает округленное с недостатком до ближайшего целого значение 76

F.ROUNDDOWN(-3.14159, 1)

Возвращает округленное с недостатком до одного десятичного разряда значение -3.1

F.ROUNDDOWN(31415.92654, -2)

Возвращает округленное с недостатком до двух десятичных разрядов слева от запятой значение 31400

21. FLOOR (функция FLOOR)

Описание

Функция F.FLOOR округляет число до кратного заданной точности с недостатком

Синтаксис

F.FLOOR(float <выражение>, float <точность>)

  • выражение – код переменной или выражение
  • точность – количество знаков, кратно которому производится округление

Пример

F.FLOOR(2.5, 1)

Возвращает округленное с недостатком до ближайшего числа, кратного 1, значение 2

F.FLOOR(-2.5, -2)

Возвращает округленное с недостатком до ближайшего числа, кратного -2, значение -2

F.FLOOR(-2.5, 2)

Возвращает ошибку, поскольку числа -2.5 и 2 имеют разные знаки

F.FLOOR(1.5, 0.1)

Возвращает округленное с недостатком до ближайшего числа, кратного 0.1, значение 1,5

F.FLOOR(0.234, 0.01)

Возвращает округленное с недостатком до ближайшего числа, кратного 0.01, значение 0.23

Функции для вычисления значений показателей

1. AVG (функция AVG)

Описание

Функция F.AVG вычисляет среднее значение переменной

Синтаксис

F.AVG(<показатель>, {int <смещение>,)

или

F.AVG(<показатель>, {int <смещение>, {int <дата начала>, int<дата конца>, REP.EVERY*, {int <смещение дат периода>}, {<фильтр>, {bool <выражение>} } }})

  • показатель – код переменной или выражение
  • смещение переменной по периоду для вычисления
  • дата начала - дата, от которой производится вычисление (по умолчанию используется период отчета)
  • дата конца - дата, до которой производится вычисление (по умолчанию используется период отчета).
  • REP.EVERY*- константа соответствующего шага периода (по умолчанию используется шаг периода отчета).
  • смещение дат периода - количество шагов периода для смещения данных расчета среднего значения по времени (по умолчанию значение равно нулю).
  • необязательный фильтр на справочники

Пример

F.AVG (А) или F.AVG(А, 1)

Возвращает сумму на текущий период от начального периода, деленную на количество периодов

F.AVG(А, 2)

Возвращает сумму и номер периода, которые увеличиваются по каждому второму периоду отчета, т.е. если задан период год с шагом периода в отчете «Месяц», то:

- для первого месяца получим сумму за Первый месяц/1

- для второго месяца получим сумму за Второй месяц/1

- для третьего месяца получим (сумму за Первый + Третий месяц)/2

- для четвертого месяца получим (сумму за Второй + Четвертый месяц)/2

- для пятого месяца получим (сумму за Первый + Третий + Пятый месяц)/3

- для шестого месяца получим (сумму за Второй + Четвертый + Шестой месяц)/3

и т.д.

F.AVG(А,12)

При параметрах отчета с шагом периода «Месяц» за период 2 года, среднее значение будет вычисляться для каждого месяца погодично, т.е.:

для первого месяца первого года получим Январь2010/1

для первого месяца второго года получим (Январь2010+Январь2011)/2

для второго месяца первого года получим Февраль2010/1

для второго месяца второго года получим (Февраль2010+Февраль2011)/2

F.AVG(A, 12, 20130101, 20141231, rep.everymonth, 12)

В данной функции определяется помесячное среднее значение переменной «А» с учетом значений за 2 указанных в функции года. Средний результат, полученный за 13-й и 14-й года, будет отображен в 15-м году. Для 2014 года среднее значение будет равно значению за 2013 год

F.AVG(A, 0, F.TODAY(0, rep.bystart), F.TODAY (0, rep.byend), rep.everymonth )

В данной функции определяется помесячное среднее значение переменной «А» за текущий период.

Для вычисления периода расчета среднего значения использована функция F.TODAY, рассмотренная выше.

При построении показателя с шагом «Квартал» будет вычисляться среднее помесячное значение показателя для каждого квартала периода отчета.

При построении показателя с шагом «Полугодие» будет вычисляться среднее помесячное значение показателя для каждого полугодия периода отчета

и т.д.

F.AVG(A, 0, F.TODAY (0, rep.bystart), F.TODAY (0, rep.byend), rep.everyday )

В данной функции определяется среднее для каждого месяца значение переменной «А» за период отчета с шагом месяц.

F.AVG(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 )

В данной функции по Показателю с шагом «Квартал» и периодом с 1 квартала 2015 по 4 квартал 2015 рассчитывает среднее квартальное значение по соответствующему кварталу за три предшествующих года, где:

А- переменная

4 - смещение шага суммирования для расчета среднего значения, т.е. суммироваться будут не все значения показателя А, а согласно указанному смещению (1 квартал 2012 года +1 квартал 2013 и 1кв. 2014). Полученное значение при расчете будет поделено на количество шагов суммирования (в данном случае количество первых кварталов = 3).

Функция F.DATE (1, 1, F.YEAR (F.REPORTDATE (rep.byend)) -3) - определяет дату начала для вычисления среднего значения. День и месяц заданы (1 января), а год вычисляем исходя из года даты окончания отчета и указанного смещения. В данном случае смещение «-3» = 2015 - 3= 2012.  

Аналогично вычисляем дату конца для вычисления среднего значения: задаем день и месяц (31 декабря), а год вычисляем от даты окончания отчета со смещением. В данном случае смещение «-1» = 2015 - 1= 2014.

rep.everyquarter - шаг вычисления среднего значения – Квартал

4 - смещение полученных данных в шаге вычисления среднего значения (на 4 периода вперед), т.е. значением за 1 кв. 2015 года будет результат - (1 кв.2012+1кв.2013+1кв.2014) /3

значением за 2 кв. 2015 года будет результат - (2 кв.2012+2кв.2013+2кв.2014) /3 и т.д.

Если количество шагов периода для смещения данных расчета среднего значения по времени не указывать, то полученный результат отобразится в 2014 году.

F.AVG(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)

В данной функции определяется дата отчета и ежемесячное среднее значение переменной «А» за 2 предыдущих года.

Среднее значение за 2011 и 2012 года будет отображено в 2013,

Среднее значение за 2012 и 2013 года будет отображено в 2014,

Среднее значение за 2013 и 2014 года, будет отображено в 2015 году

и т.д.

 

2. SUM (функция SUM)

Описание

Функция F.SUM вычисляет сумму показателя за период в заданном шаге периода

Синтаксис

F.SUM(<показатель>, int <дата начала>, int <дата конца>, REP.EVERY*, {<фильтр>},{bool <выражение>})

  • показатель – код переменной или выражение
  • дата начала - дата, от которой производится вычисление (по умолчанию используется период отчета)
  • дата конца - дата, до которой производится вычисление (по умолчанию используется период отчета).
  • REP.EVERY*- константа соответствующего шага периода (по умолчанию используется шаг периода отчета).
  • необязательный фильтр на справочники показателя

Пример

F.SUM(А, 20140101, 20141231, rep.everymonth)

Возвращает сумму месячных значений Показателя «А» за 2014 год.

F. SUM(А, 20140101, 20141231, rep.everymonth, 'фил' = 'Московский филиал')

Возвращает годовую сумму месячных значений Показателя «А» с аналитикой «Московский филиал» по справочнику «Филиалы» (код справочника «фил»)

F.SUM(А, F.TODAY (-1, rep.bystart), F.TODAY (0, rep.byend), rep.everymonth)

Возвращает сумму показателя A за период от начала предыдущего расчетного месяца до конца текущего расчетного месяца.

Для вычисления даты начала и даты конца используется функция F.TODAY со смещением

F.TODAY (-1, rep.bycurrent) -- при шаге отчета месяц текущая дата минус 1 месяц

F.TODAY (0, rep.byend) -- при шаге отчета месяц при расчете показателя на ноябрь --- конец ноября

F. SUM(A, F.REPORTDATE(rep.bystart), F.TODAY(0, rep.byend) , rep.everymonth )

Возвращает сумму за период нарастающим итогом.

F.REPORTDATE(rep.bystart) – возвращает дату начала отчета

F.TODAY(0, rep.byend) - возвращает дату столбца

За период с января по декабрь 2014 года сумма будет рассчитываться помесячно нарастающим итогом до текущего столбца отчета:

- за январь возвращается значение января,

- за февраль - январь+февраль,

- за март- январь+февраль+март

и т.д.

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 )

Возвращает сумму по показателю «A» за текущий период со смещением на год вперед.

При построении отчета за 2015 год с шагом «Квартал» отобразится сумма:

- в первом квартале 2015 года - за первый квартал 2014 года.

- во втором квартале 2015 года - за второй квартал 2014 годы

и т.д.

При построении отчета за 2015 год с шагом «Полугодие»

- в первом полугодии 2015 года отобразится сумма значений за первое полугодие 2014 года.

При построении отчета за 2015 год с шагом год отобразится сумма значений за 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.REPORTDATE (rep.byreport), rep.everyweek)

Возвращает нарастающий по неделям итог по каждому кварталу года отчета.

F. SUM(А, F.DATE (01, 01,F.YEAR(F.REPORTDATE(rep.byreport)) ), F.REPORTDATE(rep.byreport), rep.everyquarter )

Возвращает нарастающий поквартально итог по каждому году отчета.

3. SUMTAB (функция SUMTAB)

Описание

Функция F.SUMTAB вычисляет сумму показателя, расщепленного по справочнику

Синтаксис

F.SUMTAB(<показатель>, <справочник>)

  • показатель – код переменной или выражение
  • справочник – код справочника, по которому значениям которого производится расщепление при суммировании

Пример

F.SUMTAB(X, 'филиал')

Возвращает итоговую сумму переменной Х за отчетный период в шаге периода отчета с расщеплением по справочнику «филиал»

X - расчетный показатель, равный произведению двух базовых показателей А*В, каждый из которых имеет аналитику по справочнику 'филиал':

филиал A B
Филиал 1 1,00 7,00
Филиал 2 2,00 8,00
Филиал 3 3,00 9,00
ИТОГО: 6,00 24,00

Функция F.SUMTAB подсчитает итоговую сумму произведений А*В в разрезе справочника 'филиал' (как в табличном отчете) за период отчета:

F.SUMTAB (Х, 'фил') = 7+16+27=50

Функция F.SUM в этом случае подсчитает за указанный период сумму по показателю «А» и умножит ее на сумму по показателю «В» за этот период:

F.SUM (Х, 20140101, 20143112, rep.everymonth) = 6+24=30

4. COUNT (функция COUNT)

Описание

Функция F.COUNT вычисляет количество значений в показателе за период в заданном шаге периода

Синтаксис

F.COUNT(<показатель>, int <дата начала>, int <дата конца>, REP.EVERY*, {<фильтр>})

  • показатель – код переменной или выражение
  • дата начала - дата, от которой производится вычисление (по умолчанию используется период отчета)
  • дата конца - дата, до которой производится вычисление (по умолчанию используется период отчета)
  • REP.EVERY*- константа соответствующего шага периода (по умолчанию используется шаг периода отчета)
  • необязательный фильтр на справочники показателя

Пример

F.COUNT(А, 20140101, 20141231, rep.everymonth)

Возвращает количество записей показателя «А» за указанный период.

F.COUNT(А, F.TODAY (0, rep.bystart),  F.TODAY (0, rep.byend), rep.byreport)

Возвращает количество записей показателя «А» за указанный период

F.COUNT(А, 20140101, F.TODAY, rep.everymonth, 'фил' = 'Московский филиал' AND 'фил' = 'Тверь')

Возвращает количество записей показателя «А» по Московскому и Тверскому филиалам в шаге периода месяц за период начиная с 01 января 2014

5. ANALITCOUNT (функция ANALITCOUNT)

Описание

Функция F.ANALITCOUNT возвращает количество значений справочника показателя

Синтаксис

F.ANALITCOUNT(<показатель>, <справочник>)

  • показатель – код переменной
  • справочник – код справочника, по которому подсчитывается количество значений справочника в данных показателя

Пример

F.ANALITCOUNT (А, 'Сотрудники')

Возвращает количество сотрудников по Показателю «А» за период отчета.

6. PERIODNUMBER (функция PERIODNUMBER)

Описание

Функция F.PERIODNUMBER возвращает номер рассчитываемого в данный момент шага

Синтаксис

F.PERIODNUMBER(REP.BYREPORT | REP.BYCURRENT)

  • REP.BYCURRENT - возвращает номер шага в шаге периода рассчитываемого показателя,
  • REP.BYREPORT - возвращает номер шага в шаге периода отчета.

Пример

F.PERIODNUMBER(rep.byreport)

Для отчета за год с шагом периода квартал по расчетному показателю с шагом периода месяц будет возвращать последовательно 1, 2, 3, 4

F.PERIODNUMBER (rep.bycurrent)

Для отчета за год с шагом периода квартал по расчетному показателю с шагом периода месяц1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12

7. REPORTSTEP (функция REPORTSTEP)

Описание

Функция F.REPORTSTEP вычисляет возвращает одно из значений констант REP.EVERY*, которое соответствует текущему шагу периода показателя или отчета

Синтаксис

F.REPORTSTEP({<показатель>})

  • показатель – код переменной

Пример

f.if (F.REPORTSTEP(А) = rep.everymonth, 1, 2)

Возвращает для показателя «А» с шагом месяц - 1, для показателя с другим шагом - 2.

F.REPORTSTEP(А)

Возвращает шаг показателя «А»

день – 4

неделя – 5

месяц – 6,

квартал – 7

полугодие – 8

год – 9

F.REPORTSTEP

Возвращает шаг отчета (4 – 9)

8. PREVVALUE (функция PREVVALUE)

Описание

Функция F.PREVVALUE возвращает значение показателя, взятое в шаге периода показателя на заданное число шагов назад

Синтаксис

F.PREVVALUE(<показатель>, int <выражение>)

  • показатель – переменная, для которой возвращается значение за предыдущий период
  • выражение – количество шагов в шаге периода показателя;

Пример

F.PREVVALUE (А, 1)

Возвращает значение, равное переменной «A» за предыдущий период.

F.PREVVALUE (А, 2)

Возвращает значение, равное переменной «A» за период, предшествующий предыдущему.

9. PREVVALUETHIS (функция PREVVALUETHIS)

Описание

Функция F.PREVVALUETHIS возвращает значение текущего показателя, взятое в шаге периода показателя на заданное число шагов назад

Синтаксис

F.PREVVALUETHIS(int <выражение>)

  • выражение – количество шагов в шаге периода показателя;

Пример

А + F.PREVVALUETHIS (1)

Возвращает сумму значений показателя «A» за текущий и предыдущий период.

А + F.PREVVALUETHIS (2)

Возвращает сумму значений показателя «A» за текущий период и период, предшествующий предыдущему.

Данные функции появились в результате решения следующей задачи:

Есть два показателя, назовем их условно Х и У. 

Они имеют следующие формулы для расчета:

Х = ПредЗначение(У)/Z*K+M

У = ПредЗначение(У) + Х

где,

ПредЗначение - функция F.PREVVALUETHIS или PREVVALUE

 Z, K, M - другие не взаимосвязанные показатели.

Формулы показателей Х и У взаимозависимы, что приведет к зацикливанию плана расчета показателей и невозможности расчета. Для исключения этого ограничения воспользуемся математической подстановкой для показателя У:

У = ПредЗначение(У) + ПредЗначение(У)/Z*K+M

Соответственно формула расчета для показателя Х примет следующий вид:

Х = У - ПредЗначение(У)

Путем нехитрых подстановок мы получили формулы идентичные требуемым и избавились от проблемы зацикливания Показателей при расчете.

Функции для строковых значений

1. DATESTR (функция DATESTR)

Описание

Функция F.DATESTR возвращает строковое представление даты

Синтаксис

F.DATESTR(int <дата>, REP.EVERY*)

  • дата – дата, которую нужно преобразовать в строку
  • REP.EVERY*- константа соответствующего шага периода (по умолчанию используется шаг периода отчета).

Пример

F.DATESTR(20141231, rep.everysecond)

Возвращает '2014.12.31 00:00:00'

F.DATESTR(20141231, rep.everyminute)

Возвращает '2014.12.31 00:00'

F.DATESTR(20141231, rep.everyhour)

Возвращает '2014.12.31 00:00'

F.DATESTR(20141231, rep.everyday)

Возвращает '2014.12.31'

F.DATESTR(20141231, rep.everyweek)

Возвращает '2014 53 нед'

F.DATESTR(20141231, rep.everymonth)

Возвращает '2014.12'

F.DATESTR(20111231, rep.everyquarter) -- '2011 04 кв'

Возвращает '2014.12'

F.DATESTR(20111231, rep.everyhalf)

Возвращает '2011 02 пе'

F.DATESTR(20111231, rep.everyyear)

Возвращает '2011'

Пример применения функции

Рассмотрим показатель А, в котором 12 значений по справочнику "Период" за 2011 год от "2011.01; 2011 01 кв" до "2011.12; 2011 04 кв".

Допустим, данные этого показателя введены в апреле и помечены справочником "Период", как данные за февраль.

Тогда для того, чтобы отразить приход по показателю за прошлый период, напишем формулу для расчетного показателя:

F.SUM (А, F.REPORTDATE (rep.bystart), F.REPORTDATE (rep.byend), rep.byreport, 'Период' like ('*' + F.DATESTR (F.DATEADD (F.TODAY(0, rep.byend), -2, F.REPORTSTEP, rep.byend) , F.REPORTSTEP) + '*'))

Если график строится по расчетному показателю за 2011 год с шагом периода «Месяц», то приведение формулы для расчета каждого шага будет выглядеть так:

F.SUM(A, 20110101, 20111231, rep.everymonth, 'Период' like '*2010.11*'))

Возвращает 2011.01.01 - 2011.01.31

F.TODAY(0, rep.byend)

Возвращает 2011.01.31

F.DATEADD(2011.01.31, -2, rep.everymonth, rep.byend)

Отнимает 2 месяца и выравнивает дату на конец месяца - 2010.11.30

F.DATESTR(2010.11.30, rep.everymonth)

Возвращает ‘2010.11'

F.SUM(A, 20110101, 20111231, rep.everymonth, 'Период' like '*2010.12*'))

Возвращает 2011.02.01 - 2011.02.28

F.TODAY (0, rep.ByEnd)

Возвращает 2011.02.28

F.DATEADD (2011.01.31, -2, rep.everymonth, rep.byend)

Отнимает 2 месяца и выравнивает дату на конец месяца - 2010.12.31

F.DATESTR(2010.11.30, rep.everymonth)

Возвращает ‘2010.12'

F.SUM (A, 20110101, 20111231, rep.everymonth, 'Период' like '*2011.01*'))

Возвращает 2011.03.01 - 2011.03.31

F.SUM (A, 20110101, 20111231, rep.everymonth, 'Период' like '*2011.10*'))

Возвращает 2011.12.01 - 2011.12.31

 

При укрупнении того же показателя до шага периода «Квартал», приведение формулы будет выглядеть так:

F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Период' like '*2010 03 кв*')

Возвращает 2011.01.01 - 2011.03.31

F.TODAY (0, rep.byend)

Возвращает 2011.03.31

F.DATEADD(2011.03.31, -2, rep.everyquarter, rep.byend)

Отнимает 2 квартала и выравнивает на конец квартала - 2010.09.30

F.DATESTR(2010.09.30, rep.everyquarter)

Возвращает '2010 03 кв'

F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Период' like '*2010 04 кв*')

Возвращает 2011.04.01 - 2011.06.30

F.TODAY (0, rep.byend)

Возвращает 2011.06.30

F.DATEADD (2011.06.30, -2, rep.everyquarter, rep.byend)

Отнимает 2 квартала и выравнивает дату на конец квартала -- 2010.12.31

F.DATESTR(2010.12.31, rep.everyquarter)

Возвращает '2010 04 кв'

F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Период' like '*2011 01 кв*'))

Возвращает 2012.01.01 - 2011.03.31

F.SUM (A, 20110101, 20111231, rep.everyquarter, 'Период' like '*2011 02 кв*'))

Возвращает 2012.04.01 - 2011.06.30

2. STRINDEXOF (функция STRINDEXOF)

Описание

Функция F.STRINDEXOF возвращает индекс начала искомой строки (параметр 1), содержащейся в строке (параметр 2). Индексация строки начинается с единицы.

Синтаксис

F.STRINDEXOF(string <выражение1>, string <выражение2>)

  • Выражение1 – искомая строка
  • Выражение2 – строка, в которой производится поиск

Нельзя использовать в качестве следующие символы: %, _ , [ ] , ^

Пример

F.STRINDEXOF('(', '10 (100%)')

Возвращает значение 4

3. SUBSTR (функция SUBSTR)

Описание

Функция F.SUBSTR возвращает строку, содержащуюся в строке (параметр 1) от заданной позиции (параметр 2) до заданной длины (параметр 3)

Синтаксис

F.SUBSTR(string <выражение1>, int <выражение2>, int <выражение3>)

  • выражение1 –строка, из которой будет вырезаться строка
  • выражение2 – позиция, с которой производим вырезание строки
  • выражение3 – длина строки, которую хотим получить. 

          Нельзя использовать следующие символы: %, _ , [ ] , ^

Пример

F.SUBSTR('10 (100%)', 5, 3)

Возвращает значение 100

F.SUBSTR(Пушкин Александр Сергеевич'; 0 ; f.strindexof( ' ' ; Пушкин Александр Сергеевич))

Возвращает значение 'Пушкин'

4. STRUBSTR (функция STRUBSTR)

Описание

Функция F.STRUBSTR возвращает строку (параметр 1) до заданной строки (параметр 2)

Данная функция используется только в Мастере настройки сценариев импорта

Синтаксис

F.STRUBSTR (string <выражение1>, string <выражение2>)

  • выражение1 – строка, до которой производим вырезание
  • выражение2 – строка, из которой производим вырезание

          Нельзя использовать следующие символы: %, _ , [ ] , ^

Пример

F.STRUBSTR ( ',' , 'Тюмень, ул.Ленина 100' )

Возвращает значение Тюмень

5. STRFMTTMPL (функция STRFMTTMPL)

Описание

Функция F.STRFMTTMPL дополняет символами строку (параметр 2) до строки в заданном формате (параметр 1)

Данная функция используется только в Мастере настройки сценариев импорта

Синтаксис

F.STRFMTTMPL (string <выражение1>, string <выражение2>)

  • выражение1 – строка в заданном формат
  • выражение2 – строка для преобразования в заданный формат

          Нельзя использовать следующие символы: %, _ , [ ] , ^

Пример

F.STRFMTTMPL( '00000' , '123' )

Возвращает значение '00123'

6. SUBSTRBETW (функция SUBSTRBETW)

Описание

Функция F.SUBSTRBETW возвращает строку, содержащуюся в строке (параметр 1) между строкой (параметр 2) и строкой (параметр 3)

Данная функция используется только в Мастере настройки сценариев импорта

Синтаксис

F.SUBSTRBETW(string <выражение1>, string <выражение2>, string <выражение3>)

  • выражение1 – строка, от которой производим вырезание
  • выражение2 – строка, до которой производим вырезание;
  • выражение3 – строка, из которой производим вырезание
  • Нельзя использовать следующие символы: %, _ , [ ] , ^

Пример

F.SUBSTRBETW (',', ',', 'Тюмень, ул.Ленина 100, кв.99')

Возвращает значение 'ул.Ленина 100'

F.SUBSTRBETW ('ATM', ',', 'банкомат ATM2345, отделение №1')

Возвращает значение '2345'

Дополнительные Функции мастера настройки сценариев импорта

1. STR (функция STR)

Описание

Функция F.STR возвращает строковое представление числа

Синтаксис

F.STR(float <выражение>)

  • выражение – выражение, которое необходимо преобразовать в строку

2. STRDATE (функция STRDATE)

Описание

Функция F.STRDATE возвращает строковое представление даты.

Синтаксис

F.STRDATE(float <выражение>)

  • выражение - выражение, которое необходимо преобразовать в строку

3. LTRIM (функция LTRIM)

Описание

Функция F.LTRIM удаляет в строке пробелы слева

Синтаксис

F.LTRIM(string <выражение>)

  • выражение – строка, в которой необходимо обрезать пробелы слева

4. RTRIM (функция RTRIM)

Описание

Функция F.RTRIM удаляет в строке пробелы справа

Синтаксис

F.RTRIM (string <выражение>)

  • выражение – строка, в которой необходимо обрезать пробелы справа

5. TRIM (функция TRIM)

Описание

Функция F.TRIM удаляет в строке пробелы слева и справа

Синтаксис

F.TRIM(string <выражение>)

  • выражение – строка, в которой необходимо обрезать пробелы слева и справа

6. HI (функция HI)

Описание

Функция F.HI переводит значение строки в верхний регистр

Синтаксис

F. HI (string <выражение>)

  • выражение – строка, значения которой необходимо перевести в верхний регистр

7. LO (функция LO)

Описание

Функция F.LO переводит значение строки в нижний регистр

Синтаксис

F.LO (string <выражение>)

  • выражение – строка, значения которой необходимо перевести в нижний регистр

8. REPLACE (функция REPLACE)

Описание

Функция F.REPLACE заменяет в строке (параметр 1) первое значение (параметр 2) на второе значение (параметр 3)

Синтаксис

F.REPLACE(string < выражение1>, string < выражение2>, string < выражение3>)

  • выражение1 – строка, в которой происходит замена
  • выражение2 – заменяемая строка/значение
  • выражение3 – строка/значение, на которое производится замена

9. GROUPSUM (функция GROUPSUM)

Описание

Функция F.GROUPSUM осуществляет суммирование значений указанного числового поля по указанной группировке полей. Указание группировки полей является необязательным, в этом случае будет взята сумма по всему набору данных

Синтаксис

F.GROUPSUM(float <выражение>, { <аргумент1>, ..., <аргументN>})

  • выражение1 – числовое поле, значения которого суммируются
  • необязательный параметр группировки полей, по которой осуществляется суммирование

Пример

Для суммирования значений поля «Сумма» с группировкой по полям «Параметр1» и «Параметр2» функция будет иметь следующий вид:

Сумма

Параметр1

Параметр2

F.GROUPSUM (Сумма, Параметр1)

F.GROUPSUM (Сумма, Параметр1, Параметр2)

15

П1

П21

25

45

20

П1

П22

20

45

10

П1

П21

25

45

 

10. F.TSUM (функция TSUM)

Описание

Функция F.TSUM осуществляет суммирование значений указанного числового поля по указанному условию. Указание условия не является необязательным, в этом случае будет взята сумма всех значений перечисленных полей.

Синтаксис

F.TSUM(float <выражение>{,float <выражение1>, ..., float <выражениеN>})

  • выражение - числовое поле, значения которого суммируются или формула по которой производится расчет числа для суммирования

Пример

Для суммирования:

- значений поля «А» (4),

- значений полей «А» и «В» (5)

- значений поля «А», параметр которого «П1» (6)

А

B

Параметр

F. TSUM (A)

F. TSUM (A, B)

F. SUM ( F.IF (Параметр = 'П1' , А, 0)

1 2 3 4 5 6

15,00

1,00

П1

45,00

51,00

25,00

20,00

2,00

П

45,00

51,00

25,00

10,00

3,00

П1

45,00

51,00

25,00

 

11. F.DIST (функция DIST)

Описание

Функция F.DIST распределения с указанной точностью (параметр 1) для заданной суммы (параметр 2) по значению веса (параметр 3)

Синтаксис

F.DIST (int <выражение1>, float <выражение2>, float <выражение3>)

  • выражение1 – целое число от 0 до 16 - количество знаков после запятой для дельты (погрешности) между значением параметра 2 и суммой произведения параметра 3 (коэффициент распределения для строки данных) на значение параметра 2 (общая сумма для всех строк данных
  • выражение2 – число или параметр (переменная), задающие общее число (сумму) к распределению
  • выражение3 – переменная или формула, по которой рассчитывается коэффициент для строки данных

Пример

В вычислимом поле (4) рассчитывается доля кол-ва сотрудников каждого отдела (1) в общем количестве сотрудников компании (3).

Сумма всех значений столбца (4) должна быть равна 1, но из-за большого количества строк со значениями и малыми суммами (1) из-за округлений мы можем получить сумму не равную 1.

Необходимо вычислить дельту между 1 и полученной суммой (4) и распределить ее пропорционально на каждое построчное значение (4).

 

А

Параметр

F. TSUM (A)

А/B

F.DIST(5, 1, А/B )

  1 2 3 4 5

 

20,00

Отдел 1

11 565,00

0,00177746178…

0,00177746178…

 

5,00

Отдел 2

11 565,00

0,00044436544…

0,00044436544…

 

Отдел N

11 565,00

Сумма

11 565,00

 

 

0,99….

1,00000

 
Функция F.DIST(5, 1, А/B ) вычислит сумму значений А/B сравнит ее с 1 и недостающую разницу пропорционально распределит по строкам (5). Сумму значений (5) сравнит с 1. Если полученная сумма (5) с точностью 5 знаков после запятой не достигнет нужной 1, то вычислит разницу и снова пропорционально распределит ее построчно. И т.д. пока полученная сумма значений (5) не будет равна 1
 

Параметры

REP.BYREPORT

– шаг периода отчета

REP.EVERYWEEK

– шаг периода неделя

REP.EVERYMONTH

– шаг периода месяц

REP.EVERYMINUTE

– шаг периода минута

REP.BYSTART

– начало периода

REP.EVERYQUARTER

– шаг периода квартал

REP.EVERYHALF

– шаг периода полугодие

REP.BYEND

– конец периода

REP.EVERYYEAR

– шаг периода год

REP.EVERYHOUR

– шаг периода час

REP.UNKNOWN

– неизвестный шаг периода

REP.EVERYSECOND

– шаг периода секунда

REP.EVERYDAY

– шаг периода день

REP.BYCURRENT

– текущий шаг периода

Звонок с сайта
Пожалуйста, ведите номер Вашего телефона
В формате 8XXXXXXXXXX