excel函数技巧:两个查询函数的用法比较 下篇

news2024/11/14 16:27:04

VLOOKUP和LOOKUP这对高频函数的较量注定是场持久战。在前两个回合的较量中,VLOOKUP占据上风,此番更要乘胜追击。新一轮较量,即刻开战!

***ROUND 03 交叉查询

什么是交叉查询?我们可以通过一个查找值查找多个字段。如果被查找的多个字段的排列顺序与查找区域中对应字段的顺序不一致,我们称之为交叉查询。如下,我们要从数据源中查找“阿普”的多个字段“绰号”“能力”“职位”,很显然被查找字段与数据源中字段“职位”“能力”“绰号”的排列顺序不一致,这就是交叉查询,要怎么做呢?

最基础的做法就为每一个查找字段单独设置公式。

H3公式 =VLOOKUP($G3,$A$1:$E$12,5,0)

I3公式 =VLOOKUP($G3,$A$1:$E$12,4,0)

J3公式 =VLOOKUP($G3,$A$1:$E$12,3,0)

这种逐一设置公式的做法很笨拙,除了需要重复输入类似的公式外,还需要人工判别每一个单元格的返回列值。如果查找字段很多,估计会逼疯不少表亲。下面看看小花是如何使用VLOOKUP和LOOKUP做交叉查询的。

VLOOKUP:经天纬地,拿手好戏

VLOOKUP和MATCH这对函数组合正是为交叉查询而生。VLOOKUP通过MATCH函数的协助,自动判断出返回列值。MATCH函数用于返回查找值在某一行/列中的位置,它的语法是MATCH(查找值,查找行/列,查找方式)。此处我们用到的查找方式是精确查找,第三个参数用FALSE或0表示。

公式说明

以B17公式为例,“职位”出现在A1:E1的第三个位置,所以MATCH的返回值为3。

介绍完MATCH函数的基本用法后,隆重介绍EXCEL函数中一种使用频率最高的函数组合——VLOOKUP+MATCH。

=VLOOKUP($G3,$A$1:$E$12,MATCH(H$2,$A$1:$E$1,0),0)

公式说明

VLOOKUP+MATCH组合的基本套路是=VLOOKUP(查找值,查找区域,MATCH(查找字段,字段区域,0),0)。它是在VLOOKUP的基本用法上,将第三个参数返回值列序用MATCH替换,通过匹配,自动返回目标字段在查找区域的列序。

套路的基本要点如下:

1.MATCH的查找值必须与VLOOKUP查找区域标题行中的某个单元格完全一致。这是高频错误点,需注意空格的干扰!

2.为了使公式可以拖动填充,VLOOKUP的第一个参数通常锁定列,如$G3,第二个参数通常锁定行和列,如$A$1:$E$12;MATCH的第一个参数通常锁定行,如H$2,第二个参数通常锁定行和列,如$A$1:$E$1。公式最后是“,0),0)”这样的结构,分别表示MATCH函数和VLOOKUP函数都执行精确匹配。这些细节都是小白容易忽略、出错的地方。

LOOKUP:数组形式,剑走偏锋

说实话,交叉查询,LOOKUP同样无法单干,需要找帮手组团行动,譬如 LOOKUP+MATCH+OFFSET。

=LOOKUP($G3,OFFSET($A$1:$A$12,,,,MATCH(H$2,$A$1:$E$1,0)))

公式说明

该公式使用了LOOKUP的数组形式=LOOKUP(查找值,查找区域),表示在查找区域的首行/列中进行匹配,返回查找区域末行/列中与之对应的值。于是问题的重点就变成了如何使查找区域的末列自动变为返回值的所在列。我们用OFFSET函数和MATCH函数来解决。

OFFSET函数是一个偏移函数,它根据给定的偏移行数和列数从初始位置偏移至指定区域,并返回指定大小的区域,它的语法是:=OFFSET(初始区域,偏移行数,偏移列数,[返回区域的行数],[返回区域的列数])

此处我们的初始区域为A1:A12,返回区域仍然是以A1:A12为首列的区域,行、列偏移量皆为0,返回区域的行数也与初始区域一致,因此这三个参数直接用逗号占位,不填数字。最后我们通过MATCH返回匹配列序数,从而确定OFFSET返回区域的列数。公式最终返回以A列为首列、以MATCH返回值为末列,包含1-12行的区域。以H3中的公式为例,MATCH返回5,则OFFSET返回结果是以A1:A12为首列的5列区域即A1:E12。把A1:E12作为LOOKUP数组形式的第二个参数,LOOKUP将查找值$G3在区域A1:E12的首列A1:A12中进行匹配,返回查找区域A1:E12的末列E1:E12中与之对应的值,从而完成交叉查询。

第三回合,在处理交叉查询问题时,VLOOKUP和LOOKUP都能应对自如。

但VLOOKUP的用法较为简单,只需借助MATCH函数即可完成,而LOOKUP函数则需要MATCH和OFFSET两个函数和它配合才能实现。综合看来,后者不如前者简单易学。

***结束语:

VLOOKUP+MATCH是查询函数中非常经典的套路,LOOKUP的数组形式在实战中也非常实用,两者都是查询函数学习的重中之重。希望小伙伴们不要只做VLOOKUP和LOOKUP较量中的吃瓜群众,还要能深入了解其原理,掌握用法,提升能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/172053.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android 深入系统完全讲解(26)

AudioTrack 构造过程 每一个音频流对应着一个 AudioTrack 类的一个实例,每个 AudioTrack 会在创建时注册到 AudioFlinger 中,由 AudioFlinger 把所有的 AudioTrack 进行混合(Mixer),然后输送到 AudioHardware 中进行播…

spice auth过程分析

1、客户端选择认证方法 Client authentication method selection抓包分析{Authentication selected by client: Spice (1)}代码分析spice_channel_send_link(channel);if (!spice_channel_recv_link_hdr(channel) ||!spice_channel_recv_link_msg(channel) ||!spice_channel_re…

Allegro如何设计线圈操作指导

Allegro如何设计线圈操作指导 在做PCB设计的时候,在特殊场合时候需要设计线圈,Allegro支持快速设计出线圈,如下图 具体操作如下 选择File选择Change Editor

实现树莓派homeassistant OS远程控制内网穿透--ddnsto教程

一、两种穿透服务 1、molohub 一种是论坛提供的molohub,但是可能因为自己这边的网络原因在配置过程中一直无法连接到服务器,无法绑定github,因此放弃molohub的方法。如下图所示。molohub教程如下,不再赘述。 molohub的Github教程…

ejson4cpp——一个使用极致简单且性能可比rapidjson的C++json解析库

文章目录ejson4cpp快速开始要求安装与引入开始使用常见用法API介绍通过命名风格识别API宏定义FROM_JSON_FUNC&FROM_JSON_FRIEND_FUNCTO_JSON_FUNC&TO_JSON_FRIEND_FUNCAUTO_GEN_NON_INTRUSIVE&AUTO_GEN_INTRUSIVEENABLE_JSON_COUTFromJSON系列函数参数说明使用示例…

WireShark从入门到精通

一、什么是WireShark?Wireshark 是一个开源抓包工具或者叫网络嗅探器,用于分析网络流量和分析数据包。其实WireShark以前的名字不叫WireShark,以前都叫做Ethereal,于1998 年首次开发,直到 2006 年才改为 Wireshark。Wi…

powerdns 系列之二 PowerDNS Authoritative Server

PowerDNS Authoritative Server 权威服务器,直接查询数据库去尝试解析,数据库中若不存在此记录,则直接返回空结果。 os: centos 7.8.2003 pnds: 4.7.3 安装 pdns 安装 pdns auth yum install epel-release yum-plugin-priorities curl -o…

Alibaba微服务组件Nacos注册中心学习笔记

1. 什么是 Nacos 什么是 Nacos官方网站:什么是 Nacos 官方:一个更易于构建云原生应用的动态服务发现(Nacos Discovery )、服务配置(Nacos Config)和服务管理平台。 集 注册中心配置中心服务管理 平台 Nacos 的关键特性包括: 服务发现和服务健康监测 动态配置服…

Vue前端项目【尚品汇】

Vue前端项目【尚品汇】1. 说明2. 对项目创建3.结构4. 项目运行起来时,浏览器自动打开5.关闭ESLint校验功能1. 说明 学习完了Vue后并没有一个整体的项目,让我明白前端的工程化开发。因此在B站找了一个开源的项目进行练手,并在这里进行记录。 …

深度学习理论介绍

在机器学习理论介绍中说过,深度学习是机器学习的一种技术,下面我们具体来看下。 1、 定义 深度学习首先是一种机器学习。深度学习的基础,叫做神经网络,这本身就是一种机器学习算法。 深度神经网络(Deep Neural Netwo…

产品小白如何从模仿开始学习Axure

​有一些小伙伴有这样的疑问,如果想学习产品经理的知识,但是从来对产品经理完全没有认识,该怎样去开始学习呢? 对于这种情况的小伙伴,有个建议是可以先从axure的学习入手。 那么问题又来了,应该如何开始axu…

只靠石墨烯电池,撑不起两轮电动车的“高端梦”

文|智能相对论作者|陈明涛在两轮电动车上,“石墨烯”电池已经成为品牌标配。雅迪、爱玛、台铃等都有搭载石墨烯电池的车型,雅迪的TTFAR石墨烯电池已经迭代到第4代,而第3代Plus电池搭载在冠能3 E9 PRO上完成量产上市;爱玛、台铃都和…

(侯捷C++)1.1面向对象高级编程(上)

一.C编程简介 1.C历史 B语言 → C语言 → C语言(new C → C with Class → C) 面向对象的语言:C、Java、C# 2.C演化 C 98(1.0) → C 03 → C 11(2.0) → C 14 Class两个经典分类:有指针(Complex类为例&#xff0…

python经典例题

目录标题1,计算数字的阶乘2,区间内的所有素数3,求前n个数字的平方和4,移除列表中的多个元素5,列表去重6,对简单列表元素排序7,对复杂列表元素排序8,读取成绩问卷并排序-读取文件&…

在MySQL5基础上安装MySQL8解压版安装服务指向MySQL5的问题

Windows10在MySQL5解压版基础上安装MySQL8解压版后服务启动失败 1. 遇到的问题: MySQL8目录下没有生成data文件夹启动服务失败,右键服务属性,可执行文件的路径竟然是MySQL目录下的日志文件在MySQL5目录下,日志内容会提示读取了M…

【C语言】动态内存实现通讯录(malloc,calloc,realloc)

目录 一、为什么要存在动态内存开辟 二、动态内存函数 2.1 malloc 2.1.1 函数介绍 2.1.2 函数的使用 2.1.3 free 2.2 calloc 2.2.1 函数介绍 2.2.2 函数的使用 2.3 realloc 2.3.1 函数的介绍 2.3.2 函数的使用 三、改进通讯录 3.1 初始化 3.2 增加信息 3.3 排序&am…

R语言贝叶斯方法在生态环境领域中的高阶技术应用

贝叶斯统计已经被广泛应用到物理学、生态学、心理学、计算机、哲学等各个学术领域,其火爆程度已经跨越了学术圈,如促使其自成统计江湖一派的贝叶斯定理在热播美剧《The Big Bang Theory》中都要秀一把。贝叶斯统计学即贝叶斯学派是一门基本思想与传统基于…

从正则表达式到NFA

一、正则表达式到NFA的基本结构 1. 我们先回顾一下 RE 的三个基本操作: 可选(alternative):对于给定的两个正则表达式 M 和 N,选择操作符( | )形成一个新的正则表达式 M|N ,如果一…

28.Isaac教程--使用Sight的远程操纵杆

使用Sight的远程操纵杆 ISAAC教程合集地址: https://blog.csdn.net/kunhe0512/category_12163211.html 文章目录使用Sight的远程操纵杆设置 Isaac 应用程序以使用虚拟游戏手柄小部件关于虚拟游戏手柄小部件使用虚拟游戏手柄小部件运作模式手柄模式鼠标模式键盘模式控制机器人运…

设计模式_行为型模式 -《责任链模式》

设计模式_行为型模式 -《责任链模式》 笔记整理自 黑马程序员Java设计模式详解, 23种Java设计模式(图解框架源码分析实战) 概述 在现实生活中,常常会出现这样的事例:一个请求有多个对象可以处理,但每个对象…