【问题标题】:Google spreadsheets: if cell contains one of a list of predefined valuesGoogle电子表格:如果单元格包含预定义值列表之一
【发布时间】:2015-06-21 08:16:44
【问题描述】:

我的电子表格中有一个列,其中包含带有文本字符串的单元格,例如:

  • Lorem ipsum blah blah category1
  • Lorem ipsum blah blah category2

我希望有第二列,该列将根据字符串是否包含 category1category2 等来保存值。我可以这样做:

=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 中的公式。

【问题讨论】:

  • 分享一个包含一些数据和预期结果的示例电子表格怎么样?
  • 如你所愿。请参阅编辑。谢谢。

标签: google-sheets


【解决方案1】:

这对我有用:

=VLOOKUP(REGEXEXTRACT(C2,JOIN("|",INDIRECT("E2:E"&COUNTA(E:E)))),E:F,2,FALSE)

所以稍微解释一下,您使用连接函数和间接函数看到的部分基本上是一个动态正则表达式,当您将新类别类型添加到源列表时,它会自动扩展(使用 counta 函数)

所以它会进行 Vlookup,以提取与动态正则表达式匹配的值,并返回相应的索引“2”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-30
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多