Google sheets 对包含逗号分隔值的单元格使用VLOOKUP或MATCH

Google sheets 对包含逗号分隔值的单元格使用VLOOKUP或MATCH,google-sheets,google-sheets-formula,array-formulas,google-sheets-query,gs-vlookup,Google Sheets,Google Sheets Formula,Array Formulas,Google Sheets Query,Gs Vlookup,我试图使用VLOOKUP或INDEX和MATCH组合来处理我在Google Sheets中处理的一个小项目,但当单元格包含逗号分隔的值时,我遇到了麻烦。我在下面提供了一个例子: 列A和列B构成搜索范围,列C包含搜索键D列使用VLOOKUP方法,E列使用索引和匹配方法。第一行单元格的公式如下: =VLOOKUP("*"&$C1&"*", A$1:B$4, 2, FALSE) 如果一切正常,D列和E列应该垂直拼写“成功”,但显然存在一些问题。当我最初开始寻找帮助时,我发现了在搜

我试图使用
VLOOKUP
INDEX
MATCH
组合来处理我在Google Sheets中处理的一个小项目,但当单元格包含逗号分隔的值时,我遇到了麻烦。我在下面提供了一个例子:

列A列B构成搜索范围,列C包含搜索键D列使用
VLOOKUP
方法,E列使用
索引
匹配
方法。第一行单元格的公式如下:

=VLOOKUP("*"&$C1&"*", A$1:B$4, 2, FALSE)

如果一切正常,D列E列应该垂直拼写“成功”,但显然存在一些问题。当我最初开始寻找帮助时,我发现了在搜索键的开头和结尾添加通配符(*)的方法,以便忽略我正在搜索的值之前或之后的文本。除非一个搜索键的条件可以匹配不同的搜索键,例如,当我在第1行中搜索“第3页”时,但“第32页”和“第33页”也存在,否则这是有效的。只有当我正在搜索的值本身不在单元格中,并且前面有一行中的“匹配”值时(例如,与第1行中的“Pg 3”键匹配的“Pg 33”和与第7行中的“Pg 6”键匹配的“Pg 64”)才会出现问题

不幸的是,在我正在进行的项目中,我将无法将范围按字母数字顺序排序,因此,任何对解决方案的帮助都是值得赞赏的,最好只是使用公式,而不是钻研谷歌应用程序脚本。希望我的解释足够清楚,我不喜欢使用
VLOOKUP
还是
MATCH

=ARRAYFORMULA(IFERROR)(VLOOKUP(C1:C,
=ARRAYFORMULA(IFERROR(VLOOKUP(C1:C, 
 TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(IFERROR(SPLIT(A1:A, ","))<>"", "♦"&SPLIT(A1:A, ",")&"♠"&B1:B, ))
 ,,999^99)),,999^99), "♦")), "♠")), 2, 0)))
例如:转置( 如果(Iferor(拆分)(A1:A,“,”)”,“♦"&拆分(A1:A,“,”&”♠“&B1:B,)) ,,999^99)),,999^99), "♦")), "♠")), 2, 0)))

感谢您的快速回复。我正在浏览您的公式,我在理解其中一些公式时遇到困难,尤其是钻石和黑桃符号的用途。您介意解释一下您的流程吗?另外,我提供的示例仅用于解释我的问题,但当我在实际项目中实施此方法时我正在处理的ect,有没有一种方法可以在不创建数组的情况下执行此操作,因为我不希望返回的值与我正在搜索的范围中的值一样多?如果您愿意,我可以提供该项目的模型。当然,这没有任何意义。♦♠ 只是拆分公式的唯一符号。它可以是任何符号♥☺♫♀♂↨♣... 基本上,这个公式做的是从一列中分割逗号分隔的值,并将B列中的值分配给每一列。然后它只在arrayAh中执行简单的vlookup,好的,这更有意义。我试图自己来做这件事,但如果我遇到太多困难,你知道我将如何在si中实现它吗单个单元格而不在数组中?对于单个单元格:
=数组公式♦拆分(A1:A,“,”&&S)♠&B1:B,),,999^99),999^99♦")), "♠),2,0))
=ARRAYFORMULA(IFERROR(VLOOKUP(C1:C, 
 TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(IFERROR(SPLIT(A1:A, ","))<>"", "♦"&SPLIT(A1:A, ",")&"♠"&B1:B, ))
 ,,999^99)),,999^99), "♦")), "♠")), 2, 0)))