-
-
luofei369 初学数据Lv2
发表于2021-5-20 15:33
悬赏1
已解决

数据类型这样,然后序号第一行是1,从第2行开始,是公式,原理就是取供应商名称判断本行和上一行的名字是否一样,如果一样序号不变,如果供应商名字变了,序号就自增
EXCEL 类似这样的公式 在报表工具里如何写?
目前我弄的是这样的

各种报错,如何修改呢
简单来讲,就是同一个供应商给的序号是同一个,不同的就递增,如何实现?

6个回答
可以使用对象表达式if(self.rightcell()=self.rightcell().upcell(),self.upcell(),self.upcell()+1)
zengxq 发表于 2021-5-20 16:55
可以使用对象表达式if(self.rightcell()=self.rightcell().upcell(),self.upcell(),self.upcell()+1)
...
这个我发现了一个问题 ,分页的时候 第二页又从1开始计算了,分页如何解决呢
本帖最后由 luofei369 于 2021-5-20 17:28 编辑
zengxq 发表于 2021-5-20 16:55
可以使用对象表达式if(self.rightcell()=self.rightcell().upcell(),self.upcell(),self.upcell()+1)
...
IF(ROW()=2,1,IF(self.rightcell()=self.rightcell().upcell(),self.upcell(),self.upcell()+1))
我发现一翻页,就找不到上一页最后一条数据了...然后就公式无法参与计算又从头开始了
本帖最后由 lifen 于 2021-5-21 10:02 编辑
你用的sql查的,可以用开窗函数排个序,直接取开窗函数的值吗? DENSE_RANK()OVER(PARTITION BY * ORDER BY *)
lifen 发表于 2021-5-21 09:57
你用的sql查的,可以用开窗函数排个序,直接取开窗函数的值吗? DENSE_RANK()OVER(PARTITION BY * ORDER BY ...
学到新知识了,但是目前项目上用的是MYSQL 5.7 好像不支持开窗函数