以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]关于表达式的计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=122284)

--  作者:jjjeyes
--  发布时间:2018/7/22 11:56:00
--  [求助]关于表达式的计算
我有三列成绩,分别为“成绩一”,“成绩二”,“成绩三”,计算列为“平均值”。
想在“平均值”列计算这三列的平均值,如果三个成绩中只有两个成绩则取两个成绩的平均值,如果只有一个成绩,则直接将这个成绩赋值。在表达式生成器内的公式为:
(IsNull([成绩一],0) + IsNull([成绩二],0) + IsNull([成绩三],0)) / (IIF([成绩一] is null, 0, 1) + IIF([成绩二] is null, 0, 1) + IIF([成绩三] is null, 0, 1))
但是,如果三列都没有成绩,用上面的公式计算后得到的值为“非数字”。

请教:如果三列成绩都没有,如何让计算结果不显示“非数字”,直接为空值

--  作者:有点甜
--  发布时间:2018/7/22 16:45:00
--  
iif(IIF([成绩一] is null, 0, 1) + IIF([成绩二] is null, 0, 1) + IIF([成绩三] is null, 0, 1)=0, null, (IsNull([成绩一],0) + IsNull([成绩二],0) + IsNull([成绩三],0)) / (IIF([成绩一] is null, 0, 1) + IIF([成绩二] is null, 0, 1) + IIF([成绩三] is null, 0, 1)))