ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: e表格学习

[讨论] 查找值不能是空值

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-7-30 20:45 | 显示全部楼层
三、运算符的操作数,以及函数的参数,有些是需要某种数值类型的。比如:
      算术运算符的操作数要求是数字值;
      LEFT(text,num_chars)    第一个参数text是要求文本值,第二个参数要求是数字值。
      如果你提供的数据不是所要求的数值类型,Excel会自动进行转换。

TA的精华主题

TA的得分主题

发表于 2016-7-30 20:54 | 显示全部楼层
四、但有一种函数参数,并没有要求具体的数值类型,这种参数在语法中通常为value。
      例如:MATCH(lookup_value,lookup_array,match_type)
      第一个参数就是value。

     很多函数的参数,可以从参数的英文来判断数值类型:
            number   数字值
            text        文本值
            logical      逻辑值
            array        数组
            reference  单元格引用

    而value没有指定具体的数值类型

TA的精华主题

TA的得分主题

发表于 2016-7-30 21:14 | 显示全部楼层
五、由于公式在计算的时候,每一个运算项都必须有具体的数值类型。
    那么,空值(空单元格或空参数)会如何转换成具体的数值类型呢?

(一)如果运算项或参数有具体的数值类型要求,则空值被转换为0、空文本""或FALSE。
     假设单元格A1为真空单元格,那么:
     =SUBSTITUTE("ABC","B",A1)  或
     =SUBSTITUTE("ABC","B",)
     相当于=SUBSTITUTE("ABC","B","")
     空单元格或空参数被转为空文本。

(二)如果运算项或参数有具体的数值类型要求,优先转换为0。
     例如,最简单的,当A1是真空单元格,=A1返回0
     同理,MATCH的第一个参数没有要求具体的数值类型,如果该参数为空单元格或空参数,优先转换为数字值0

     注意了,公式的处理的数值必须有具体的数值类型,公式返回的数值也必须有具体的数值类型。
     公式不能返回空值!

补充内容 (2016-8-5 13:28):
"如果运算项或参数有具体的数值类型要求,优先转换为0。"中间漏了一个字,应该是:
如果运算项或参数有具体的数值类型要求,优先转换为0。

补充内容 (2016-8-5 13:28):
"如果运算项或参数有具体的数值类型要求,优先转换为0。"中间漏了一个字,应该是:
如果运算项或参数没有具体的数值类型要求,优先转换为0。

TA的精华主题

TA的得分主题

发表于 2016-7-30 21:23 | 显示全部楼层
六、判断是否空单元格,只能用ISBLANK函数。
    楼主用&""将空值变成假空,这样有漏洞,会把假空也变成真空。找到的可能是真空,也可能是假空。
   
    =MIN(IF(ISBLANK(A25:A28),ROW(A25:A28),""))
    类似这样,用ISBLANK才能正确地找出真空。

    暂时补充完毕

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-30 23:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 e表格学习 于 2016-7-30 23:38 编辑
首席打杂 发表于 2016-7-30 19:12
对于这个例子5里的空,直接用=“”也可以


您的公式有问题。
如果有假空(假空是文本,不是楼主帖的讨论重点),公式也会计算进去。""表示真空+假空。而我帖子、题目的假设条件是仅存在真空。

在条件求和类函数中,"=" 是用来表示真空条件的,但是此处好像不行。如果有一个表示真空的字符来代替您公式中的""就好了。

TA的精华主题

TA的得分主题

发表于 2016-7-30 23:22 | 显示全部楼层
e表格学习 发表于 2016-7-30 23:10
您的公式有问题。
如果有假空(假空是文本,不是楼主帖的讨论重点),公式也会计算进去。""表示真空+假 ...

ISBLANK函数,只有真空单元格才返回TRUE,假空单元格返回FALSE的

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-30 23:28 | 显示全部楼层
本帖最后由 e表格学习 于 2016-7-30 23:50 编辑
jiny680p 发表于 2016-7-30 19:23
例5应该使用7楼的算法。

使用NA错误来获得结果,虽然在本例中没有出错,但“查找不到”这个概念太宽泛了


7楼公式不适合我的例题,我原帖没有将条件说得明确一些(详见15楼回复)
NA:确实宽泛了,再研究研究……

忘了ISBLANK函数了!
请移步18楼……

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-30 23:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 e表格学习 于 2016-7-30 23:57 编辑
ZhouFfett 发表于 2016-7-30 23:22
ISBLANK函数,只有真空单元格才返回TRUE,假空单元格返回FALSE的


呵呵,怎么忘了isblank判断真空了,罪过!经您提醒,例5可以缩写为:
=IFERROR(SMALL(IF(ISBLANK(A39:A44),ROW(1:6)),ROW(1:6)),"")
(多单元格数组公式)
公式是简洁了,可是似乎有些偏离主题,楼主主题是:在查找函数中……


半夜了。您的其他宝贵回复明天研读啦。谢谢您的耐心回复。晚安。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-31 00:03 | 显示全部楼层
jiny680p 发表于 2016-7-30 19:23
例5应该使用7楼的算法。

使用NA错误来获得结果,虽然在本例中没有出错,但“查找不到”这个概念太宽泛了

又仔细考虑了一下。
例5中,查找不到只能是真空啦,不会是其他了吧?(前提条件:没有假空!!!)

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-7-31 14:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ZhouFfett 发表于 2016-7-30 21:23
六、判断是否空单元格,只能用ISBLANK函数。
    楼主用&""将空值变成假空,这样有漏洞,会把假空也变成真 ...

ZhouFfett 老师:您好!细细研读了您的回复,收获很大,关键是对于数据类型有了一个比较清晰、系统的认识。衷心感谢您的指导!可以感觉到您是一位重视理论、功夫深厚的“EH初级”。
    联想到VBA中的数据类型,容易得到人们的重视,学习内容较多,内容也比较集中,讨论的帖子也很多、争论很激烈。似乎在函数中,数据类型的地位没有在VBA中高,不容易引起人们的关注,尽管函数中的数据类型学习的重要性一点也不必VBA差。
    也许在函数板块中,“数据类型”系统讲解似乎是空白,也许是本人孤陋寡闻。您楼上关于数据类型的“随笔”讲得太好了,简洁明快,有醍醐灌顶感。如果整理出来,大作一定会受到函数初学者们(包括非初学需要补课如我者)的欢迎!
谢谢!周末快乐!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-6-25 13:35 , Processed in 0.044409 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表