反馈已提交

网络繁忙

您正在浏览的是 FineBI7.X 帮助文档,点击跳转至: FineBI6.X帮助文档

ADD_DIM(引用维度+指定维度)

  • 文档创建者:April陶
  • 历史版本:17
  • 最近更新:April陶 于 2025-08-04
  • 1. 概述

    1.1 版本

    FineBI版本
    功能变动
    7.0-

    1.2 函数简介

    函数返回指定视图与函数声明中的关联维度集合,支持绑定动态维度机制。

    语法
    ADD_DIM(维度字段1,维度字段2...)

    返回指定视图与函数声明中的全部维

    指定视图定义: 

    • 使用在 DEF 维度参数中,指定为外部视图

    • 使用在其他场景下,指定为当前所在视图

    参数维度字段1,维度字段2...

    支持书写多个维度表达式,表达式之间通过“,”进行区分

    参数可以为空,为空则输出指定视图的全部维度 

    1.3 注意事项

    应用范围:指标中心、组件(不包括明细表)

    函数范围:函数需要配合 def/window/field_in 使用;不支持在 def_add/def_sub 的维度参数中使用。

    维度范围:引用函数中可以声明任何维度表达式

    匹配规则:遵循「字段ID」一致的规则,即同一个字段即可匹配上。字段设置了「自定义分组」或「时间分组」也能匹配。

    1.4 视图概念

    视图不是物理存储的数据表,而是通过 SQL 查询、数据模型或业务规则定义的 “虚拟表”。它动态映射底层数据源(如数据库表、 Excel 文件等),仅保存查询逻辑而非数据本身。为可视化分析提供可直接调用的标准化业务语义数据表。

    视图与物理表的对比:

    特性
    视图物理表
    存储方式仅保存查询逻辑,动态生成数据实际存储数据
    更新频率实时/定时刷新静态,需手动导入 BI 或 ETL
    灵活性易修改,不影响底层数据修改需重建表或迁移数据
    性能依赖底层查询优化直接读取,通常更快


    「1.2 函数简介」中提到的视图为计算视图,可以理解为计算中生成的虚拟结果表。我们目前有三种视图:

    • 明细视图:可以理解为新增列计算场景,计算后结果粒度与明细表相同



    • DEF视图:由 def 函数构造出来的独立视图,计算后结果粒度与 def 中声明的维度一致

    例如,求 1 月各地区下部门的成本额 = DEF(SUM_AGG(成本),[地区,部门],[月份="2025-01"]

    FineBI 无法直接查看 DEF 计算视图,虚拟表效果如下:


    • 分析视图:根据分析区汇总计算后的视图,计算后结果粒度与分析区的维度一致

    组件中除了「明细表」其他图表都是构建的分析视图。


    如何理解当前视图和外部视图?

    • 字段计算/分析所在的视图,为当前视图。

    • 使用字段再次参与计算/分析的视图,为外部视图。(相当于字段血缘的子节点)

    例如,动态销售额=DEF(SUM_AGG(销售额),[ADD_DIM()])

    ADD_DIM() 所在的当前视图为「动态销售额DEF视图」

    把「动态销售额」,放入分组表中,外部视图=分析视图

    把「动态销售额」,放入 DEF 中计算25年门店销售额=DEF(SUM_AGG(动态销售额),[门店],[年=2025]),外部视图=25年门店销售额DEF视图


    2. 示例

    2.1 动态层级成本分析

    如何在企业用「一份数据模型」适应不同分析层级的成本展示需求,无需切换数据源或计算字段。查看从公司到个人层级的成本情况?

    用户角色分析需求关注指标
    CFO/财务总监/部门经理

    查看公司各区域、部门的人力成本情况

    公司成本 
    = 员工薪资及福利 + 办公场地租赁 + 设备折旧等
    人力资源分析师查看每员工的个人成本,分析个人效益比个人成本
    = 员工个人的薪资及福利


    实现思路:

    配合 FIELD_IN() 函数动态判断计算视图是否引入了某维度。指标字段用在组件(分析视图)中,则依据分析区维度进行成本计算。

    设置钻取目录,逐层钻取指标时,维度也在不断变化,如果维度是「员工姓名」,则计算时使用「个人成本」,否则使用「公司成本」。

    成本额=IF(FIELD_IN(ADD_DIM(), [员工姓名]), 个人成本, 公司成本)

    详情请参见文档:动态层级维度成本分析

    注:因为合计行的合计方式是「自动」,因此不依赖「员工姓名」,按月份和钻取分组求合计,所以是展示「公司成本」。

    2.2 动态为WINDOW/DEF引入分析区字段 

    前置条件:为保证外部视图是组件分析区,需下方输出的计算字段外面没再嵌套 DEF 函数。

    2.2.1 WINDOW函数

    应用场景

    WINDOW 无法动态查看不同维度的累计销售额

    运用 ADD_DIM 函数后,无需调整计算字段,只需更换维度,即可查看相应的累计销售额。

    实现思路                                     

    累计销售额=WINDOW_SUM(SUM_AGG(销售额),[ADD_DIM()],[SUM_AGG(销售额),"asc"],["first",0])

    操作步骤

    IT在指标中心和数据目录里开发和管理该字段:

    1)点击「指标中心」,新建模型,添加资源。具体操作步骤见文档:模型管理概述

    2)添加指标「累计销售额」,如下图所示:

    计算字段:累计销售额=WINDOW_SUM(SUM_AGG(销售额),[ADD_DIM()],[SUM_AGG(销售额),"asc"],["first",0])

    具体操作步骤见文档:指标管理概述

    3)添加维度「大类」「产品名称」「省份」「城市」,具体操作步骤见文档:维度管理概述

    4)添加指标集,包含指标「总销售额」、维度「大类」「产品名称」「省份」「城市」,并「发布」到数据目录,如下图所示:

    具体操作步骤见文档:指标集概述

    5)点击「数据目录」,创建分析主题,如下图所示:

    效果预览

    IT在指标中心和数据目录里开发和管理该字段后,其他企业用户直接使用指标集做分析即可

    「省份」「城市」「总销售额」拖入分析区,完成分析。如下图所示:

    维度切换:例如切换「省份」「城市」为「大类」「产品名称」,会自动展示每个产品的总销售额,如下图所示:

    2.2.2 DEF函数

    组件存在计算字段,动态销售额=DEF(SUM_AGG(销售额),[ADD_DIM()])

    ADD_DIM() 从外部视图上找字段

    • 动态销售额放置到分析区,外部为分析视图:动态销售额 = DEF(SUM_AGG(销售额),[分析区的维度字段]) = DEF_ADD(SUM_AGG(销售额),[])

    • 动态销售额作为聚合指标,放到新的「公式A」中进行DEF计算,外部视图「公式A」动态销售额=DEF(SUM_AGG(销售额),[公式A 的DEF视图维度参数内字段])

    附件列表


    主题: 进阶学习
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持