ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[讨论] 自动重算、易失函数与IS类函数对参数多维之返回结果影响探讨(更新最新测试结果)

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-10-16 11:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:ISERROR
hjj0451 发表于 2011-10-16 10:50
我在附件的第二个表测试了一下,省略第三参数会发生错误。

你试验一下ISTEXT,它可以省略第三参数但是不可以省略第二参数.

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-16 11:11 | 显示全部楼层
本帖最后由 hjj0451 于 2011-10-16 10:20 编辑
bluexuemei 发表于 2011-10-16 10:04
你试验一下ISTEXT,它可以省略第三参数但是不可以省略第二参数.


有点怪了。ISTEXT简写都不可以,刚才测试还行。其它的只可简写第二参数。
3.gif

点评

你的IS类函数引用区域的形状尺寸应尽量与Vlookup函数的第一参数相匹配,这样才能避免出现错误。  发表于 2011-10-16 11:26

TA的精华主题

TA的得分主题

发表于 2011-10-16 11:17 | 显示全部楼层
本帖最后由 chrisfang 于 2011-10-16 11:31 编辑
hjj0451 发表于 2011-10-16 10:40
方版早。这样公式又缩短了。不过我附件中的例子只能简写第2参数,不可以简写第三参数。因此应为:具体哪 ...


呵呵,你要先了解IS类函数的作用,才能知道应该怎么去构造整个公式,才能知道可以IF函数中可以怎么摆三个参数,该忽略哪个参数。ISTEXT是判断是否是字符,如果引用的单元格里面非空,后面嵌套的Vlookup部分当然应该放在第二参数,而将第三参数省略。

其实上述使用IS类函数的实质是下面这个公式:
  1. =VLOOKUP(IF(ISTEXT($A$26:$A$29),$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),)
复制代码
如果用RAND函数来替代就是这样:
  1. =VLOOKUP(IF(RAND(),$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),)
复制代码


另外,除了ISREF、ISODD和ISEVEN,其他都可以用。
ISODD和ISEVEN不支持数组运算,所以不行。ISREF与上述IS类函数的不同之处在于其他函数都是对引用值的属性进行判断,而ISREF是对引用本身进行判断,所以由此可能造成无法使用。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-16 11:26 | 显示全部楼层
chrisfang 发表于 2011-10-16 10:17
呵呵,你要先了解IS类函数的作用,才能知道应该怎么去构造整个公式,才能知道可以IF函数中可以怎么摆三个 ...

知道了,谢谢,我判断查找区域去了,汗......

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-16 11:47 | 显示全部楼层
本帖最后由 hjj0451 于 2011-10-16 11:14 编辑

=VLOOKUP(IF(RAND(),$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),),此处不可用=VLOOKUP(IF(now(),$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),),或者=VLOOKUP(IF({1},$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),),其他的易失函数包括RANDBETWEEN测试完都不可以。

用其他的IS类信息函数,下面的均可:
  1. =VLOOKUP(IF(ISBLANK(A26:A29),,$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),)
复制代码
  1. =VLOOKUP(IF(ISLOGICAL(A26:A29),,$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),)
复制代码
  1. =VLOOKUP(IF(ISERR(A26:A29),,$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),)
复制代码
  1. =VLOOKUP(IF(ISERROR(A26:A29),,$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),)
复制代码
  1. =VLOOKUP(IF(ISNA(A26:A29),,$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),)
复制代码

  1. =VLOOKUP(IF(ISTEXT(A26:A29),$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),)
复制代码
  1. =VLOOKUP(IF(ISNONTEXT(A26:A29),,$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),)
复制代码
  1. =VLOOKUP(IF(ISNUMBER(A26:A29),,$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),)
复制代码

点评

确实是这样的,我也测试过.  发表于 2011-10-16 11:52

TA的精华主题

TA的得分主题

发表于 2011-10-16 12:03 | 显示全部楼层
hjj0451 发表于 2011-10-16 11:47
=VLOOKUP(IF(RAND(),$A$26:$A$29),$A$1:$E$13,COLUMN(C:E),),此处不可用=VLOOKUP(IF(now(),$A$26:$A$29),$ ...

看来还得纠正一下,你还没有理解方老师刚才的解释,只有ISTEXT可以省略第三参数,其它的都可以省略第二参数.

点评

我晕了,已更正,谢谢。  发表于 2011-10-16 12:11

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-16 12:03 | 显示全部楼层
本帖最后由 hjj0451 于 2011-10-16 11:12 编辑

测试完了行方向,再继续测试列参数的列方向,下面的均可,由于有些时候这里字符长度更短,因此可以缩短公式:
  1. =VLOOKUP($A$26:$A$29,$A$1:$E$13,IF(RAND(),COLUMN(C:E)),)
复制代码
  1. =VLOOKUP($A$26:$A$29,$A$1:$E$13,IF(ISNUMBER(COLUMN(C:E)),COLUMN(C:E)),)
复制代码
  1. =VLOOKUP($A$26:$A$29,$A$1:$E$13,IF(ISTEXT(COLUMN(C:E)),,COLUMN(C:E)),)
复制代码
  1. =VLOOKUP($A$26:$A$29,$A$1:$E$13,IF(ISNONTEXT(COLUMN(C:E)),COLUMN(C:E)),)
复制代码
  1. =VLOOKUP($A$26:$A$29,$A$1:$E$13,IF(ISNA(COLUMN(C:E)),,COLUMN(C:E)),)
复制代码
  1. =VLOOKUP($A$26:$A$29,$A$1:$E$13,IF(ISLOGICAL(COLUMN(C:E)),,COLUMN(C:E)),)
复制代码
  1. =VLOOKUP($A$26:$A$29,$A$1:$E$13,IF(ISBLANK(COLUMN(C:E)),,COLUMN(C:E)),)
复制代码

TA的精华主题

TA的得分主题

发表于 2011-10-16 12:08 | 显示全部楼层
本帖最后由 bluexuemei 于 2011-10-16 12:11 编辑
hjj0451 发表于 2011-10-16 12:03
测试完了行方向,再继续测试列参数的列方向,下面的均可,由于有些时候这里字符长度更短,因此可以缩短公式: ...


纠正=VLOOKUP($A$26:$A$29,$A$1:$E$13,IF(ISNONTEXT(COLUMN(C:E)),COLUMN(C:E)),)和ISNUMBER一样,其它的一样

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-16 12:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 hjj0451 于 2011-10-16 11:17 编辑
bluexuemei 发表于 2011-10-16 11:08
纠正=VLOOKUP($A$26:$A$29,$A$1:$E$13,IF(ISNONTEXT(COLUMN(C:E)),COLUMN(C:E)),)和ISNUMBER一样,其它的 ...


你们的参与讨论让我更加深了认识,谢谢!
上面的对于HLOOKUP也适用。

点评

这个我也测试过,现在看IS类函数能不能用在其它函数上.  发表于 2011-10-16 12:18

TA的精华主题

TA的得分主题

发表于 2011-10-16 12:30 | 显示全部楼层
本帖最后由 bluexuemei 于 2011-10-16 12:30 编辑

求C列中等于A2的,对应的d列之和,用VLOOKUP函数怎么解决
11.png

点评

FAILED......没搞出来。不转化成不重复,让VLOOKUP依次查找重复的字段,动起来,这会是个突破。  发表于 2011-10-16 14:44
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-3 08:53 , Processed in 0.036371 second(s), 15 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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