ds1.select()和ds1.group()函数的使用

1. 概述

一般情况下,我们直接使用数据列的拖拽就能制作出想要的报表,但对于习惯编程的用户或者希望根据不同的条件控制某个单元使用哪个数据列时,我们也同样支持直接在单元格中使用来实现,这样的函数我们称为数据集函数。

以下列出所有的数据集函数及用法。

2. tablename.select

tablename.select(colname,筛选条件1&&筛选条件2&&......)

说明:选出数据集某列中符合条件的数据,返回结果是一个数组,相同数据不会合并。

其中 tablename 表示数据集名称,注意是报表数据集或者是服务器数据集名,而非数据库中的表名;

colname 表示列名,大小写不区分。

示例:

如数据集 ds1 取出内置 FRDemo 数据库中的「销量」表

  • 在单元格中输入=ds1.select(销售员),返回数据集ds1销售员列中的所有值。

  • 在单元格中输入=ds1.select(销售员,地区 = "华东"&&销量 > 200),返回数据集 ds1 华东地区销售总额超过 200 的销售员。

  • 在单元格中输入=ds1.select(销售员,地区="华东"||地区="华北"),返回数据集 ds1 华东地区或华北地区的销售员。

注:筛选条件中的判断既可以使用单等号,也可以使用双等号;字符串也同时可以使用单引号或者是双引号,对结果均没有影响。

3. tablename.group

tablename.group(colname,筛选条件 1 && 筛选条件 2,升降序)

说明:选出数据集某列中符合条件的数据并分组,还可以按照该列进行升降序排列。

其中 tablename 表示数据集名称、colname 表示列名;

升降序为布尔值,true 表示升序,false 表示降序。

示例:

如数据集 ds1 取出内置 FRDemo 数据库中的「销量」表

在单元格中输入=ds1.group(销售员),返回数据集 ds1 销售员列中的值,并且相邻数据若相同会进行合并。

在单元格中输入=ds1.group(销售员,true,false)或=ds1.group(销售员,,false),返回数据集 ds1 销售员列中的值,并且其中只要相同就会进行合并,结果为降序排列,中间的参数为条件,若没有条件,可以不写或者使用 true,但是不能省略。

在单元格中输入=ds1.group(销售员,地区=="华东"),返回数据集 ds1 华东地区的销售员,并且相邻数据若相同会进行合并。

在单元格中输入=ds1.group(销售员,地区=="华东",true),返回数据集 ds1 华东地区的销售员,并且会合并所有相同项,结果为升序排列。

4. tablename.select(#0)

说明:返回数据集 ds1 中的行号。

示例:

如数据集 ds1 取出内置 FRDemo 数据库中的「销量」表

在单元格中输入=ds1.select(#0),数据集 ds1 中一共有 45 条数据,因此返回行号 1,2,3,......45。

5. tablename.value(row,col/colname)

说明:获取数据集 ds1 中某行某列的值。

示例:

如数据集 ds1 取出内置 FRDemo 数据库中的「销量」表

在单元格中输入=ds1.value(3,2),返回数据集 ds1 中第 3 行第 2 列的值。

在单元格中输入=ds1.value(3,"销售员"),返回数据集 ds1 中第 3 行销售员列的值。

注:报表的图表标题不支持 value 函数。

注:决策报表里的图表块不支持该函数。

6. 实例

6.1 实例 1:数据集函数返回的数据进行扩展

直接将数据列拖拽到单元格时会自动从上到下扩展。但是使用数据集函数获得数据为一个数组,是显示在一个单元格中的,需要另外给单元格设置扩展属性,数据才会进行扩展。

6.2 实例 2:根据不同条件选择使用哪个字段

在单元格中输入如下公式:

=if(条件,ds1.group(customerid),ds2.group(customerid))

并设置其扩展属性为从上到下。

说明条件为真,则单元格使用数据集 ds1 中的 customerid 列,否则使用 ds2 中的 customerid 列 。

6.3 实例 3:对数据集函数返回的数据再进行运算

如公式=sum(ds1.select(销量)),返回数据集 ds1 销量列的总和。

sum 求和公式也可以换用其他如 count、max 等。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江湖行骗老中医

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值