excel 2019版本的index match搜索功能

{=TEXTJOIN("+", TRUE, IF((sheet2!A:A="文字")*(sheet2!C:C=C5), sheet2!G:G, ""))}

excel单元格输入公式后:

=TEXTJOIN("+", TRUE, IF((sheet2!A:A="文字")*(sheet2!C:C=C5), sheet2!G:G, ""))

按Ctrl+Shift+Enter会出现{},代表数组公式,可以查找一组数据,并返回一组数据,然后根据情况处理即可,可以用JOIN将一组数据合并到一个单元格,用+分割或者其他符号分割即可。

原理:

复制代码
公式原理分解
1. 查找匹配的起始行号
这部分公式使用MATCH函数来确定与目标字符串(如"KV-20712314")首次匹配的位置:

excel
深色版本
MATCH("KV-20712314", Sheet2!A:A, 0)
"KV-20712314" 是我们要查找的文本。
Sheet2!A:A 是我们将在其中查找的列。
0 表示我们正在寻找精确匹配。
2. 查找匹配的结束行号
这部分公式也使用MATCH函数,但稍微复杂一些,因为它需要找到最后一项匹配的位置:

excel
深色版本
MATCH(1E+99, INDEX((Sheet2!A:A="KV-20712314")*Sheet2!E:E, , ), 0)
(Sheet2!A:A="KV-20712314") 创建一个逻辑数组,其中如果A列的值等于"KV-20712314",则为TRUE,否则为FALSE。
*(Sheet2!E:E) 将逻辑数组与E列的数值相乘。由于TRUE相当于1,FALSE相当于0,这意味着只有那些与"KV-20712314"匹配的行的金额会被保留下来,其余的都被设置为0。
INDEX(..., , ) 是一个特殊用法,其中第二个参数为空,这意味着INDEX将返回整个列。这样我们得到一个数组,其中包含了所有匹配项的金额以及其余为0的值。
MATCH(1E+99, ...) 寻找数组中的最大值(1E+99是一个非常大的数,保证能大于任何可能的金额)。由于我们之前将非匹配项设置为0,MATCH函数将找到最后一个非零值(即最后一个匹配项)的行号。
3. 使用INDEX和:操作符获取匹配项范围
一旦我们有了起始和结束行号,我们可以使用INDEX和:操作符来提取这一范围内的所有值:

excel
深色版本
INDEX(Sheet2!E:E, MATCH(...)) : INDEX(Sheet2!E:E, MATCH(...))
这将返回一个包含所有匹配项金额的数组。

4. 使用TEXTJOIN连接结果
最后,TEXTJOIN函数被用来将这些数值转换为带有分隔符的文本串:

excel
深色版本
TEXTJOIN("+", TRUE, ...)
"+" 是分隔符。
TRUE 表示忽略空值。
... 是从INDEX函数返回的数组。
总结公式
将所有部分放在一起,我们得到了完整的数组公式:

excel
深色版本
=TEXTJOIN("+", TRUE, INDEX(Sheet2!E:E, MATCH("KV-20712314", Sheet2!A:A, 0)):INDEX(Sheet2!E:E, MATCH(1E+99, INDEX((Sheet2!A:A="KV-20712314")*Sheet2!E:E, , ), 0)))
注意事项
由于公式中包含:操作符,它需要作为数组公式输入,即使用Ctrl+Shift+Enter。
如果你的Excel版本不支持INDEX函数的第二参数留空,你可能需要使用ROW函数和MATCH函数的组合来构建一个正确的索引数组。
这个公式假设匹配的行在数据中是连续的。如果有不连续的匹配行,你可能需要更复杂的解决方案,例如使用AGGREGATE函数或VBA代码。
相关推荐
Non-existent98713 天前
WPS批量清理单元格空白字符的4种方法-异常数字格式处理-实战
excel·wps
Channing Lewis13 天前
PHP 解析 Excel 的那些坑:一次“行号错位”引发的数据丢失
开发语言·php·excel
jarreyer13 天前
【数据分析绘图】excel绘图和bi工具区别
数据挖掘·数据分析·excel
chatexcel13 天前
ChatExcel Max使用教程:图片、PDF、网页与复杂Excel的一站式数据分析
数据分析·pdf·excel
cngkqy13 天前
excel从某一列中用match筛选匹配的数据
excel
qq_5469372713 天前
Excel批量转PDF_Word_图片,支持自动合并报表,效率翻倍。
pdf·word·excel
ai_coder_ai13 天前
在自动化脚本中操作excel文件
运维·自动化·excel
三千花灯13 天前
【Playwright】 自动化测试之参数化登录(Excel/CSV 数据源)
人工智能·机器学习·excel
罗政13 天前
AI工作流实现Excel全自动化(支持SQL)-案例:医院门诊排班表
人工智能·自动化·excel
小妖66613 天前
excel 怎么在单元格内容自动加上一段文字不能用公式
excel·vba