Openrefine 如何联接一列单元格的值,但仅当满足基于另一列的条件时

Openrefine 如何联接一列单元格的值,但仅当满足基于另一列的条件时,openrefine,Openrefine,在记录模式下,是否可以联接一列单元格的值,但前提是满足基于另一列的条件 例如: 使用这些数据,在每个记录中,只为col2=“yes”所在的行连接col3中的值 预期结果: 这里有一个Python/Jython解决方案: col2 = row.record.cells.col2.value col3 = row.record.cells.col3.value return ";".join([x for x,j in zip(col3,col2) if j == "yes"]) 对于Gre

在记录模式下,是否可以联接一列单元格的值,但前提是满足基于另一列的条件

例如: 使用这些数据,在每个记录中,只为col2=“yes”所在的行连接col3中的值

预期结果:


这里有一个Python/Jython解决方案:

col2 = row.record.cells.col2.value
col3 = row.record.cells.col3.value

return ";".join([x for x,j in zip(col3,col2) if j == "yes"])

对于Grel来说,最好的解决方案可能是这样(如果你喜欢俄罗斯娃娃):

不使用公式也可以做到这一点:

  • 切换到行模式
  • 在col2上选择“是”
  • 在col3(或col3的副本)上:编辑单元格/连接多值单元格
  • 再次在col3上(或您的col3副本):编辑单元格/填充

坦斯克!我也试过ForEachDex(),但头痛得厉害!
forEachIndex(row.record.cells.col3.value, i, v, if(row.record.cells.col2.value[i]=="yes", v, null)).join(";")