excel如何用if表示如果单元格内有任意内容则内容不为空。情况比较复杂,还请大佬指点你一下?

=IF(AND(D2="",E2=all),"上午空挡",IF(AND(D2=all,E2=""),"下午空档",IF(AND(D2=all,E2=all),"无空档",IF(AND(D2="",E2=""),"全天空挡"))))这一串的话是直接报#name?错=IF(AND(D6="",E6="all"),"上午空挡",IF(AND(D6="all",E6=""),"下午空档",IF(AND(D6="all",E6="all"),"无空档",IF(AND(D6="",E6=""),"全天空挡"))))这一串明显的“all”错误,但是可以用。求大佬指点,应该把all换成啥才能表示任意字符。也就是我不管输入123 还是sadsad一串乱码 都是识别单元格里有内容的

你那条公式中,all必须要加双引号,表示文本,不加双引号的话,EXCEL会以为你写的是个函数,然后又没从函数库中找到all函数,所以报错#NAMA,意思是不能识别的函数名称。
你那条公式,你意思是只要非空,填什么都算呗,
那就把E6="all"换成E6<>""
意思是E6不等于空值。
【其实你那个公式可以改个写法,能变短一点】:
=IF(COUNTA(D2:E2)=0,"全天空档",IF(COUNTA(D2:E2)=2,"无空档",IF(D2="","上午空档","下午空档")))
其中COUNTA是统计非空单元格的数量。
这条公式意思是:
如果D2:E2非空单元格数量=0,那么返回 全天空档,
否则,如果D2:E2非空单元格数量=2,那么返回 无空档,
(因为只有二个格,所以还剩两种情况,要么D2空,要么E2空)
否则,如果D2="",那么返回上午空档,
否则,返回下行空档。
【还可以再换一种写法,这条就更短了,建议用下面这条公式】:
=IF(D2&E2="","全天空档",IF(D2="","上午空档",IF(E2="","下午空档","无空档")))
意思是,
如果D2&E2的内容连接后="",指同时为空时,返回 全天空档,
(剩余的就是不同时为空的情况了)
否则如果D2="",那么返回 上午空档,
否则如果E2="",那么返回下午空档,
(再剩余的就只有都不为空的情况了)
否则,返回 无空档。
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-12-23

自己把问题想得太复杂了。主要是没有完全理解并掌握IF函数的特点:前面的IF考虑的了情况,后面就只剩下另外的情况了!加粗内容是很多在百度中回答问题的人也没有真正掌握的。

公式很简单:

=IF(COUNTA(D2:E2)=0,"全天空档",IF(D2="","上午空档",IF(E2="","下午空档","全天无空")))

第1个IF,考虑D2、E2均为空,第2个IF就只要考虑“剩下另外的情况”了——至少有一个单元格中有内容

所以第2个IF先看D2是否为空,如果为空,那么E2必有内容(all——其实应该是anything——哈哈),所以是上午空档。

再来第3个IF,D2也不为空了,那么看E2是否为空,如果为空,那么就是下午空档了!

最后还需要IF吗?显然不需要了,因为“剩下另外的情况”就只一种可能了,那就是:D2、E2均不为空!所以直接“全天无空”!

第2个回答  2021-12-23
=IF(AND(D2="",E2<>""),"上午空挡",IF(AND(D2<>"",E2=""),"下午空档",IF(AND(D2<>"",E2<>""),"无空档",IF(AND(D2="",E2=""),"全天空挡"))))
第3个回答  2021-12-23
=all可以换成<>""
相似回答
大家正在搜