我的电子表格中有一个列,其中包含带有文字字符串的单元格,如:
我希望第二列保存取决于字符串是否包含 category1 , category2 等的值。我可以使用以下内容执行此操作:
=arrayformula(if(H32:H="","",(iferror(if(search("category1",H32:H),"The First Category"),iferror(if(search("category2",H32:H),"The Second Category"))))))
然而,类别列表本身是动态的,因此我不想将它们硬编码到公式中,而是希望从电子表格的其他地方检索它们,即:
| Category1 | "The First Category" |
| Category2 | "The Second Category" | // I want to be able to add to this list and have the formula retrieve the values.
有谁知道我怎么能这样做?
编辑:请参见样本表here。如您所见,A2中的arrayforumula查看E2-E4中的前3个键值,并获取相应的替换值。但是,我希望能够添加到键/替换列表中,而无需每次都手动更改A2中的公式。
答案 0 :(得分:0)
这对我有用:
=VLOOKUP(REGEXEXTRACT(C2,JOIN("|",INDIRECT("E2:E"&COUNTA(E:E)))),E:F,2,FALSE)
所以为了解释一下,你看到的连接函数和间接的部分基本上是一个动态正则表达式,当你向源列表中添加新的类别类型时,它会自动扩展(使用counta函数)
所以Vlookup用于提取与动态正则表达式匹配的值,并返回相应的索引“2”