我的电子表格包含多个列中的值,如此方案
value1 value2 value3
我希望像这个计划一样将每个价值相互结合:
value1 value2
value1 value3
value2 value3
是否有任何excel函数或python代码或OpenRefine函数执行此任务?
答案 0 :(得分:1)
在OpenRefine中,您可以分三步完成。 首先将所有值放入单个单元格中,并在每个值之间使用分隔符,并且不在任何文本中使用:
从其中一个列的下拉菜单中选择菜单"编辑列 - >根据此列添加列" 使用GREL:
forEach(row.columnNames,cn,cells[cn].value).join("|")
您应该有一个新列,其中包含所有在一个单元格中连接在一起的值:
value1|value2|value3
现在创建条款的组合 - 从新列的下拉菜单中选择菜单"编辑单元格 - >转换..." 使用GREL:
forEachIndex(value.split("|"),i,v,forRange(i+1,value.split("|").length(),1,j,v.trim() + "," + value.split("|")[j].trim()).join("|")).join("|")
这应该为您提供一个组合列表,其中的值以逗号分隔,并且由管道字符分隔的组合(可以随意替换上面GREL中的其他连接字符以用于不同的分隔符):
value1,value2|value1,value3|value2,value3|
然后最后在同一列上使用菜单项"编辑单元格>拆分多值单元格..."指定管道' |'字符作为分隔符。您现在将拥有一个包含每个组合的列:
value1,value2
value1,value3
value2,value3