如何索引匹配的单元格数组以查看每个单元格是否匹配? [英] How to index match an array of cells to see if each one will match?

查看:55
本文介绍了如何索引匹配的单元格数组以查看每个单元格是否匹配?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想要一个索引匹配(不必是这个公式)来遍历这些字符串的数组:

I want an index match (doesn't have to be this formula) to run through an array of these string:

black
white
yellow
red
green
blue
light blue

查看它们是否会与以下任何一个单元格部分匹配:

to see if they would partial match with any of these cells:

black t shirt
white t shirt
yellow t shirt
red t shirt
green t shirt

我该怎么做?

我尝试过:

=INDEX(!colors(MATCH(!"*"&{color1,color2,color3,color4}&"*",!tshirts)

我希望输出为t恤旁边一栏中的颜色以表示匹配

I want the output to be the color in a column beside the t shirt to indicate a match

black - black t shirt
white - white t shirt
red - red t shirt
etc

这似乎可行,但简直太烂了.我正在寻找更干净的代码:

This seems to work, but it's pretty darn janky. I'm looking for cleaner code:

这里变化的变量是我所指的颜色

The changing variable here is the color i'm referencing

=IFERROR(VLOOKUP("*"&G2&"*",I3,1,FALSE),IFERROR(VLOOKUP("*"&G3&"*",I3,1,FALSE),IFERROR(VLOOKUP("*"&G4&"*",I3,1,FALSE),IFERROR(VLOOKUP("*"&G5&"*",I3,1,FALSE),IFERROR(VLOOKUP("*"&G6&"*",I3,1,FALSE),IFERROR(VLOOKUP("*"&G7&"*",I3,1,FALSE),IFERROR(VLOOKUP("*"&G8&"*",I3,1,FALSE),"error")))))))

推荐答案

尝试:

=ARRAYFORMULA(IFNA(VLOOKUP(""&ROW(C1:C), SUBSTITUTE(REGEXREPLACE(TRIM(
 SPLIT(FLATTEN(QUERY(QUERY(SPLIT(FLATTEN(ROW(C1:C)&"♠♣"&IFERROR(TRIM(
 SPLIT(LOWER($C1:$C), " t ", 0, 0))&"♦")), "♣"), 
 "select max(Col2) 
  where Col2 matches '^"&TEXTJOIN("$|^", 1, IF(A1:A="",,LOWER(A1:A)&"♦"))&"$' 
  group by Col2 pivot Col1"),,9^9)), "♠")), "♦$", ), "♦", ","), 2, 0)))

或更短(仅适用于一种颜色):

or shorter (works only with one color):

=INDEX(IFNA(REGEXEXTRACT(C1:C, TEXTJOIN("|", 1, SORT(A1:A, 1, 0)))))

这篇关于如何索引匹配的单元格数组以查看每个单元格是否匹配?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆