首先,活字格表格的加载记录行数是不支持动态赋值的,基于这一点,我们就需要考虑考虑其他的实现方案
如果图表想要只显示这几条数据,意味着表格只能显示出来这几条数据,我们可以通过表格查询的逻辑,只查询前N行的数据展示到表格中
具体如何实现呢?
1.因为涉及到获取前N项的数据,活字格的ODATA是支持这一点的
我们可以通过ODATA获取top N的数据
2.使用ODATA获取出来前N行的ID之后,为了让表格可以查询,我们需要用Excel行数TEXTJOIN函数,将查出来的多行ID通过逗号连接起来
=TEXTJOIN(",",1,ODATA("大类统计?$select=产品大类&$top="&D9))
3.当拿到前N行的ID或者其他唯一字段之后,可以表格设置查询条件,使用“在里面”实现你的需求
4.但是这里还需要注意一点:因为ODATA和表格的查询逻辑有一些区别,如果表格的查询条件为空而不是NULL,会认为没有查询条件,显示所有数据;
但是ODATA是请求数据库的逻辑,如果查询条件为空,意味着是要查字段为空的值;所以在特殊条件下(输入0时),需要满足不显示任何数据,熟悉活字格的小伙伴都知道,这种情况,我们通常会使用IFERROR函数进行判断,实现如果TXETJOIN函数连接的是个空值,赋值为-1,让表格查询不到数据的逻辑~
=IFERROR(TEXTJOIN(",",1,ODATA("大类统计?$select=产品大类&$top="&D9)),-1)
效果如下:
工程文件见附件
|