1. 概述
1.1 函数作用
有时用户希望能直接在数据集中取出满足条件的行列数据,不必再将数据集字段拖拽到单元格后添加过滤条件取数,此时可以使用 value 函数。
1.2 函数解释
value 函数有多种写法,不同的参数组合对应不同的取数规则。
最简形式为:Value (设计器中的数据集名称,数据集列号)
例如:
=value("ds1",3) 取 ds1 数据集中第 3 列的数据,返回一个数组。
语法:
语法 | VALUE(tableData,col) | 返回tableData中列号为col的一列值。 |
---|---|---|
参数1 | tableData | 必填 表示数据集名称,注意是「报表数据集」或者是「服务器数据集」名,而非数据库中的表名。 |
参数2 | col | 必填 列序号,整型; |
1.3 注意事项
value 函数参数设定有多种形式,可以直接在函数中输入,也可以引用单元格和模板参数。
例如:
value("ds1",1,2) 取 ds1 数据集中第 1 列第 2 行的数据。
value("ds1",A1,A2) 取 ds1 数据集中第 A1 单元格中值对应的列,第 A2 单元格中值对应的行的数据。
value('ds1',1,2,"牛肉干") 取 ds1 数据集中第 1 列数据,对应的第 2 列数据是 "牛肉干" 的值,返回第一列数据对应值。其中「牛肉干」可换成单元格数据。
value($p1,1,$p2) 取 p1 数据集中第 1 列第 p2 行的数据,其中 p1、p2 为 模板参数,将 p1 赋值为数据集名称。
暂时不支持 value("数据集",1,-1) 写法,-1 不生效。若您需要获取某列最后一行数据,可以使用类似公式 VALUE('ds1',COUNT(value("ds1",3,4,"America"))) 替代实现。
1.4 视频教程
2. 应用场景
示例数据:内置数据「CUSTOMER」
2.1 创建模板
新建一张模板,新建数据库查询 ds1:SELECT * FROM CUSTOMER,如下图所示:
2.2 使用公式取数
分别在单元格中输入如下公式:
输入公式 | 返回数值 | 效果 | 公式写法 | 写法说明 |
---|---|---|---|---|
= value("ds1",3,2) | 将返回 customer 表中的第三列第二行的数据 Washington | Value(tabledata,col,row) | 返回 TableData 中列号为 col,行号为 row 的值。 | |
=value("ds1",3) 注:由于返回的是数组,因此设置扩展属性为从上向下扩展。 | 将返回数据表中的第三列数据 | Value(tableData,col) | 返回 TableData 中列号为 col 的一列值 | |
=value("ds1",3,4,"America") 注:由于返回的是数组,因此设置扩展属性为从上向下扩展。 | 返回数据表中第三列元素,且该列元素对应的第四列元素的值是 America 的所有数据 | Value(tableData,targetCol,orgCol,element) | 返回 TableData 中第 targetCol 列中的元素,这些列元素对应的第 orgCol 列的值为 element。 | |
=value("ds1",3,4,"America",1) | 返回数据表中第三列元素,且该列元素对应的第四列元素的值是 America 的所有数据中第一个值 | Value(tableData,targetCol,orgCol,element,idx) | 返回 Value(tableData,targetCol, orgCol, element) 数组的第 idx 个值 |