找回密码
 立即注册

QQ登录

只需一步,快速开始

bgrimm_auto

初级会员

45

主题

156

帖子

423

积分

初级会员

积分
423

微信认证勋章

[已处理] SpreadJS公式问题

bgrimm_auto
初级会员   /  发表于:2017-12-6 14:00  /   查看:12583  /  回复:13
blob670715026.png
您好,我因为需要用到列公式,我在日统计一列需要计算 早中晚的平均值,
因此公式写

=AVERAGEIF((Col_1:Col_3),"<>0")



=AVERAGEIF(([Col_1]:[Col_3]),"<>0")


以及=

=AVERAGEIF((B55),"<>0")

加载完数据后都不对,请问如果添加公式
blob751110229.png

blob836248779.png
blob685700378.png
blob447958983.png

14 个回复

倒序浏览
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-12-6 19:50:39
沙发
您好:
您的Col_1,Col_3代表的是什么,公式只认的是R1C1跟列名无关。
回复 使用道具 举报
bgrimm_auto
初级会员   /  发表于:2017-12-7 14:18:54
板凳
ClarkPan 发表于 2017-12-6 19:50
您好:
您的Col_1,Col_3代表的是什么,公式只认的是R1C1跟列名无关。

您好!
我以前问的是公式如果是[Col_1]就是列公式
sTable.setColumnDataFormula(12, '=AVERAGEIF(([@Col_9],[@Col_10],[@Col_11]),">0"');
然后昨天我试试加@就是可以每行的公式了

Col_1就是我表设置的列
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-12-7 16:15:29
地板
,是我理解错了,您用的是表格公式。
回复 使用道具 举报
bgrimm_auto
初级会员   /  发表于:2017-12-7 16:37:22
5#
ClarkPan 发表于 2017-12-7 16:15
,是我理解错了,您用的是表格公式。

您好 我现在又遇到一个问题,行的公式可以了,但是列公式 blob315356749.png
1、合计一列中 我写 =AVERAGEIF([Col_1],"<>0"),但是不识别,显示的只有第一行 的平均值,其实第二行和第三行也是有数据的,我所需求的就是需要计算整个列的平均值,但是除去0,因为我表格行不是固定的,所以只能用列公式;
2、 blob351732482.png 类似这种公式因为没有数据无法计算时,如何可以不显示这个#DIV/0!
回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-12-7 18:22:37
6#
这个我验证一下问题,明天给您回复。

点评

您好 我昨天想起来了,以前也遇到过,说是一个bug,就是查完数据以后再重新绑定一下公式就可以列  发表于 2017-12-8 08:46
回复 使用道具 举报
bgrimm_auto
初级会员   /  发表于:2017-12-8 08:52:15
7#
ClarkPan 发表于 2017-12-7 18:22
这个我验证一下问题,明天给您回复。

您好,但是还需要您帮忙解决一下那个不显示公式#DIV/0! 也是绑定数据以后
回复 使用道具 举报
bgrimm_auto
初级会员   /  发表于:2017-12-8 09:48:12
8#
现在又遇到一个问题:页面中写了一段添加公式的语句,
//设置列公式
            //sheet.isPaintSuspended(true);
            var sTable = sheet.findTableByName("gcTable0");
            sTable.setColumnDataFormula(4, '=AVERAGEIF(([@Col_1],[@Col_2],[@Col_3]),">0"');//如果只计算当前行的列 前面加@ 否则是指的整个列
            sTable.setColumnDataFormula(8, '=AVERAGEIF(([@Col_5],[@Col_6],[@Col_7]),">0"');
            sTable.setColumnDataFormula(12, '=AVERAGEIF(([@Col_9],[@Col_10],[@Col_11]),">0"');
            //回收率公式 精品位(原品-尾矿品)/原品(精品-尾品)
            sTable.setColumnDataFormula(13, '=([@Col_5]*([@Col_1]-[@Col_9]))*100/([@Col_1]*([@Col_5]-[@Col_9]))');
            sTable.setColumnDataFormula(14, '=([@Col_6]*([@Col_2]-[@Col_10]))*100/([@Col_2]*([@Col_6]-[@Col_10]))');
            sTable.setColumnDataFormula(15, '=([@Col_7]*([@Col_3]-[@Col_11]))*100/([@Col_3]*([@Col_7]-[@Col_11]))');
            sTable.setColumnDataFormula(16, '=([@Col_8]*([@Col_4]-[@Col_12]))*100/([@Col_4]*([@Col_8]-[@Col_12]))');


可是第一次查询,公式就显示正常,也能计算,但是再进行第二次查询时候,公式就没有了,跟踪列代码也走了此段程序,可是就是页面中不显示,调用的就是一个查询
blob399347228.png
blob904981994.png

画面程序.rar

11.49 KB, 下载次数: 321

回复 使用道具 举报
Clark.Pan讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-12-8 11:26:06
9#
您好,您能否提供一个完整的demo,我这边部署您上传的代码,提示
image.png898516540.png
回复 使用道具 举报
bgrimm_auto
初级会员   /  发表于:2017-12-8 12:17:14
10#
好的 我那边用了一个母版页

画面程序.rar

15.51 KB, 下载次数: 323

回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部