快速计算函数

  • 文档创建者:doreen0813
  • 编辑次数:22次
  • 最近更新:Roxy 于 2020-12-04
  • 1. 概述

    1.1 版本

              FineBI版本        JAR 包功能变动
    5.1  --
    5.1.72020-11-05函数释义优化&明确函数参数合法性

    1.2 应用范围

    组件编辑界面:添加计算字段

    1.3 功能简介

    • 快速计算函数用于对 聚合函数 计算后结果的再进行计算,参数均需添加聚合函数或者聚合指标,否则公式会报错。

    • 当将包含聚合函数的计算指标添加到组件的指标栏后,随着用户分析维度的切换,计算字段数据会自动跟随维度动态调整。

    • 快速计算包括「期末、同期、环期、跨行累计、跨行排名、跨行汇总」。

    2. PERIOD_ANLS-上期末

    1)概念

    语法
    period_anls(x_agg(array), datepart)根据横纵轴或行列维度添加的日期字段进行上期末的计算。
    参数1x_agg(array)

    第一个参数为用于计算的指标,该指标必须为聚合函数或聚合指标。

    参数2datepart第二个参数用于配置计算的上期末为上年期末或者上月期末。横纵轴拖拽的字段不满足函数的计算要求时,该指标会标红。

    横纵轴拖拽的字段不满足函数的计算要求时,该指标会标红。

    2)示例

    计算上年期末,需要将日期字段「合同签约时间」的分组改为年月,「期末」字段的公式为period_anls(SUM_AGG(合同金额), "Y")

    如此 2014 年对应的期末数据为 2013-12 的合同金额。

    35.png

    计算上月期末,需要将日期字段「合同签约时间」的分组改为年月日,「上月期末」字段的公式为period_anls(SUM_AGG(合同金额), "M")

    如此 2014-07 对应的期末数据为 2014-06-30 的合同金额。

    36.png

    3. SAME_PERIOD-同期

    same_period(x_agg(array), datepart):根据横纵轴或行列维度添加的日期字段进行同期值的计算。

    第一个参数为用于计算的指标,该指标必须为聚合函数或聚合指标。

    第二个参数用于配置计算同期时计算某日的年同期或者某日的月同期。横纵轴拖拽的字段不满足函数的计算要求时,该指标会标红。

    函数说明:

    same_period(sum_agg(amount),"Y") 用户横纵轴拖拽销售日期(年月日分组),则该指标计算结果为,根据年月日对销量进行分组汇总,然后计算出该日数据上年同日的销量;如果参数 2 为“M”,则计算结果为该日销量上月同日的销量。

    示例:

    使用如下公式,可以求出同期数据。

    29.png

    4. PREVIOUS_PERIOD-环期

    previous_period(x_agg(array)):根据横纵轴或行列维度添加的日期字段进行环期值的计算。

    参数为用于计算的指标,该指标必须为聚合函数或聚合指标。横纵轴拖拽的字段不满足函数的计算要求时,该指标会标红。

    函数说明:

    previous_period(sum_agg(amount)):用户横纵轴拖拽的销售日期(年月日分组),则该指标计算结果为,根据年月日对销量进行分组汇总,然后计算出该日数据上一日的销量。

    示例:

    使用如下图公式,求出环期数据。

    30.png

    5. ACC_SUM-累计

    1)概念

    ACC_SUM(x_agg(array),range):根据横纵轴或行列维度添加的字段对指标进行跨行累计的计算。

    第一个参数为用户计算的指标,该指标必须为 聚合函数 或聚合指标。

    第二个参数range为用户设置计算的范围,0 为对所有行进行累计,1 为对组内所有行进行累计。

    2)示例

    示例数据:股票买卖数据.xlsx

    已知每日的买入和卖出股票数,需要统计每月剩余股票数。

    将「日期」拖入维度栏,并设置为年月格式,将「买入」和「卖出」拖入指标栏,如下图所示:

    1605690036189955.png

    添加计算字段,命名为「累计剩余股票数」,输入公式:ACC_SUM(SUM_AGG(买入-卖出),0),点击「确定」,如下图所示:

    1605688816864035.png

    公式说明:

    公式
    说明
    SUM_AGG(买入-卖出)对每日买入-卖出差按照年月维度求和汇总
    ACC_SUM(SUM_AGG(买入-卖出),0)对每月的买入卖出差所有进行从上到下累加

    可以看到 2016-01 的累计值=(4419-4888)+(6905-4343)=2093,如下图所示:

    1605689551827000.png

    6. RANK_ANLS-排名

    rank_anls(x_agg(array), range, order):根据横纵轴或行列维度添加的字段对指标进行跨行排名的计算。

    第一个参数为用户计算的指标,该指标必须为聚合函数或聚合指标。

    第二个参数range为用户设置计算的范围,0为对所有行进行排名,1为对组内所有行进行排名。

    第三个参数order为排名的计算规则,"asc"为升序排名,"desc"为降序排名。

    函数说明:

    rank_anls(sum_agg(amount),0,"asc")用户横轴轴拖拽省份,则该指标计算结果为,根据省份对销量进行分组汇总,然后计算每个省份的销量在所有省份中的升序排名情况。

    示例:

    对合同金额求排名,如下图所示;

    1607053233811995.png

    7. TOTAL-汇总

    total(x_agg(array), range, agg):根据横纵轴或行列维度添加的字段对指标进行跨行汇总的计算。

    第一个参数为用户计算的指标,该指标必须为聚合函数或聚合指标。

    第二个参数range为用户设置计算的范围,0为对所有行进行汇总,1为对组内所有行进行汇总。

    第三个参数agg为汇总的计算规则,"sum"为求和;"avg"为求平均,"max"为求最大值,"min"为求最小值

    公式说明:

    total(sum_agg(array),0,"avg")用户横纵轴拖拽省份,则该指标计算结果为,根据省份对销量进行分组汇总,然后对所有省份的销量汇总并求平均

    示例:

    1)计算每年不同合同类型的合同金额的汇总值,如下图所示:

    1599795339422440.png

    2)继续进行组内占比计算,计算同一年内不同合同类型的合同金额的占比:SUM_AGG(合同金额)/TOTAL(SUM_AGG(合同金额),1,'sum'),如下图所示:

    1599795915678258.png

    公式说明:

    公式说明
    SUM_AGG(合同金额)按照年份和合同类型进行汇总的合同金额
    TOTAL(SUM_AGG(合同金额),1,'sum')计算同一年所有合同类型的合同金额汇总值

    3)计算组内累计占比, 输入公式:ACC_SUM(SUM_AGG(合同金额),1)/TOTAL(SUM_AGG(合同金额),1,'sum'),如下图所示:

    1607063856146248.png

    公式说明:

    公式
    说明
    ACC_SUM(SUM_AGG(合同金额),1)计算同一年内不同合同类型的合同金额累计值
    TOTAL(SUM_AGG(合同金额),1,'sum')计算同一年的合同金额汇总值
    ACC_SUM(SUM_AGG(合同金额),1)/TOTAL(SUM_AGG(合同金额),1,'sum')累计值/汇总值

    8. PERIOD_TD

    PERIOD_TD(number,datepart):根据横纵轴或行列维度添加的日期字段进行累计同比值(截至今年某月累计值相较于去年某月累计值的同比)、累计环比值(截至当月某日相较于上月某日的环比)的计算。

    注:不支持在抽取数据中使用。

    第一个参数为用于计算的指标,该指标必须为聚合函数或聚合指标。

    第二个参数用于配置求计算累计同比还是累计环比,累计同比对应参数datepart为Y,累计环比对应参数datepart为M,累计同比需要分别拖入年、年月字段;累计环比需要分别拖入年月、年月日字段。

    附件列表


    主题: 数据分析进阶
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!