以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  excel报表里的空值问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=98584)

--  作者:海阔天空pl
--  发布时间:2017/4/1 14:40:00
--  excel报表里的空值问题
Excel报表里设置了年、月列,分别取值于表的[日期]列:YEAR([日期])、MONTH([日期]),当日期列是空的时候,报表里出来的是1899、 12,请问怎么出来报表里的空值问题?IIF([日期] Is Null, **, **)不起作用,报表出来直接全都是空的。
--  作者:有点蓝
--  发布时间:2017/4/1 15:34:00
--  
<IIF([日期] Is Null, "", YEAR([日期]))>
--  作者:海阔天空pl
--  发布时间:2017/4/1 19:23:00
--  

Is Null 貌似在excel报表里不起作用?我试过<IIF([日期] Is Null, 0, YEAR([日期]))><IIF([日期] Is Null, 0, 1)> 。还有数据列:<IIF([金额] Is Null, 0, 1))> 结果不管是空值还是有数据,出来都是空的。怎么办?


--  作者:有点色
--  发布时间:2017/4/2 11:46:00
--  

 直接判断年月咯

 

iif(year([日期]) = 1899, \'日期为空\', year([日期]))


--  作者:海阔天空pl
--  发布时间:2017/4/2 14:42:00
--  

谢谢版主!,这也不失为一个临时办法,因为我们知道日期为空的话出来是1899年。

但是对于金额列,我是这样设置的::<IIF([金额] <> 0, GetDigit([金额],1,"¥") , Null>  。会正常显示,空值为空,数值为数,唯一的不足:当某一行金额确实为“0”时,出来的报表也为空。我想如果显示真实意图:0.00 就完美了。

之前我也用IIF([金额] Is Null,但不管用,所有的列(不管有没有数值)都显示空。

 

Is Null在报表里真不能用?


--  作者:有点色
--  发布时间:2017/4/2 14:47:00
--  

尝试转换成字符,比如

 

iif(cstr([金额])="", "空值", "123456")


--  作者:海阔天空pl
--  发布时间:2017/4/2 14:57:00
--  

好,谢谢


--  作者:海阔天空pl
--  发布时间:2017/4/5 13:44:00
--  

试过了,不行。数值列空值的初始值为0,所以空值用字符转换出来也是“0”


--  作者:海阔天空pl
--  发布时间:2017/4/5 13:56:00
--  

 

[此贴子已经被作者于2017/4/5 13:56:48编辑过]

--  作者:有点色
--  发布时间:2017/4/5 14:08:00
--  
以下是引用海阔天空pl在2017/4/5 13:44:00的发言:

试过了,不行。数值列空值的初始值为0,所以空值用字符转换出来也是“0”

 

我测试了一下,没问题。如果有问题,上传实例说明。