google-sheets - 谷歌电子表格 : if cell contains one of a list of predefined values

标签 google-sheets

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

  • Lorem ipsum blah blah category1
  • Lorem ipsum blah blah 类别 2

我想要第二列来保存值,具体取决于字符串是否包含 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 中的公式。

最佳答案

这对我有用:

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

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

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

关于google-sheets - 谷歌电子表格 : if cell contains one of a list of predefined values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29649058/

相关文章:

google-sheets - 在 Google 表格中,如何查找包含特定文本的单元格的行号?

要从 Google 电子表格中捕获的 HTML 选择选项

javascript - 返回多个值并访问它们?

javascript - 表单提交触发的 Google 脚本有时不起作用

使用库调试 Google 电子表格脚本

javascript - 提取单元格编辑器名称并将其写入相应行

php - 如何使用 PHP 从 Google 表格中删除行?

google-apps-script - 可以在Google App脚本中使用Google Spreadsheet函数吗?

google-apps-script - 谷歌应用程序脚本中 array.includes() 的替代方案?

javascript - 将 JSON 数据导入 Google 表格