c++函数返回多个值_Excel函数技巧之返回多个匹配结果
在Excel中进行查找一般都用VLOOKUP和INDEX+MATCH,但是这些函数都只能返回一个匹配结果。比如:
尽管在右边的表中有两行都是可乐类的产品,但是VLOOKUP只返回第一个值。用MATCH也类似。
那么,如果想要把所有匹配的行都返回,应该怎么办?
01
第一种方法 Index+Small
这里,我们需要用到一个比较复杂的公式:
=INDEX($G$3:$G$6,SMALL(IF($F$3:$F$6=B3,ROW($F$3:$F$6)-2,1000),ROW()-2))
这是一个数组公式,需要用CTRL+SHIFT+ENTER输入。
下面简单介绍一下这个公式。
先看最内层的部分:
SMALL(IF($F$3:$F$6=B3,ROW($F$3:$F$6)-2,1000),ROW()-2)
SMALL是一个很简单的函数,就是从一堆数中选择第n小的值,例如SMALL({2,1.5,8},1)就是返回第一小的值,结果就是1.5。
在我们的公式中,SMALL的第一个参数是一个IF函数,这个函数去判断F列每个单元格bu是否跟B3单元格相等,如果是,就返回F列对应单元格的行号,如果不是,就返回1000(实际上是一个比较大的数,超过可能的最大行号即可),第二个参数就是取第几小的值,因为B3单元格对应的是第一个返回结果,所以取第1小的值:ROW()-2=3-2=1。
这部分公式的计算过程就是:
于是,整个公式就变成了:
INDEX($G$3:$G$6,2)
得到了一个匹配值。
通过拖拽填充即可得到后续的结果:
但是,如果填充超出了我们需要的行数,就会返回错误。此时,我们可以使用IFERROR来进行处理:
=IFERROR(INDEX($G$3:$G$6,SMALL(IF($F$3:$F$6=B3,ROW($F$3:$F$6)-2,1000),ROW()-2)),"")
02
提高公式可读性
这个公式只用了两个函数嵌套在一起:INDEX和SMALL(ROW函数很简单,所有不算),总体不算复杂。但是可读性还是比较差,不容易一下就看明白这个公式的作用:
我们可以通过定义名称来提高公式的可读性:
再定义G列为产品明细:
于是公式可以写为:
=IFERROR(INDEX(产品明细,SMALL(IF(类别=B3,ROW(类别)-2,1000),ROW()-2)),"")
一个就知道这些参数的含义。
好了,今天的分享就到这里了!
c++函数返回多个值_Excel函数技巧之返回多个匹配结果相关推荐
- JavaScriptjQuery.返回多个值的函数
返回多个值的函数 例子 <!DOCTYPE html><html lang="zh"><head> <meta charset=" ...
- Python实战从入门到精通第十三讲——返回多个值的函数
构造一个可以返回多个值的函数 能返回多个值,函数直接return一个元组就行了.例如: >>> def myfun(): ... return 1, 2, 3 ... >> ...
- C++ Primer Plus P31 编程练习(调用一个用户自定义的函数(以光年值为参数,并返回对应天文单位的值)——中职
C++ Primer Plus P31 编程练习 第六题 编写一个程序,其main()调用一个用户自定义的函数(以光年值为参数,并返回对应天文单位的值).该程序按下面格式要求输入光年值,并显示结果: ...
- excel公式 某一个单元格等于另一个单元格的值_EXCEL函数学习5——COUNTIF函数
[标签] excel函数.统计函数 前面我们学习了COUNT函数,我们回顾一下: count函数很简单,就是统计一个或多个区域的数字个数.相对来说,countif函数多了一个if,也就是可以增加条件了 ...
- python函数返回多个值_python函数返回多个值的示例方法
python可以返回多个值,确实挺方便 函数里的return只能返回一个值,但是返回类型是没是限制的 因此,我们可以"返回一个 tuple类型,来间接达到返回多个值". 例子是我在 ...
- python自定义函数中return可以返回多个值_python函数return返回多个值
在函数中一旦使用return,那么函数就会停止往下执行!但是,我们有时候需要函数返回多个值,怎么实现呢?其实python的return可以返回多个值,而且Python 会自动将多个返回值封装成元组. ...
- java返回一个布尔值_关于java:返回布尔值的方法
好的,所以我的问题是关于布尔值的回报. 对于我的Comp Sci作业,我必须使用方法制作课程注册程序,其中之一是添加课程方法. 基本上,您在目录中搜索该班级,如果匹配,则将其添加到学生时间表中,并返回 ...
- mysql插入数据返回主键值_Mysql插入记录后返回该记录ID
最近和Sobin在做一个精品课程的项目,因为用到一个固定的id作为表间关联,所以在前一个表插入数据后要把插入数据生成的自增id传递给下一个表.研究了一番决定使用Mysql提供了一个LAST_INSER ...
- 数组第一个值_Excel公式技巧69:查找第一个非空值
学习Excel技术,关注微信公众号: excelperfect 在<Excel公式技巧63:查找最后一行>中,我们使用LOOKUP函数的公式获取最后一个值或该值所在的行号.如果列表中的前面 ...
- 转载:(C/C++函数返回多个值)
当我们在处理一个数组的时候常常会碰到这样的问题:输入一个数组,和数组的一个元素,返回该元素所在行数和列数.这样就需要返回多组两个值,且组数不定.上述类型的函数在c语言程序里面存在两个问题.第一,函数只 ...
最新文章
- [CCC 2018] 平衡树
- 联合国发布AI报告:自动化和AI对亚洲有巨大影响【附报告下载】
- 电商总结(八)如何打造一个小而精的电商网站架构
- 外企软件测试笔试,外企软件测试面试题目50道
- python 示例_带有示例的Python字典update()方法
- nodejs: mkdirs 递归创建目录
- Client访问Tomcat简单流程(Struts2)
- 关于预编译和Stdafx.h的若干问题
- ExtJs之ExtJs.Model验证
- 著名游戏公司CAPCOM与WAX达成合作 将推出“街头霸王”主题NFT
- tortoiseSVN svn+ssh
- 厦门高职计算机专业,厦门高职,厦门高职学校,厦门高职学校哪个相对好一些 - IT教育频道...
- ai智能和大数据测试_测试版可帮助您根据自己的条件创建数据和AI平台
- java面试自我介绍
- Gateway服务网关
- 一文说清长安链ChainMaker同步模块
- 电脑如何设置日程提醒闹钟
- Airbnb产品数据分析
- 2021年茶艺师(初级)模拟考试及茶艺师(初级)实操考试视频
- Centos7 源码编译安装linux longterm 内核4.19.47
热门文章
- 极光短信验证码JAVA_Android如何集成极光短信验证
- 数据结构实验5-递归
- stm32双串口通信_一文读懂,基于 STM32 和 CAN 总线的温度监控系统的设计方法
- vs没有windows窗体应用_既能防木马病毒又能多开应用,这款软件 Windows 不能没有!...
- 看书学python靠谱吗_自学Python靠谱吗?
- linux下回收站在哪个文件夹,linux回收站在哪里
- springboot开启缓存_springBoot与缓存使用
- 甘肃计算机报名准考证打印,2019年9月甘肃计算机等考准考证打印入口已开通
- 【HDOJ6071】Lazy Running(同余最短路思想)
- hdu2553N皇后问题(打表)