Excel公式:index + match多条件匹配,以当前行多个单元值去另一文档匹配,返回指定单元值

news/2025/2/5 22:10:12/

index函数

解析: 在一个范围内(如下图A2:C3),根据行列坐标(如下图第一行,第一列),返回单元格的值
index函数

match函数

解析: 参数列表如下,第一个参数即需要查找的a值,第二个参数为数组:即可以是一列(或者一行)中的一段范围,第三个参数为是否精准匹配(0为精准匹配,1为模糊匹配)。返回在这一段范围的位置

=match(A2,A2:A3,0)

会返回 1

match函数

举个栗子

将index 和match联合在一起使用

首先需要思考为啥能联合在一起使用,因为index是根据行列坐标去定位具体的某个单元格值。而match 恰好可以返回行号(或列号),再根据我们想要取的某列(或某行);
因此 index 函数就可以用match 返回的行号以及自己指定的列号,返回想要的单元格值。

需求一:根据sheet1 的第一列的值,去sheet2的第一列中查找能匹配上的一行,返回第四列。

sheet1示例数据
sheet2数据

在sheet1工作薄的D29单元格输入公式:

=index(sheet2!A29:D30,match(sheet1!A29,sheet2!A29:A30,0),4)

返回值为:d

公式及解析如下:

需求一

需求二:根据A、B、C列的值去匹配sheet2中的A,B,C列 返回D列

*sheet1 数据*
 *sheet2数据*

公式为:

=INDEX(sheet2!A29:D30,MATCH(sheet1!A29&sheet1!B29&sheet1!C29,sheet2!A29:A30&sheet2!B29:B30&sheet2!C29:C30,0),4)

注意:写完后,需要Ctrl + Shift+ enter,不然会显示#VALUE!

sheet1中查找成功并返回 “多列匹配”的单元格值。如下图。
需求二

需求三: 在 Sheet2 标签页中匹配当前行中的三个列值,如果存在返回判断结果

在excel中公式错误返回值 ERROR.TYPE 返回值有:

错误类型错误类型代码
#NULL!1
#DIV/0!2
#VALUE!3
#REF!4
#NAME?5
#NUM!6
#N/A7

公式:

=IF(ERROR.TYPE(MATCH(sheet1!A29&sheet1!B29&sheet1!C29,sheet2!A29:A30&sheet2!B29:B30&sheet2!C29:C30,0))=7,"未找到","存在")

需求三


http://www.ppmy.cn/news/876075.html

相关文章

基于FPGA的EEPROM读写测试项目(IIC驱动)

EEPROM (E2PROM,Electrically Erasable Progammable Read Only Memory)电可擦除可编程只读存储器。非易失性(断电保持)。 以AT24C64为例阅读datasheet可了解EEPROM的特性,AT24C64存储器容量为64Kbit(8192 byte256页*32…

【FPGA】I2C协议

1.I2C简介 I2C 即 Inter-Integrated Circuit(集成电路总线),是由 Philips 半导体公司(现在的 NXP 半导体公司)在八十年代初设计出来的一种简单、双向、二线制总线标准。多用于主机和从机在数据量不大且传输距离短的场合下的主从通…

D29:Post Office(邮局,翻译)

原题:OpenJudge - 162:Post Office 翻译: 描述:有一条笔直的公路,公路旁边有村庄。公路表示为一个整数轴,每个村庄的位置用一个单一的整数坐标来标识。村庄处于不同位置。两个位置之间的距离是它们的整数坐标之差的绝…

D29第七章 回溯算法part05* 491.递增子序列* 46.全排列* 47.全排列 II

第七章 回溯算法part05 * 491.递增子序列 class Solution {private List<Integer> path new ArrayList<>();private List<List<Integer>> res new ArrayList<>();public List<List<Integer>> findSubsequences(int[] nums) {backt…

%.9d\n = %09d\n

#include <stdio.h> int main(void) { int year 05; printf("%09d\n",year); printf("%9d\n",year); printf("%.9d\n",year); return 0; } 输出结果&#xff1a; 000000005 ________5 000000005 测试环境&#xff1a;操作系统&#xff1a…

【Linux_选择题】(D29 0528)

【Linux_选择题】 (D29 0528) 1、X86体系结构在保护模式下中有三种地址&#xff0c;请问一下那种说法是正确的 ( A ) A 虚拟地址先经过分段机制映射到线性地址&#xff0c;然后线性地址通过分页机制映射到物理地址   B 线性地址先经过分段机制映射到虚拟地址&#xff0c;然后…

D29|递增子序列+全排列+总结去重逻辑

491.递增子序列 1.题目 给定一个整型数组, 你的任务是找到所有该数组的递增子序列&#xff0c;递增子序列的长度至少是2。 2.实现 思考&#xff1a; 1&#xff09;此时不能对数组排序&#xff0c;而数组又有重复的元素该如何进行“树层”去重呢&#xff1f; 2&#xff09;对子…

PostgreSQL 行转列

法一: crosstab 原表(左)及现实结果表(右)展示: 第一步: 安装扩展 create extension tablefunc; ** 否则后续会报错 错误: 函数 crosstab(unknown, unknown) 不存在 第二步: 对表进行空值处理(此处将空值填写为字符串空值) update t_user_income set income空值 where i…