ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] INDEX SMALL IF row 多条件返回多结果问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2015-1-13 12:53 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
各位老师请教下:我在网上搜了下INDEX SMALL IF row 函数进行多条件多结果匹配,结果只能正确匹配到三行数据,下面的全部为0不知道什么原因,还请帮忙看看,感谢!


说明:通过南区表中的项目编号、设备型号、地点、开始日期四个条件匹配到DATABASE中序列号

求助-1.0.zip

459.11 KB, 下载次数: 108

TA的精华主题

TA的得分主题

发表于 2015-1-13 13:06 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
改成这样?
  1. =INDEX(DATABASE!Z:Z,SMALL(IF((南区!F2=DATABASE!$F$3:$F$42864)*(南区!L2=DATABASE!$L$3:$L$42864)*(南区!T2=DATABASE!$Q$3:$Q$42864)*(DATABASE!$T$3:$T$42864=南区!Y2),ROW($3:$35656),4^8),1),)
复制代码
其实可以不用这样来的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-13 13:18 | 显示全部楼层
TomingTang 发表于 2015-1-13 13:06
改成这样?其实可以不用这样来的。

感谢答复,但是好像还是不能正常实现。因为四个相同的条件应该能配对到很多不同的序列号,改成这样只能重复引用一个序列号。
还有其他的方法么?如果有也请告诉我下,能实现序列号按条件引用过来就行,不一定要用这个方法。
我的excel仅限于会用vlookup这个水准,这个也是在网上搜到的依样画瓢,结果研究半天还是不通%>_<%

TA的精华主题

TA的得分主题

发表于 2015-1-13 13:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
公式中A\SMALL的第二参数不对,你现在用的是ROW(A1),下拉到第四行后,变成ROW(A4),即求符合条件的第四小的数,但是实际上到了第四行,满足IF条件的(F5、L5、T5、Y5)只有两行数据,求第四小得到的4^8,放回空值(0)。越往下,ROW()变得越大,结果越不对!

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-13 15:35 | 显示全部楼层
wangjguo44 发表于 2015-1-13 13:19
公式中A\SMALL的第二参数不对,你现在用的是ROW(A1),下拉到第四行后,变成ROW(A4),即求符合条件的第四小的 ...

(⊙o⊙)…原来如此,理解了~
那需要怎么改呢?可否帮忙改改?

TA的精华主题

TA的得分主题

发表于 2015-1-13 15:54 | 显示全部楼层
大脸是个好同志 发表于 2015-1-13 15:35
(⊙o⊙)…原来如此,理解了~
那需要怎么改呢?可否帮忙改改?

改,应该可以,但是规则不太明白,比如DATABASE表L列型号同样是X3650,Q列同样式重庆,Z列序列号修订却有6个不同值,它们对应的AB列也是不一样,光以原来公式中判断的四条件(南区!F2=DATABASE!$F$3:$F$139)*(南区!L2=DATABASE!$L$3:$L$139)*(南区!T2=DATABASE!$Q$3:$Q$139)*(DATABASE!$T$3:$T$139=南区!Y2),也无法区分AB列的No等其他字段。
是不是不管这些区别,只要考虑这四条件?这四条件有几行,就取DATABASE表Z列前几个?(南区表符合四条件的有6行,DATABASE表Z列6个全取出,只有5行,就取前5个,最后一个留着不取,若有7行,第7个出错?)

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-13 16:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wangjguo44 发表于 2015-1-13 15:54
改,应该可以,但是规则不太明白,比如DATABASE表L列型号同样是X3650,Q列同样式重庆,Z列序列号修订却有 ...

对的,就是这个意思,只要这四个条件一致就返回DATABASE里的序列号,其他字段可以不用考虑。
麻烦了,谢谢!!

TA的精华主题

TA的得分主题

发表于 2015-1-13 17:03 | 显示全部楼层
大脸是个好同志 发表于 2015-1-13 16:15
对的,就是这个意思,只要这四个条件一致就返回DATABASE里的序列号,其他字段可以不用考虑。
麻烦了,谢谢 ...

请先验证一下,对不对
EH(WJG)c.rar (217.08 KB, 下载次数: 299)

TA的精华主题

TA的得分主题

 楼主| 发表于 2015-1-13 18:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wangjguo44 发表于 2015-1-13 17:03
请先验证一下,对不对

放到我的原始数据里测试了下,非常完美,太感谢啦!!大大,求拜师!
另:能否告知下用SUMPRODUCT的原理??知道它是用于算乘积和,但是在这里为什么用这个就有点稀里糊涂了。

TA的精华主题

TA的得分主题

发表于 2015-1-13 20:38 | 显示全部楼层
本帖最后由 wangjguo44 于 2015-1-13 20:42 编辑
大脸是个好同志 发表于 2015-1-13 18:31
放到我的原始数据里测试了下,非常完美,太感谢啦!!大大,求拜师!
另:能否告知下用SUMPRODUCT的原理 ...

=INDEX(DATABASE!Z:Z,SMALL(IF((F2=DATABASE!$F$3:$F$139)*(L2=DATABASE!$L$3:$L$139)*(T2=DATABASE!$Q$3:$Q$139)*(DATABASE!$T$3:$T$139=Y2),ROW($3:$139),4^8),SUMPRODUCT((F$2:F2=F2)*(L$2:L2=L2)*(T$2:T2=T2)*(Y$2:Y2=Y2))))这里的SUMPRODUCT((F$2:F2=F2)*(L$2:L2=L2)*(T$2:T2=T2)*(Y$2:Y2=Y2))也是“求和”,只是另一种形式的“求和”:

对单条件的重复数据引用,往往用countif,比如有的引用相同成绩(假定B2:B4是相同)而不同姓名时,多用countif,出现第一个成绩(B2),由small(……,countif(B$2:B2,B2)),返回第一个姓名;出现第二个成绩(B3),下拉,由small(……,countif(B$2:B3,B3)),返回第二个姓名;出现第三个成绩(B4),下拉由small(……,countif(B$2:B4,B4)),返回第三个姓名;……

你这里四条件不在一列,就不能用countif,用SUMPRODUCT来得到第几个相同数据:SUMPRODUCT((F$2:F2=F2)*(L$2:L2=L2)*(T$2:T2=T2)*(Y$2:Y2=Y2))——假定F2:F5、L2:L5、T2:T5、Y2:Y5分别都是相同,那么SUMPRODUCT((F$2:F2=F2)*(L$2:L2=L2)*(T$2:T2=T2)*(Y$2:Y2=Y2))=1,与SMALL搭配返回第一小,下拉成SUMPRODUCT((F$2:F3=F3)*(L$2:L3=L3)*(T$2:T3=T3)*(Y$2:Y3=Y3))得到2,返回第二小;再下拉,成SUMPRODUCT((F$2:F4=F4)*(L$2:L4=L4)*(T$2:T4=T4)*(Y$2:Y4=Y4))得到3,返回第三小……

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-4 09:22 , Processed in 0.027786 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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