0

从广义上讲,这就是我想要做的事情:在电子表格的一个单元格中解析一个字符串,然后如果在解析的单元格中找到某些关键字,则将关键字添加到该行中的另一个单元格。

我正在使用 OpenRefine(技术上是 Google Refine 2.5)来尝试执行此操作,使用“基于此列添加列”功能,但我还没有在新列中实际显示任何内容。

这是我正在使用的 GREL 表达式的当前迭代:

if (contains(cells["dates and codes"].value,"beef"), cells["protein"].value +=" beef", "")

它抛出以下错误:

偏移量 77 处的解析错误:缺少数字、字符串、标识符、正则表达式或带括号的表达式

我是这个软件和 GREL 的新手,但我的搜索还没有出现这种字符串函数。(我想我现在对如何引用特定单元格有了更好的了解,但我想这也可能是问题所在。)

A. 这可能吗?
B. 有没有比编写一堆 if(contains()) 语句更有效的方法来做到这一点?

4

1 回答 1

0

您的 GREL 表达式很有意义,看起来您在偏移量 77 处有一个额外的等号。

if (contains(cells["dates and codes"].value,"beef"), cells["protein"].value +" beef", "")

在任何情况下,您都需要定义您的包含逻辑,以便您可以将所有内容包装在超长的 GREL 表达式中。或者,您可以单独执行每个 if(contains()) 。为了获得一些时间,我将执行以下操作:

  1. 写出表达式一
  2. 将其导出到记事本
  3. 使用搜索和替换功能更新它
  4. 将新表达式重新应用于您的项目。

您可以在此博客文章中找到有关此过程的更多详细信息。

于 2014-10-16T03:09:49.590 回答