tencent cloud

腾讯云 BI

产品简介
产品概述
产品优势
产品功能
应用场景
购买指南
计费说明
购买指引
升配说明
续费说明
快速入门
数据接入
创建 VPC 数据源
创建云数据源
创建自有数据源
数据建表和数据加工
数据分析基础知识介绍
数据建表
数据加工
数据分析
分析设置
交互分析
即席分析
数据可视化
公共样式设置说明
筛选组件
图表组件
富文本组件
其他组件
移动端布局编辑器
主题设置介绍
页面布局介绍
看板目录管理
协作及应用
推送渠道管理
报表推送
分享
嵌出
自助取数
指标告警
数据安全
参数构建
平台管理
账号及权限管理
统计及分析
系统设置
资源迁移
实践教程
优化实践合集
如何做趋势分析
如何做占比分析
如何使用 Excel 文件分析数据
如何做表格
常见问题
相关协议
服务等级协议
隐私协议
数据处理和安全协议
联系我们

变量

PDF
聚焦模式
字号
最后更新时间: 2025-09-19 15:14:22
在业务场景中,需要将一个分析结果放到文本组件中(如日报场景)或者将数据提点放到组件标题中(如提炼当前统计周期的最佳员工名称),通过变量,用户可以在组件中引用数据分析结果。

腾讯云 BI 支持三种作用域变量,分别为:
页面变量:作用域为当前页面,在其他页面引用不生效;是主要的使用类型;
项目变量:作用域为当前项目里的任何页面,在其他项目引用不生效;主要用于定义项目共用信息,如项目的成功指标。
系统变量:作用域为当前整个组织的所有页面,主要用于定义团队共用信息,如获取用户名称用于水印展示场景等。

版本支持:基础版、专业版。

本文介绍以下操作(本文以页面变量为例):
创建变量
引用变量
联动变量
变量结果格式化
语法说明


创建变量

创建变量需要如下步骤:
1. 入口:进入控制台 > 页面 > 编辑 > 变量


2. 定义变量信息:



单击“+新增”来增加一个变量;
输入引用名:新变量引用名“emp_total”用来统计员工总数;引用名称是最重要的参数,必须英文及下划线格式,在变量调用时,通过该名称进行引用;为了便于编辑时分辨,用户也可以自定义变量名称,但是引用时,依然要求使用引用名;
取值方式:变量值的获取方式,可以选择输入一个静态值,最常用的还是通过“快捷分析”来获取。
3. 设置变量取值
通过“快捷分析”,可以取得图表分析的结果,操作同图表编辑。下面以“获取当前员工数量”为例:



3.1 选择数据表:选择变量的来源数据表“BI 测试数据”;
3.2 选择需要分析的字段:
本例中获取员工数,可通过统计员工“名称”的计数来获得。
将“名称”字段拖放到指标分析框中。
选择聚合 > 去重计数,获得员工总数。
3.3 立即分析:单击立即分析,获得数据结果,可以表格或者 json 的格式展示结果;



注意:
默认变量数据结果会取第一行的第1列,如果用户更换了数据表或者之前修改过“结果格式化”,可能导致变量出错,这时候可以切换到“结果格式化”页签,确认是否行列是正确的;用户可以自己对结果进行格式化,详见 变量结果处理

引用变量

变量将可以用在多种场景,如在文本组件中插入变量、在图表标题中插入变量等。变量的引用使用双花括号包裹,如“{{emp_total}}”。
1. 在标题中插入变量
1.1 打开页面 > 编辑组件 > 设置组件标题




1.2 插入变量:在样式面板里,找到标题设置,在标题需要展示的位置,输入变量引用名“{{emp_total}}”;
1.3 保存后查看变量解析结果。
2. 在文本组件中插入变量
2.1 在画布中创建文本组件;
2.2 输入文本内容,在需要替换的部分,插入变量 > 选择页面变量“{{emp_total}}”:



2.3 或者直接用花括号替换变量部分内容,如“{{emp_total}}”;
2.4 保存设置,查看变量是否被解析;对文本进行样式设置,如加粗等:



注意:
如变量解析失败,则呈现为文本,如“{{emp_total}}”;
如对变量部分进行样式设置,请务必选择一个完整的变量引用体,如“{{emp_toatal}}”,切不可选择“{{emp”,否则变量无法解析。

联动变量

在有筛选器的场景下,我们经常有需要根据筛选器的结果来分析变量的场景,如筛选出了部门为“测试组”,期望展示“测试组”的员工数,而不是所有部门的员工数,这时候我们需要使用到筛选器联动变量功能。



1. 创建筛选器,用于选择部门;
2. 设置筛选器联动变量:选择联动变量“emp_total”,以“部门”字段为条件关联;
3. 保存,选择部门“前端开发组”,可见“emp_total”会展示动态的数据值。




变量结果处理

通过快捷分析处理后,我们将得到一个“表格”结果(response),通过指定行列可以取出“表格”里的数据值,原理如下图所示:



通过结果格式化,我们还可以设置结果返回的数据和格式:



入口:单击结果格式化进入格式化编辑,默认获取第一行的第一列;
格式化编辑区:主要的操作区域,可输入格式化函数,对结果进行处理;
参考函数区:系统提供了常用的操作函数,用户可现将光标定位在编辑器里的文本位置,然后单击函数,插入到光标位置;
结果输出区:用户可单击预览,在结果输出区查看当前输出的数据结果。

下面,将从几个常用场景,描述变量的结果格式化方法:
获取某一个单元格数据(如获取业绩最好的员工的业绩值)
文本格式化(如获取员工的姓)
数值格式化(如将数值展示为2位小数)
时间格式化(如日历里只展示当月天)
循环处理(如生成部门排名列表)
判断处理(如环比值低于0的标红)

1. 获取某一个单元格数据
最终效果:



操作步骤:
画布中添加一个文本组件:设置对应的样式,其中数值部分用变量引用“{{emp_max}}”;



添加变量:打开变量面板,新增一个“emp_max”页面变量,设置维度和指标;其中“产值”降序排列,方便获取排名第三的行;



结果格式化:打开结果格式化面板,获取第三行的“index_key_H_1”列(即员工产值列):



单击预览,查看结果为第三行的产值列的值。

2. 文本格式化(如获取员工的姓)
最终效果:



操作步骤:
画布中添加一个文本组件:设置对应的样式,其中数值部分用变量引用“{{emp_name}}”;
添加变量:打开变量面板,新增一个“emp_name”页面变量,设置维度和指标;其中产值进行倒序排列,以便获取产值最高的员工;



结果格式化:打开结果格式化面板,先通过 "response[0]['dim_key_A_1']"获得员工名称,在该值后面插入 格式化函数 “substrFunc”, 获取从第一个字母开始,取1个字(即姓);



单击预览,查看结果值;
在文本组件里,引用变量后,添加隐藏名字符号,如下:




3. 
数值格式化(如将数值展示为2位小数)

最终效果:



操作步骤:
画布中添加一个文本组件:设置对应的样式,其中数值部分用变量引用“{{emp_max}}”;
添加变量:打开变量面板,新增一个“emp_max”页面变量,设置维度和指标;其中产值进行倒序排列,以便获取产值最高的员工;



结果格式化:打开结果格式化面板,通过 "response[0]['index_key_H_1']"获得员工的产值(此时产值为7236000);
在文本组件里,引用变量,通过如下结果格式化,得到以万为单位的2位小数格式:



以上步骤也可以在变量编辑的结果格式化里进行,此处演示在引用时格式化,结果是一样的。

4. 时间格式化(如日历里只展示“月天”)
最终效果:



操作步骤:
画布中添加一个文本组件:设置对应的样式;
添加变量:打开变量面板,新增一个“income_day”页面变量,设置维度和指标;其中产值进行倒序排列,以便获取产值最高的日期;



结果格式化:打开结果格式化面板,如下编辑格式;



在文本组件里,引用变量“{{income_day}}”,查看效果。

5. 循环处理(如生成部门排名表)
最终效果:



操作步骤:
画布中添加一个文本组件:设置对应的样式;
添加变量:打开变量面板,新增一个“dpts”页面变量,设置维度和指标;其中产值进行倒序排列,以便获取部门排名;



结果格式化:打开结果格式化面板,如下编辑格式;



上图中,通过 map 函数对所有行进行循环遍历,每行的结果获取后,通过 join 将结果转化成文本,以便在引用时展示。
在文本组件里,引用变量“{{dpts}}”,查看效果。

6. 判断处理(如环比值低于0的标红)
最终效果:



操作步骤:
画布中添加一个文本组件:设置对应的样式;
添加变量:打开变量面板,新增一个“income_dep”页面变量,设置维度和指标;



上图中,设置了指标为员工产值,产值的日环比,其中日环比将用于判断当日对比上一日是否有所升降。

结果格式化:打开结果格式化面板,如下编辑格式;



上图中:
通过 map 函数对所有行进行循环遍历
每行的结果获取后,对“日环比”列值进行格式化,处理成2位小数的百分比格式;
设置一个 color 变量,用于对日环比颜色标注;根据“日环比”是否大于0,分别给 color 赋值;
返回每一行的文本,此处生成了每一日的值和环比值,其中使用了 html 元素“<span style=''></span>”对环比值进行修饰;
通过 join 将结果转化成文本,以便在引用时展示。
在文本组件里,引用变量“{{income_dep}}”,查看效果。
说明:
变量的结果格式化,除了在变量编辑时可以设置,也可以在引用时格式化,如前面介绍的 数值格式化 示例部分即是在文本组件引用变量时进行格式化,使用方法和效果是一致的。
具体在变量里格式化,还是在引用时格式化,可参考如下:
如果格式化很复杂的场景,如上面介绍的循环及判断,建议直接在变量编辑里格式化;
如果格式化不复杂,且只是取不同行列的值,则建议在引用时格式化。

下面举例在引用时格式化场景。
目标:在三个卡片里分别展示 最佳员工名称、所属部门、产值;
效果:



步骤:
在画布中,分别添加三个文本,并设置样式;
添加变量:打开变量面板,新增一个“good_emp”页面变量,设置维度和指标;其中产值设置为倒序排列,结果取1条;



结果格式化:打开结果格式化面板,获取结果的第一行(注意,这里是获取整行,而不是行列);



分给在文本组件中插入变量,并在变量格式里引用不同的数据列名称:





上图,分别获取了结果里不同列的值,如最佳员工取了“员工名称”列,最佳员工产值则取了“员工产值”列。

语法说明

腾讯云 BI 使用模板语言进行变量的获取和处理,语法基本和JS一致。
1. 获取分析结果
response 为原始数据结果,用户可以通过二维数组获取方式获取行列值:
{{response[x][y]}}
获取行:代码中的“x”代表行序号,从0开始,0代表第一行。
获取列:代码中的“y”代表列 key,该 key 可以从表头中查看(该值为 string,需要单引号包起来),如下:


以“按照产值倒序,获取第三名员工产值”为例,可如下:
{{response[2]['key_G']}}
以上代码将获取到结果为“114000”。
2. 语法逻辑
2.1 逻辑计算:
//数学运算:支持js的数学运算符
{{a+b}}

//逻辑运算
{{ a || b}}

//if...else
{{if a>b }} 输出结果1 {{/if}}
{{if a>b }} 输出结果1 {{else if a>2*b}} 输出结果2 {{/if}}

// 三元运算
{{ a>b ? '输出结果1':'输出结果2'}}

// 循环,下例取出所有员工名称(response为整个表)
{{each response}}
第{{$index+1}}名:{{$value['key_A']}}
{{/each}}

// 循环还可以用内置的模板处理
{{ response.map((item) => {
return `<span style="color:red">${item['Key_A']}</span>`
})}}

2.2 使用内置格式化方法
腾讯云 BI 内置了部分标准函数,可以对结果进行快速的格式化,如对数值进行千分位处理等,目前腾讯云 BI 内置了以下格式化方法(详见产品界面):
// 百分号处理方法 percentageFunc
// 格式:{{percentageFunc A B C}},A表示小数位(默认2位),B表示千分位(默认不开启千分位),C表示进位方式(roundFive:四舍五入;roundUp:向上取整,roundDown:向下取整)
{{ response[0]['key_A'] | percentageFunc}}
{{ response[0]['key_A'] | percentageFunc 3 true 'roundFive'}}

//千分位处理方法 thousandsNumberFunc
// 格式:{{thousandsNumberFunc}}
{{ response[0]['key_A'] | thousandsNumberFunc}}

//日期处理方法 dateFormatFunc
// 格式:{{dateFormatFunc A}}, A为时间格式,默认'yyyy-MM-dd'
{{ response[0]['key_A'] | dateFormatFunc 'MM'}}
2.3 使用 js 语法
除了内置的格式化方法,腾讯云 BI 支持使用 js 语法处理数据结果,例如 string.substring() 方法,如下例通过 substring 方法获取月份。
//设置临时变量temp
{{set temp = response[0]['key_A'].substring(5,7)}}
//如果10月以下去掉前面的0并展示月份
{{temp >= 10 ? temp : temp.substring(1) }}月


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈