腾讯云 BI 变量

在业务场景中,需要将一个分析结果放到文本组件中(如日报场景)或者将数据提点放到组件标题中(如提炼当前统计周期的最佳员工名称),通过变量,用户可以在组件中引用数据分析结果。

相关产品
腾讯云 BI 产品页,含版本规格、价格与购买入口。

腾讯云 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 保存设置,查看变量是否被解析;对文本进行样式设置,如加粗等:

三、联动变量

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

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) }}月

赞 (0)
上一篇 4天前
下一篇 4天前