在交叉报表中,我想实现工序合格率的乘积,如下图中
99.70*99.98%*99.85%*99.81%*98.90%=?
99.51%*99.82%*99.35%*99.92%=?
请高手指点。
26 个解决方案
#1
加个计算列
exp(sum(log(工序合格率) for group))
exp(sum(log(工序合格率) for group))
#2
谢谢。我先试试
#3
我这个工序合格率也都是通过计算域计算出来的。然后我添加一个计算域,输入“exp(sum(log(工序合格率) for group 1))”,其中的“工序合格率”的表达式为“(w_input_amount-crosstabsum(1, 2, "@wl"))/w_input_amount”。可是这样的话计算出来结果都是1,什么原因啊?
#4
计算列的名称叫什么?或者把工序合格率的表达式代替工序合格率试试看
#5
工序合格率的计算列名字是"compute_1",所以我添加计算域的时候写成“exp(sum(log(compute_1) for group 1))”,可是这样也不行。compute_1.的表达式为 "(w_input_amount-crosstabsum(1, 2, "@wl"))/w_input_amount",写成“exp(sum(log("(w_input_amount-crosstabsum(1, 2, "@wl"))/w_input_amount) for group 1))”,也不行,结果都是"1".
#6
重做一个dw, 把合格率的计算放到sql语句中处理, 再用1楼的计算公式试试
#7
谢谢了,大侠。我先试下。我等了一下午了,终于有人回复我的,感动ing
#8
大侠,我是用交叉表做的。合格率的计算怎么在sql中做啊?
#9
会不会是四舍五入了?
#10
我没有进行多余的设置啊。。。我都没试过四舍五入。
#11
这个问题困扰我好几天了,请各路大侠给我一点建议啊,谢谢了
#12
这几天我也一直在关注这贴子,也不知道怎么整;
实在不行就用程序来计算再写回对应的单元格吧.
实在不行就用程序来计算再写回对应的单元格吧.
#13
谢谢大侠对这个帖子的关注,我本来也想照你的方法做的,但是领导说要做成动态的。所以就没办法,问他他也不知道怎么做。现在就是说因为这个问题我后面的功能都做不下去了。真是急啊!
#14
在交叉表里试过了,可以计算。
你的合格率一栏里面不是还有百分号吗?那这一栏就不是数字类型的了?
你的合格率一栏里面不是还有百分号吗?那这一栏就不是数字类型的了?
#15
我在“工序合格率”中去掉了%后还是如此。我的qq:317858068。请大侠指点。
#16
jimwoo:能把你试成功的例子发给我吗?panyifeng1987@163.com,欢迎交流
#17
快被逼上绝路了,csdn上的大侠们,帮帮我吧。55555
#18
存储过程很轻松就可以实现,你反正都是做报表
#19
存储过程用得不是很熟练,所以没用。我报表之类的都设计好了,就差这个计算,好多天了,囧。
#20
各位大侠,麻烦帮我看看啊。jimwoo:你还在吗?我的qq:317858068
#21
不知道这个行不行
avg( compute_1 for group 1 ) * count( compute_1 for group 1 )
avg( compute_1 for group 1 ) * count( compute_1 for group 1 )
#22
应该是这个,求次幂
avg( compute_1 for group 1 ) ^ count( compute_1 for group 1 )
avg( compute_1 for group 1 ) ^ count( compute_1 for group 1 )
#23
终于解决了。谢谢大侠,小弟万分感谢。泪奔ing。
#24
当我第二天再输入一些数据之后,统计出来的乘积就不准确了,请大侠们继续指点,具体请看帖子
http://topic.csdn.net/u/20091210/13/55b2e85f-1244-4861-883e-156958c6e572.html
http://topic.csdn.net/u/20091210/13/55b2e85f-1244-4861-883e-156958c6e572.html
#25
这么说比较难理解,举个例子就清楚了。
比如,有个group上有个sum的计算列compute_1:"sum(c1 for group 1)"
在summary里有个sum 的计算列compute_2:"sum(compute_1 for all)"
这种情况,pb的datawindow的这个compute_2计算列得到焦点时,类似于调用函数一样调用了compute_1的算法
比如,有个group上有个sum的计算列compute_1:"sum(c1 for group 1)"
在summary里有个sum 的计算列compute_2:"sum(compute_1 for all)"
这种情况,pb的datawindow的这个compute_2计算列得到焦点时,类似于调用函数一样调用了compute_1的算法
#26
我就是这种一直调用的嵌套,但不知道为什么就是有错误。
#1
加个计算列
exp(sum(log(工序合格率) for group))
exp(sum(log(工序合格率) for group))
#2
谢谢。我先试试
#3
我这个工序合格率也都是通过计算域计算出来的。然后我添加一个计算域,输入“exp(sum(log(工序合格率) for group 1))”,其中的“工序合格率”的表达式为“(w_input_amount-crosstabsum(1, 2, "@wl"))/w_input_amount”。可是这样的话计算出来结果都是1,什么原因啊?
#4
计算列的名称叫什么?或者把工序合格率的表达式代替工序合格率试试看
#5
工序合格率的计算列名字是"compute_1",所以我添加计算域的时候写成“exp(sum(log(compute_1) for group 1))”,可是这样也不行。compute_1.的表达式为 "(w_input_amount-crosstabsum(1, 2, "@wl"))/w_input_amount",写成“exp(sum(log("(w_input_amount-crosstabsum(1, 2, "@wl"))/w_input_amount) for group 1))”,也不行,结果都是"1".
#6
重做一个dw, 把合格率的计算放到sql语句中处理, 再用1楼的计算公式试试
#7
谢谢了,大侠。我先试下。我等了一下午了,终于有人回复我的,感动ing
#8
大侠,我是用交叉表做的。合格率的计算怎么在sql中做啊?
#9
会不会是四舍五入了?
#10
我没有进行多余的设置啊。。。我都没试过四舍五入。
#11
这个问题困扰我好几天了,请各路大侠给我一点建议啊,谢谢了
#12
这几天我也一直在关注这贴子,也不知道怎么整;
实在不行就用程序来计算再写回对应的单元格吧.
实在不行就用程序来计算再写回对应的单元格吧.
#13
谢谢大侠对这个帖子的关注,我本来也想照你的方法做的,但是领导说要做成动态的。所以就没办法,问他他也不知道怎么做。现在就是说因为这个问题我后面的功能都做不下去了。真是急啊!
#14
在交叉表里试过了,可以计算。
你的合格率一栏里面不是还有百分号吗?那这一栏就不是数字类型的了?
你的合格率一栏里面不是还有百分号吗?那这一栏就不是数字类型的了?
#15
我在“工序合格率”中去掉了%后还是如此。我的qq:317858068。请大侠指点。
#16
jimwoo:能把你试成功的例子发给我吗?panyifeng1987@163.com,欢迎交流
#17
快被逼上绝路了,csdn上的大侠们,帮帮我吧。55555
#18
存储过程很轻松就可以实现,你反正都是做报表
#19
存储过程用得不是很熟练,所以没用。我报表之类的都设计好了,就差这个计算,好多天了,囧。
#20
各位大侠,麻烦帮我看看啊。jimwoo:你还在吗?我的qq:317858068
#21
不知道这个行不行
avg( compute_1 for group 1 ) * count( compute_1 for group 1 )
avg( compute_1 for group 1 ) * count( compute_1 for group 1 )
#22
应该是这个,求次幂
avg( compute_1 for group 1 ) ^ count( compute_1 for group 1 )
avg( compute_1 for group 1 ) ^ count( compute_1 for group 1 )
#23
终于解决了。谢谢大侠,小弟万分感谢。泪奔ing。
#24
当我第二天再输入一些数据之后,统计出来的乘积就不准确了,请大侠们继续指点,具体请看帖子
http://topic.csdn.net/u/20091210/13/55b2e85f-1244-4861-883e-156958c6e572.html
http://topic.csdn.net/u/20091210/13/55b2e85f-1244-4861-883e-156958c6e572.html
#25
这么说比较难理解,举个例子就清楚了。
比如,有个group上有个sum的计算列compute_1:"sum(c1 for group 1)"
在summary里有个sum 的计算列compute_2:"sum(compute_1 for all)"
这种情况,pb的datawindow的这个compute_2计算列得到焦点时,类似于调用函数一样调用了compute_1的算法
比如,有个group上有个sum的计算列compute_1:"sum(c1 for group 1)"
在summary里有个sum 的计算列compute_2:"sum(compute_1 for all)"
这种情况,pb的datawindow的这个compute_2计算列得到焦点时,类似于调用函数一样调用了compute_1的算法
#26
我就是这种一直调用的嵌套,但不知道为什么就是有错误。