ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] INDEX(区域,SMALL(IF(条件,行号数组,4^8),ROW(A1)))区域大小及IF第三参数的选择问题

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-10-25 16:30 | 显示全部楼层
本帖已被收录到知识树中,索引项:数组公式
本帖最后由 buswalke 于 2011-10-25 16:52 编辑

再请教下,如果INDEX(区域,SMALL(IF(条件,行号数组,4^8),ROW(A1)))现在的条件是一个固定不变的值,若条件放在了另一列中,又该如何来修改公式呢?
补充一下,刚试了下,当条件放在一列中发生变化时,把ROW(A1)直接改为“row($A$1)”即可。盖因其就是根据SMALL函数的原理,当值为1时,取出数组中的最小值,从而实现返回按条件查找时对应单元格的内容了。呵呵。。。。不知我的理解是否正确?望大侠再指点一二之。谢谢。
搜狗浏览器截图.jpg 再贴个图出来说明一下,课程名称是查找的条件,课程代码是需要用公式填充的内容。这个例子和10楼的例子有点不同,通过上述修改后已成功实施填充。但不知我的理解是否在点子上了。
呵呵,找到原因了,图中所示错误是因为条件比较处没有设置为行列绝对引用,一拖动单元格时,自动错位了。应该是这样。
搜狗浏览器截图(2).jpg
需查找数据
搜狗浏览器截图(1).jpg
已合成数据

终于成功了。
还请各位大侠继续指点一二。不知我的想法是否正确呢?

点评

还是拿个例子来比较好讲。  发表于 2011-10-25 16:32

TA的精华主题

TA的得分主题

发表于 2011-10-26 10:06 | 显示全部楼层
那是不是数据太多,所以我这个销售表不能用这个表达式呢?
我写这个表达式{=index(商品销售明细表!A:A,small(if(商品销售明细表!J2:J349=Sheet2!A$1,row($1:$349),4^8,row(Sheet2!A1)))&"")},说我输入太多参数,我也是按照上面的来写啊,为什么会出现这种情况吗,请各位大虾帮我解决一下啊~

销售表.rar

239.46 KB, 下载次数: 190

点评

问题有:1。IF第二参数的大小与第一参数不对应,应为ROW($2:$349);2。IF第三参数4^8后漏了右括号。3。&""应在括号最外面。row(Sheet2!A1)可用ROW(A1)或row(1:1)代替。 看了附件,不明白你的问题。  发表于 2011-10-26 10:15

TA的精华主题

TA的得分主题

发表于 2011-10-26 10:19 | 显示全部楼层
buswalke 发表于 2011-10-25 16:28
hehe ,但它起的作用是不是根据row返回的值,取构成数组中的最小值出来呢?依次向下拉动公式的时候,取值为 ...

row(A1)随着下拉逐渐变为1,2,3,4,5.。。。,作为small的第二参数用来依次取得满足条件的行号

TA的精华主题

TA的得分主题

发表于 2011-10-26 10:46 | 显示全部楼层
ying779900 发表于 2011-10-26 10:06
那是不是数据太多,所以我这个销售表不能用这个表达式呢?
我写这个表达式{=index(商品销售明细表!A:A,sma ...

其实我的意思是怎么提取商品销售明细表中的列J中的供应商如工作表“百利实业有限公司”那样表示出来~就是一个供应商放在一个工作表里面~当中有50个供应商,就应该新建50个工作表~其实我不明白如何用这个公式将我要提取的内容放在一个工作表当中~
你能写一个完整的公式给我看吗?我看完你的内容,但是我都是修改不成功啊~

TA的精华主题

TA的得分主题

发表于 2011-10-26 10:49 | 显示全部楼层
各位前辈,公式里面4^8是啥意思,不好意思,新手。

点评

4^8=65536,EXCEL2003最后一行的行号是65536。选它是因为最后一行一般无数据,这样能返回""  发表于 2011-10-26 11:07

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-26 11:06 | 显示全部楼层
ying779900 发表于 2011-10-26 09:46
其实我的意思是怎么提取商品销售明细表中的列J中的供应商如工作表“百利实业有限公司”那样表示出来~就是 ...

其中的百利实业也完成,其他的同理。
销售表.rar (229.69 KB, 下载次数: 414)

TA的精华主题

TA的得分主题

发表于 2011-10-26 13:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
叫我史栋 发表于 2011-10-26 10:19
row(A1)随着下拉逐渐变为1,2,3,4,5.。。。,作为small的第二参数用来依次取得满足条件的行号

多谢释疑,但楼主的例子和我的还有点区别。楼主举的例是:条件固定不变,提取的数据在变。我的是:条件不断在变。呵呵,按照SMALL函数的提示,返回数据集中第 k 个最小值。使用此函数可以返回数据集中特定位置上的数值。那么这个也是应该按从大到小的顺序哦?

TA的精华主题

TA的得分主题

发表于 2011-10-26 17:52 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
hjj0451 发表于 2011-10-26 11:06
其中的百利实业也完成,其他的同理。

谢谢啦!那下次我交作业的时间又可以大大的缩减啦~哈哈~~
不过我不明白为什么前表跟后面那个表的位置都要一致啊?之前我不一致就显示错误,这个不能跟VLOOKUP那样使用的吗?

点评

函数里的列号对了即可。位置不一样的缺点就是不能直接右拉,要拉过去再改下对应字段的列号。  发表于 2011-10-26 17:57

TA的精华主题

TA的得分主题

发表于 2011-10-26 22:28 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我。。。还是看不明白!~蛋疼。。。郁闷

TA的精华主题

TA的得分主题

发表于 2011-11-7 22:16 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 16:02 , Processed in 0.049046 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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