Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

求教:计算积的总项中各分项为空时不计该空项仍可得结果

章仕平  发表于:2008-12-16 01:19:23  
复制

哪位大侠能帮帮:

我这个ACCESS项目中查询有个名叫“Yield_rate_cal”,打开该查询最后一栏位“良率”无法显示前面各项目的良率相乘的值,因为各项目中有的不显示该项目的良率(而该小项目不显良率是因为该项目的Pass或Fail为空就没法计算) ,求教如何才能显示该良率?

 

我曾想让那些项目为空的自动填充为0,各项目的良率为空则自动填100%,可不知如何实现?

 

请查附件:

点击下载此附件

 

Top
竹笛 发表于:2008-12-16 08:41:43
看了一下,查询中良率的公式中,只要有一项为空,由于是相乘,那么就会为空值。由于你的项目太多,而基本上所有的记录都有空值,所有没有相应的良率。

章仕平 发表于:2008-12-16 09:52:29

那能不能解决?我的良率统计是这样来的:

由不良统计表得出不良数,

由生产信息得出良品数,

经联合查询得各项良率,公式为: 各项良率 = 良品数/(良品数+不良数)*100%

相乘各项良率得总良率: 总良率 = 良率1*良率2*...良率n

 

现主要问题在于有些项目没有不良,所以不良数为空,选成各项良率中不良数为空的良率也为空,最后导致总良率为空.

我觉得在统计不良数时如果能将没有不良的项目自动设为数字0,就可能会算出良率值,因为数字0与空值是不一样的意义对于Office来说.

可是我的不良数是由一个交叉表查询得来的,不知如何能将交叉为空的设为0值!



竹笛 发表于:2008-12-16 09:56:32

“将没有不良的项目自动设为数字0”这一句感觉有问题,如果为0,相乘就是0,没有意义

感觉应该是  “将没有不良的项目自动设为数字1”

你可以用iif函数, iif(Is Null(项目名称),1,项目名称),使项目名称为空的值全部变成1



章仕平 发表于:2008-12-16 11:18:02

因为我是从这个公式中得出不良数为0:

各项良率 = 良品数/(良品数+不良数)*100%

 

而你的思考方向是在这个公式中得出自动设良率为1:

总良率 = 良率1*良率2*...良率n,

 

我们的结果都是一样的,你说的那个iif函数不错,但我的项目太多了,要设那么多项目为空时计算良率可能会套用N个阶层的iif,我会试试,不知还有没有比iif好用的函数呢,只要能算出所列所有项目中只要不为空的就用来相乘?



章仕平 发表于:2008-12-16 11:40:45
谢谢,我想太多了,其实只要在各分项目上设IIF函数就可以了,现在良率已显示出来了,太谢谢了!

总记录:5篇  页次:1/1 9 1 :