这是萌二很用心梳理编辑的一篇文,看到我的标题前面冠上了[tree],被EXCEL大咖论坛收录进知识树,很开心。你的努力总会有机会被看到,共勉!

这是个万金油公式,谁用了谁知道!

INDEX+SMALL+IF+ROW】组合函数:

①难度:★★★☆☆

②作用:实现查找时返回多个符合条件的结果。

③结果放在行的写法:

INDEX(结果列,SMALL(IF(条件,ROW(条件列),4^8),COLUMN(A1)))&""

④结果放在列的写法:

INDEX(结果列,SMALL(IF(条件,ROW(条件列),4^8),ROW(A1)))&""

⑤结束键:数组公式须同时按CTRL+SHIFT+ENTER三键结束。

这个组合函数在简单的报表里用得不频繁,所以每到用时方恨练得少。接下来直接举“栗子”啦,想要进阶的同学多练习几遍,能从头到尾自己打代码把公式写下来才算真正掌握!

温馨提示:书写公式必须把输入法调整到英文半角状态,否则显示出错。

例题:A、B、C列是源数据,要求在E列提取A列“省份”数据(重复的只保留一个),并查找各省份对应的城市(在B列找),把结果放到同一行不同单元格里。

1.原始表

图1--原始表

2.结果表

图2--结果表

3.操作过程

图3--操作过程

4.步骤分解

①在E列提取A列省份(重复的只留一个)

方法一:复制A列粘贴到E列,EXCEL2007以上版本可直接点菜单栏“数据”,然后点击“删除重复项”,简单粗暴就OK了。

图4

方法二:INDEX+MATCH(上例用的是此法,详细的下次再探讨)

E2输入公式

=INDEX(A:A,SMALL(IF(MATCH($A$2:$A$13,$A$2:$A$13,0)=ROW($A$2:$A$13)-1,ROW($2:$13),4^8),ROW(1:1)))&""

按CTRL+SHIFT+ENTER三键结束,下拉。

②在F2单元格里为E2省匹配B列中对应的第1个城市

F2输入公式

=INDEX($B:$B,SMALL(IF($A$2:$A$13=$E2,ROW($A$2:$A$13),4^8),COLUMN(A1)))&""

三键结束。

③把F2的公式右拉,分别匹配E2省对应的第2、3、4、5个城市...直到显示空白。

④把E2右边存放有公式的单元格选中后下拉,为E3、E4单元格里的省份匹配到对应的各个城市。

⑤附加题:为省份匹配非省会的城市

公式的写法同上面一样道理,只是增加了一个条件——C列等于""。

那就在第②点的公式里插入一个新条件

=INDEX($B:$B,SMALL(IF(($A$2:$A$13=$E2)*($C$2:$C$13="否"),ROW($A$2:$A$13),4^8),COLUMN(A1)))&""

同样三键结束。记得哦,增加条件后该增加的括号()也得成对增加哈~

⑥同理,如有更多条件要求,比照第⑤点用*星号连接插入相关条件即可。

5.公式翻译

先安利F9这个功能键:如果公式很长,在编辑栏抹黑某段公式,按F9可以得到公式结果解析。

尤其像INDEX+SMALL+IF+ROW这种组合函数,由多个函数嵌套组合在一起,得先理解各个函数的语法结构及功能作用,才能理解整个组合函数的工作原理。上图瞧瞧:

图5
图6
图7
图8

遇到复杂的公式,可以按F9解析难理解的中间步骤。现在先来翻译F2单元格的公式。

INDEX($B:$B,SMALL(IF($A$2:$A$13=$E2,ROW($A$2:$A$13),4^8),COLUMN(A1)))&""

翻译:

IF(A列省份若是“广东”,返回那一行的行号,不是“广东”则返回一个很大的数65536)

SMALL(IF()得到的行号数组从小到大排列,第几小的行号)

INDEX(城市列,SMALL()得到的行信息)

由此可以得到:

INDEX(城市列,A列省份是“广东”对应的第1个城市)

INDEX(城市列,A列省份是“广东”对应的第2个城市)

INDEX(城市列,A列省份是“广东”对应的第3个城市)

。。。。。。

INDEX(城市列,A列省份是“广东”对应的第N个城市)

【原文链接:EXCEL一对多条件查找显示多个结果(INDEX+SMALL+IF+ROW函数组合)】

js if判断多个条件_EXCEL一对多条件查找显示多个结果(INDEX+SMALL+IF+ROW函数组合)...相关推荐

  1. js if判断多个条件_五、if 条件判断

    if 条件判断 1.开发中的应用场景 生活中的判断几乎是无所不在的,我们每天都在做各种各样的选择,如果这样?如果那样? 判断的定义 ·如果条件满足,才能做某件事情, ·如果条件不满足,就做另外一件事情 ...

  2. Js中判断变量存不存在的问题

    前面写过jquery对象存在与否的判断.现在谈下Js中判断变量存不存在的问题. 如果这样if(!a),当变量a在js中没有申明时,就会报错,那么接下去的代码将不会被执行.注意,这种判断只要变量申明过, ...

  3. js快速判断IE浏览器(兼容IE10与IE11)

    原文:js快速判断IE浏览器(兼容IE10与IE11) 在很多时候,我们一般采用navigator.userAgent和正则表达来判断IE浏览器版本,下面介绍用IE浏览器中不同特性来判断IE浏览器 1 ...

  4. JS如何判断滚动条是否滚到底部

    JS如何判断滚动条是否滚到底部 背景 解决方案(以纵向滚动条为例,横向滚动条方法类似) 背景 通常我们需要判断滚动条是否滚到底部,以实现相应的功能,如"加载更多"等. 那么如何通过 ...

  5. js的判断以及图片的点击切换效果

    js的判断知识 1.js中判断的几种类型     1) if( 判断条件  ){                条件成立时,执行里面的语句                条件不成立时,不执行     ...

  6. 3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景|判断数组里有没有某对象,有不添加,没有则添加到数组

    3.js中判断数组中是否存在某个对象/值,判断数组里的对象是否存在某个值 的五种方法 及应用场景 一.当数组中的数据是简单类型时: 应用js中的indexof方法:存在则返回当前项索引,不存在则返回 ...

  7. python跳出if条件_python的if条件判断

    python的条件判断书写格式: 基本格式 if 条件判断: #条件判断通过,则执行下面的语句 执行语句 执行语句 ... else: #条件判断不通过,则执行下面的语句 执行语句 执行语句 #最后可 ...

  8. python条件语句-Python中条件判断语句的简单使用方法

    最简单的条件语句: if expression: expr_true_suite 如上,if是关键字,expression是条件表达式,条件表达式支持多重条件判断,可以用布尔操作符and.or和not ...

  9. cpp 条件判断 大于等于_第31p,if条件语句,请满足我的要求

    大家好,我是杨数Tos,这是<从零基础到大神>系列课程的第31篇文章,第二阶段的课程:Python基础知识:控制语句之if条件语句. 学习本课程,建议先看一遍:[计算机基础知识]课程. 第 ...

最新文章

  1. HashMap数据类型使用注意-不能使用基本数据类型
  2. Winform中设置BackgroundWorker在取消时关闭后台进程
  3. iOS 开发问题 书籍 价值 改名 创业大赛app
  4. mysql5.7主从同步与读写分离
  5. 简单可行性报告模板_项目可行性报告模板分享!第三章主要内容
  6. 【前端就业课 第一阶段】HTML5 零基础到实战(五)基础元素
  7. PHP加速 eAccelerator配置和使用指南
  8. 小程序【笔记001】框架和配置文件
  9. 《一段代码告诉你,Python的正则表达式怎么用》
  10. EPPlus 读写 Excel 资料收集
  11. MindNode for Mac(思维导图)下载
  12. 华为模拟器eNSP将防火墙配置成三层核心交换机
  13. php开发之文件指针,文件锁定
  14. 2022-2027年中国番茄酱行业市场全景评估及发展战略规划报告
  15. electron安装报错: Electron failed to install correctly…的解决方案
  16. access里面的表达式运用_表达式的示例
  17. 在PyCharm环境中使用graphviz遇到的问题
  18. POJ 1375 Intervals
  19. 国内外常用公共NTP网络时间同步服务器地址
  20. 社会,经济的1000+篇文章总结

热门文章

  1. Dragonboard 410c fastboot刷入android
  2. 大剑无锋之简单说一下聚簇索引和非聚簇索引?【面试推荐】
  3. leetcode 729, 731, 732. My Calendar I, II, III | 729. 我的日程安排表 I, II, III(线段树)
  4. ECMAScript 2019(ES10)新特性简介
  5. hi3516配置wifi_HISI 3516A移植mt7601u的wifi驱动
  6. raft中集群成员变更
  7. hadoop学习之:Map、Reduce详解
  8. zoj 3705 Applications
  9. 1.使用适配器模式设计一个仿生机器人:要求机器人可以模拟各种动物行为,在机器人中定义了一系列方法,如机器人发声方法talk(),机器人移动方法move()等。如果希望在不改变已有Bird类代码的基础上
  10. C语言满分代码:L1-050 倒数第N个字符串 (15分)