这里要清晰几个Excel里面的概念:
空白、空值、零值、空字符串(“”)
其中,空白包含空值和空字符串,而空值在运算时,“当”零值处理。
如果是严格意义上的“空值”,就应该用:
=if(isblank(a1),0,1)
如果是“空白”,即包含空字符串的话,用
=if(A1="",0,1)
另外,定位操作(按 F5弹出定位窗口)时,可以定位“空值”,这时不包括空字符串的,

但在筛选的时候,有选项是“空白”或“非空白”的,要小心处理
关于Excel中的NULL
这里要说明一下,如果大家用过SQL之类的数据库,会经常看到下图中的NULL

是的,这种NULL很常见,但是请注意Excel里实际上是没有SQL中的这样的NULL的。
有时候SQL导出的文件,对于SQL中的NULL值,导出后会直接显示为 “NULL” 这4个字母。
SQL的NULL值导出为Excel后,这些NULL值在运算的时候会当成 “0”来进行计算。
但是,反过来,Excel的空值单元格,导入SQL后会显示为上图中的 “NULL”,可是SQL里 “NULL”并不等于0。
这一点请务必注意,尤其是做了Excel / CSV 等数据表导入SQL的动作以后,一定要注意,数字格式的字段,一定不能有NULL。可以用 ISNULL( ) 之类的函数进行修正。如果不修正,那么就一定要注意在做SUM之类的数学计算的时候,一定要做 ISNULL( )这样的 NULL 替换为 0 的操作。类似于下面代码。
SELECT
[Finance.PL].Product,
[Finance.PL].Customer,
[Finance.PL].[Date],
[Finance.PL].[Distribution Channel],
( CAST ( ISNULL( [Gross sales 1st grad Act Month], 0 ) AS FLOAT ) + CAST ( ISNULL( [Other net sales /2nd Act Month], 0 ) AS FLOAT ) ) AS CA,
( CAST ( ISNULL( [Destructions Act Month], 0 ) AS FLOAT ) ) AS Damage,
( CAST ( ISNULL( [Sales contr. - ACD 1 Act Month], 0 ) AS FLOAT ) + CAST ( ISNULL( [Sales contr. - ACD 2 Act Month], 0 ) AS FLOAT ) + CAST ( ISNULL( [ACD listing Act Month], 0 ) AS FLOAT )
) AS NetACD
FROM
ECDatas.[Finance.PL]
WHERE
Product IS NOT NULL