(由于我的组织政策,我无法共享样本表。)
我有两张这样的数据:
工作表1
工作表2
现在,在Sheet1的C列中,我正在寻找一个通过在中删除空格然后从中的行返回值后匹配子字符串inARRAYFORMULA
来查找in的值。Sheet1!A:A
Sheet2!A:A
Sheet2!A:A
Sheet2!B:B
我想出了一个非ARRAYFORMULA
公式来获取每行的数据(Sheet1!C:C
如下所示)。但是我的实际数据集有成千上万的行,我不想将一个公式复制/粘贴到每个行中。
每行都有一个公式,如下所示:
=TEXTJOIN(
", "
, TRUE
, IFNA(
FILTER(
Sheet2!B:B
, Sheet2!B:B <> ""
, Sheet2!A:A <> ""
, NOT(
ISERROR(
SEARCH(
REGEXREPLACE(Sheet2!A:A, " ", "")
, A2
)
)
)
)
, "not found"
)
)
我试图将其转换为ARRAYFORMULA
in Sheet1!B2
,但未产生预期的结果。公式为:
=ArrayFormula(
TEXTJOIN(
", "
, TRUE
, IFNA(
FILTER(
Sheet2!B:B
, Sheet2!B:B <> ""
, Sheet2!A:A <> ""
, NOT(
ISERROR(
SEARCH(
REGEXREPLACE(Sheet2!A:A, " ", "")
, A2:A
)
)
)
)
, "not found"
)
)
)
好的,我终于可以使用它和子字符串了SEARCH
。
=Array_Constrain(TRANSPOSE(ArrayFormula(REGEXREPLACE(REGEXREPLACE(SPLIT(TEXTJOIN(", ",1,{ArrayFormula(IFERROR(HLOOKUP("Value",Sheet2!B:B,ArrayFormula(Transpose(SEQUENCE(COUNTA(Sheet2!A2:A),1,2))*(SEARCH(TRANSPOSE(SUBSTITUTE(FILTER(Sheet2!A2:A,LEN(Sheet2!A2:A))," ",)),FILTER(A2:A,LEN(A2:A)))>0)),0))),ArrayFormula(IF(SEQUENCE(COUNTA(A2:A)),";",""))}),", ;",0,0),"^, ",),"^$","not found"))),COUNTA(A2:A),1)
“可读”版本:
=Array_Constrain(
TRANSPOSE(
ArrayFormula(REGEXREPLACE(
REGEXREPLACE(
SPLIT(
TEXTJOIN(
", ",
1,
{
ArrayFormula(IFERROR(
HLOOKUP(
"Value",
Sheet2!B:B,
ArrayFormula(
Transpose(
SEQUENCE(COUNTA(Sheet2!A2:A),1,2)
)*
(SEARCH(
TRANSPOSE(
SUBSTITUTE(
FILTER(
Sheet2!A2:A,
LEN(Sheet2!A2:A)
),
" ",
)
),
FILTER(A2:A,LEN(A2:A))
)>0)
),
0
)
)),
ArrayFormula(IF(
SEQUENCE(COUNTA(A2:A)),
";",
""
))
}
),
", ;",
0,
0
),
"^, ",
),
"^$",
"not found"
))
),
COUNTA(A2:A),
1
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句