感谢您抽出宝贵时间来查看我的问题。
我正在努力寻找合适的组合或数组,vlookup,索引/匹配配对。我的目标是针对另一个1列数组中的单个或成对单词的验证集测试1列数据数组(类型字符串)的每个单元格。如果数据数组中的单元格包含验证字,则函数将验证字输入到数据数组中的相邻单元格中。如果未找到匹配项,则应将相邻单元格设置为空。为了测试我的功能,我使用的数据类似于以下内容。
Desc_Array Result Array Validation_Array
| A | B | C |
__________________________________________________________________
1 | Lorem ipsum dolor sit amet | (null) | Quis nisi|
2 | Consectetur adipiscing elit | Cons | Ut |
3 | Sed do eiusmod tempor incididunt | Sed | Et |
4 | Ut labore et dolore magna aliqua | Ut | Ad |
5 | Ut enim ad minim veniam | Ut | Cons |
6 | Quis nostrud exercitation ullamco | (null) | Sed |
7 | Laboris nisi ut aliquip ex ea | Ut | |
8 | commodo consequat | Cons | |
arrayformula函数将在单元格B1
中结果数组中需要注意的几点。 如果验证字出现在数据数组中任何字的开头,则测试为TRUE。 找到第一场比赛时,测试可以返回TRUE。 该测试不区分大小写
对于测试,我可以使用简单的regexmatch表达式吗?
=if(Desc_Array<>"",regexmatch(Desc_Array,"\A(?i)"&Validation_Array),(NOT(ISBLANK(Desc_Array))))
我尝试过QUERY“contains”方法,但是测试1失败了。
我想我的事情就像:
=ArrayFormula(iferror(index(Validation_Array,match(Validation_Array,Desc_Array,FALSE),1),))
答案 0 :(得分:1)
=TRANSPOSE(SPLIT(TEXTJOIN(",",1,ArrayFormula(IFERROR(
REGEXEXTRACT(A1:A8,
"(?i)[^a-z\-]("&JOIN(")|[^a-z\-](",C1:C6)&")|^("&JOIN("|",C1:C6)&")"),
"(null)"))),","))
注意:
C1:C6
= Validation_Array
A1:A8
= Desc_Array