excel 一对多数据查询公式 经典用法
所谓一对多,就是符合某个指定条件的有多个结果,要把这些结果都提取出来。
下面咱们就说说一对多查询的典型用法,先看数据源:
A~D列是一些员工信息,要根据F2单元格指定的学历,提取出所有“本科”的人员姓名。
G2单元格输入以下公式,按住Shift+ctrl不放,按回车,再将公式向下拖动到出现空白单元格为止:
=INDEX(C:C,SMALL(IF(B$2:B$11=F$2,ROW($2:$11),4^8),ROW(A1)))&""
公式看起来好长啊,不用担心,咱们一点点的拆解。
先来看这部分:
IF(B$2:B$11=F$2,ROW($2:$11),4^8)
IF函数的意思是判断一个条件是不是成立,如果成立返回第二参数,否则返回第三参数。
本例中,要判断的条件是B$2:B$11=F$2,如果B列的学历等于F2单元格中指定的“本科”,就返回2~11行对应的行号ROW($2:$11),否则返回4^8的结果65536,最终得到一个内存数组的计算结果:
{2;65536;65536;65536;6;65536;65536;65536;10;65536}
把这个结果放到示意图中,会更直观:
有小伙伴会说:为啥用65536啊,先不要着急,咱们一会儿再说。
接下来,再用SMALL函数,在这个内存数组中提取内容。
SMALL函数的作用是返回一组数值中的第n个最小值,比如公式SMALL(A:A,3),就是返回A列中的第三个最小值了。
本例中,SMALL函数用IF函数的计算结果作为第一参数,要在这个内存数组中提取第n个最小值,这里的n由谁来指定呢?就是公式最后部分的ROW(A1)。
ROW(A1)的作用是返回A1单元格的行号,结果是1。当公式向下复制时,参数会依次变成ROW(A2)、ROW(A3)、……,也就是得到从1开始、依次递增的序号。最终的目的是给SMALL函数一个动态的参数,依次从内存数组中提取出第1至n个最小值。
咱们回头再看看上面的示意图,SAMLL函数先提取出内存数组中的第1个最小值,结果是2。
这个2有啥用呢?继续往下看:
下面该轮到INDEX函数出场了,这个函数的作用是根据指定的位置信息,从数据区域返回对应位置的内容。刚刚的2就是位置信息,INDEX函数从C列中返回第二个单元格的内容,结果就是第一个符合条件的姓名“刘一山”。
公式向下复制到G3单元格,ROW(A1)变成了ROW(A2),返回A2的行号2,SMALL函数再从内存数组中提取第2个最小值,结果是几呢?再看看上面的示意图,OK,是6。INDEX函数最终再返回C列中的第6个单元格中的内容“王希建”。
如果所有符合条件的行号都提取完了,公式还向下复制,这个时候SMALL函数的结果就是65536了,最终INDEX函数返回C列第65536个单元格中的内容。
通常情况下,咱们的工作表没有这么多数据,也就是65536是空白单元格,INDEX函数引用空白单元格时,会返回一个无意义的0,所以咱们在公式的最后部分加上一个&"",使无意义的0不再显示。
这里的65536可以是其他任意一个较大的数值,只不过人们使用习惯了,只要你高兴,换成63565、65356都没问题。
还没有看晕的小伙伴,接下来咱们再说说多对多查询的公式。
多对多查询通常分为两种情况:
一是要提取出同时符合多个条件的所有记录。
二是要提取出多个条件符合其一的所有记录。
如下图所示,要提取出性别为“女”,部门为“财务”的所有人员姓名:
这里变成性别和部门两个条件了,两个条件要同时符合,公式怎么用呢?
H2单元格输入以下公式,按住Shift+ctrl不放,按回车,再将公式向下拖动到出现空白单元格为止:
=INDEX(C:C,SMALL(IF(($B$2:$B$11=$F$2)*($D$2:$D$11=$G$2),ROW($2:$11),4^8),ROW(A1)))&""
这个公式看起来更长了,不用担心,咱们仔细看看,公式中的大部分内容和前面讲过的公式几乎是一样的,有所不同的地方就是这里:
($B$2:$B$11=$F$2)*($D$2:$D$11=$G$2)
也就是把多个条件分别写到括号内,再用乘号把多个条件对应相乘。只有这几组条件同时符合了,对应相乘后的结果才是1,否则相乘结果是0。
在IF函数的第一参数中,0的作用相当于逻辑值FALSE,不等于0的数值则相当于逻辑值TRUE。也就是两个条件同时符合了,就返回对应的行号,否则返回65536。
公式的其他部分,和前面讲的第一个公式计算过程都是相同的。
多对多查询的第二种情况是多个条件符合其一。
比如下图中,要提取性别为“女”或是部门为“财务”的所有人员姓名。
可以在G2单元格输入以下公式:
=INDEX(C:C,SMALL(IF(($B$2:$B$11=$F$2)+($D$2:$D$11=$G$2),ROW($2:$11),4^8),ROW(A1)))&""
这里告诉大家一个处理的小窍门:多个条件分别写到括号内,再用加号把多个条件对应相加就好。
这几组条件中只有一个符合了,对应相加后的结果就不是0,如果所有条件都不符合,相加结果才是0。
其他计算过程和第二个公式是完全一样的
来源:
https://mp.weixin.qq.com/s?__biz=MjM5NTcxODg0MA==&mid=2689814959&idx=1&sn=9a1a4c7f2193c9ea13959348d8831781&chksm=8353c278b4244b6e2a66df584ae99a13861d43c37c448f0ce02bcaed0bb830d4a14803aeb226&scene=21#wechat_redirect
相关文章:

excel 一对多数据查询公式 经典用法
所谓一对多,就是符合某个指定条件的有多个结果,要把这些结果都提取出来。 下面咱们就说说一对多查询的典型用法,先看数据源: A~D列是一些员工信息,要根据F2单元格指定的学历,提取出所有“本科”的人员姓名…...

Zookeeper3.5.7版本——客户端命令行操作(节点删除与查看)
目录一、节点删除示例1.1、节点删除1.2、递归节点删除二、查看节点状态示例一、节点删除示例 1.1、节点删除 在客户端上创建 test 节点,并查看该节点 [zk: localhost:2181(CONNECTED) 5] create /test "123456"删除 test 节点,并查看该节点 […...
一句话设计模式6:享元模式
享元模式:局部单例模式。 文章目录 享元模式:局部单例模式。前言一、享元模式的作用二、如何实现享元模式总结前言 享元模式其实很简单,但是如果用好,确实可以达到减少内存,事半功倍的效果;适合 系统要创建大量相似对象,相同对象等; 一、享元模式的作用 1 享元模式可以解决对象…...

【C语言进阶】文本与二进制操作文件,优化通讯录。
前言:上篇文章,我们已经学习了有关本地磁盘文件的常用文件操作,已经能够对本地文件进行调用与读写。我们磁盘中还存在着一些内容用二进制存储的文件,这也就是我们今天将要讲解的内容。一、文本文件与二进制文件根据数据的组织形式…...

CleanMyMac X4.20最新Mac系统垃圾清理工具
CleanMyMac X是一款Mac系统垃圾清理工具,可以清除Mac系统多余的语言包、系统缓存、应用程序、PowerPc软件运行库等,是硬盘瘦身的好工具。在面对一款多功能型的软件时,复杂的操作面板是最容易让人头疼的,好在 CleanMyMac 一直以来都原生支持简体中文语言&…...

为什么做知识管理,就想选择Baklib呢?
随着科技的不断发展,知识管理已经成为现代企业不可或缺的一个重要组成部分。由于信息化快速发展,企业每天都会产生大量的数据和信息,如何高效地获取、整理和利用这些信息已经成为了企业成功的关键因素之一。为了更好地管理企业知识࿰…...

Spring Cloud融合gateway自带GatewayFilter使用 | Spring Cloud 15
一、Spring Cloud Gateway内置GatewayFilter 路由过滤器允许以某种方式修改传入的 HTTP 请求或传出的 HTTP 响应。路由过滤器的范围是特定路由。Spring Cloud Gateway 包括许多内置的 GatewayFilter 工厂。 官网地址:https://docs.spring.io/spring-cloud-gateway…...

SVN 版本控制软件
SVN 版本控制软件 属于C/S结构软件(客户端与服务端) 服务端软件:VisualSVN 网址:Downloads | VisualSVN 下载好:VisualSVN-Server-5.1.3-x64.msi 客户端软件:TortoiseSVN 网址:http://tor…...

全流程基于最新导则下的生态环境影响评价技术方法及图件制作与案例
目录 专题一、生态环境影响评价框架及流程 专题二、基于遥感解译的土地利用现状图的编制 专题三、生物多样性测定及R语言分析 专题四、植被类型及植被覆盖度图的编制 专题五、生物量与净初级生产力测定:实测及模型 专题六、生态系统类型及服务价值评估 专题七…...

(蓝桥真题)分果果(动态规划)
题目链接:P8746 [蓝桥杯 2021 省 A] 分果果 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 样例1输入: 5 2 6 1 2 7 9 样例1输出: 0 样例2输入: 5 5 6 1 2 7 9 样例2输出: 2 分析:这道题的状态表…...

【CSS】CSS 背景设置 ① ( 背景颜色 | 背景图片 | 背景平铺 )
文章目录一、背景颜色1、语法说明2、代码示例二、背景图片1、语法说明2、代码示例三、背景平铺一、背景颜色 1、语法说明 CSS 的背景颜色样式语法 : 默认的背景颜色是 transparent 透明 ; background-color:颜色值;background-color 属性 可以 定义 文本颜色 , 其颜色值有三种…...

uniCloud基础使用
获取openID云函数use strict; exports.main async (event, context) > {//event为客户端上传的参数console.log(event : , event)// jscode2session 微信小程序登录接口,获取openidconst {code} event;// 云函数中如需要请求其他http服务,则使用uni…...
5、Elasticsearch优化
一、Elasticsearch集群配置 1、硬件选择 Elasticsearch的基础是 Lucene ,所有的索引和文档数据是存储在本地的磁盘中, 具体的路径可在 ES 的配置文件 ../config/elasticsearch.yml 中配置,如下:磁盘在现代服务器上通常都是瓶颈。…...

地质灾害防治单位资质
地质灾害危险性评估,是指在地质灾害易发区进行工程建设或者编制地质灾害易发区内的国土空间规划时,对建设工程或者规划区遭受山体崩塌、滑坡、泥石流、地面塌陷、地裂缝、地面沉降等地质灾害的可能性和建设工程引发地质灾害的可能性作出评估,…...

打怪升级之发送单个UDP包升级版
目标 1.message的输入由edit_control进行,需要捕获输入。 2.用户的主机地址和发送地址不一样,需要分别设置并绑定。 设计RC外观 必备组件:主机IP与端口,从机IP与端口,消息框,发送,连接按钮。…...

MyBatis开发
MyBatis开发入门搭建MyBatis框架开发环境在自己建的的项目建立个lib文件然后导入包3.两个jar包部署到项目中和为项目添加测试类库4.配置数据库mybatis-config.xml里面的配置:<?xml version"1.0" encoding"UTF-8"?> <!DOCTYPE config…...

excel 数据查询,几个模式化公式请收好
1、一对多查询 所谓一对多,就是符合某个指定条件的有多个结果,要把这些结果都提取出来。 如下图所示,希望根据F2单元格中指定的部门,提取出左侧列表中“生产部”的所有人员姓名。 Excel 2019及以下版本:在H2单元格输…...
Prometheus MySQL 性能监控
一、 介绍 Prometheus 是一种开源的监控系统和时序数据库,旨在收集和处理大量数据并提供可视化、监控警报等功能。它支持多种语言、多种部署方式,并且非常灵活,而且社区支持非常活跃,为用户提供了很多优秀的解决方案。 MySQL 是一…...
刷题记录:牛客NC24261[USACO 2019 Feb G]Cow Land
传送门:牛客 题目描述 Cow Land 总共有 NNN 个不同的景点( 2≤N≤1052 \leq N \leq 10^52≤N≤105 )。 一共有 n−1n-1n−1 条道路连接任意两个景点,这意味着任意两个景点间只有一条简单路径。 每个景点 iii 都有一个享受值 eie_iei &…...
MYSQL开发误区
一、表、列、索引设计误区 1、现象:在线业务系统出现了三张表以上的关联查询 建议:说明业务逻辑在表设计上的实现不合理,需要进行表结构调整,或进行列的冗余,或进行业务改造。 2、现象:大表拆成多张小表之…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
从面试角度回答Android中ContentProvider启动原理
Android中ContentProvider原理的面试角度解析,分为已启动和未启动两种场景: 一、ContentProvider已启动的情况 1. 核心流程 触发条件:当其他组件(如Activity、Service)通过ContentR…...