我通过以下if公式对Excel输出进行分类:=IF(M13〉0.8;“〉80%";如果(M13〉0.5;“80%-50%";如果(M13〉0.5;“50%-20%";"〈20%”)))我的数据有一些空白单元格,在这种情况下,我希望公式返回一个空白单元格。但是,目前公式返回的值〈20%(见图片)。我如何解决这个问题?
rhfm7lfc1#
这里的答案和建议的解决方案适用于您的 * 特定 * 情况。我想提供一个更 * 通用 * 的方法来防止 * 任何 * 嵌套IF()结构出现这种问题,这不仅仅是您的用例所特有的。以IF(M13=""...)条件开始公式的潜在问题是,* 它不是一般化的。* 如果此单元格中包含空格、不可打印字符或文本值,而不仅仅是空白,您总是希望跳过此单元格。任何非数字或超出范围的值都将导致""。因此,公式的一般形式可以是:
IF(M13=""...)
""
=IF(ISNUMBER(M13); IF(M13>0,8; ">80%";IF(M13>0,5; "80%-50%";IF( M13>0,2; "50%-20%"; "<20%")));"")
或者,为了便于阅读,我还在完全相同的公式中添加了空格和alt-return作为不间断回车:
=IF(ISNUMBER(M13); IF(M13>0,8; ">80%"; IF(M13>0,5; "80%-50%"; IF( M13>0,2; "50%-20%"; "<20%" )));"")
美国英语表示法为:
=IF(ISNUMBER(M13), IF(M13>0.8, ">80%",IF(M13>0.5, "80%-50%",IF( M13>0.2, "50%-20%", "20%"))),"")
如果您有Excel 2019或更高版本
一种更好的方法是使用最近的IFS()函数来创建IF-THEN-ELSEIF逻辑结构,而不是嵌套的IF()。为了便于阅读,这里使用了相同的alt-return表示法:
=IFS( NOT(ISNUMBER(M13));""; M13>0,8; ">80%"; M13>0,5; "80%-50%"; M13>0,2; "50%-20%"; TRUE ; "<20%" )
如果没有alt返回,则为:
=IFS(NOT(ISNUMBER(M13));"";M13>0,8;">80%";M13>0,5;"80%-50%";M13>0,2; "50%-20%";TRUE;"<20%")
这些条件会依序进行评估和测试,因此您会建立最后一个“TRUE”条件/结果配对,表示“如果您通过所有其他测试,但仍在此结束,则结果为(a)数值,且(B)小于或相等0,2”。
hpxqektj2#
为空白单元格添加复选标记:
=IF(M12="";"";IF(M12>0,8;">80%";IF(M12>0,5;"80%-50%";IF(M12>0,2;"50%-20%";"<20%"))))
以下是公式版本,其中公式分隔符为,,小数分隔符为.:
,
.
=IF(M12="","",IF(M12>0.8,">80%",IF(M12>0.5,"80%-50%",IF(M12>0.2,"50%-20%","<20%"))))
2条答案
按热度按时间rhfm7lfc1#
这里的答案和建议的解决方案适用于您的 * 特定 * 情况。我想提供一个更 * 通用 * 的方法来防止 * 任何 * 嵌套IF()结构出现这种问题,这不仅仅是您的用例所特有的。
以
IF(M13=""...)
条件开始公式的潜在问题是,* 它不是一般化的。* 如果此单元格中包含空格、不可打印字符或文本值,而不仅仅是空白,您总是希望跳过此单元格。任何非数字或超出范围的值都将导致""
。因此,公式的一般形式可以是:
或者,为了便于阅读,我还在完全相同的公式中添加了空格和alt-return作为不间断回车:
美国英语表示法为:
如果您有Excel 2019或更高版本
一种更好的方法是使用最近的IFS()函数来创建IF-THEN-ELSEIF逻辑结构,而不是嵌套的IF()。为了便于阅读,这里使用了相同的alt-return表示法:
如果没有alt返回,则为:
这些条件会依序进行评估和测试,因此您会建立最后一个“TRUE”条件/结果配对,表示“如果您通过所有其他测试,但仍在此结束,则结果为(a)数值,且(B)小于或相等0,2”。
hpxqektj2#
为空白单元格添加复选标记:
以下是公式版本,其中公式分隔符为
,
,小数分隔符为.
: