列上的耦合值
Coupling values on columns
我有一个电子表格,其中有多个列的值,就像这个方案
value1 value2 value3
我想像这个方案一样将每个值相互耦合:
value1 value2
value1 value3
value2 value3
是否有任何 excel 函数或 python 代码或 OpenRefine 函数可以执行此任务?
在 OpenRefine 中,您可以分三步完成此操作。
首先将所有值放入一个单元格中,每个值之间有一个分隔符,该分隔符未在任何文本中使用:
从其中一个列的下拉菜单中选择菜单 "Edit Column->Add column based on this column"
使用 GREL:
forEach(row.columnNames,cn,cells[cn].value).join("|")
您应该有一个新列,其中包含所有连接在一个单元格中的值:
value1|value2|value3
现在创建术语组合 - 从新列的下拉菜单中选择菜单 "Edit Cells->Transform..."
使用 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|
然后最后在同一列上使用菜单项 "Edit cells->Split multi-valued cells..." 指定管道“|”字符作为分隔符。您现在将拥有一个包含每个组合的列:
value1,value2
value1,value3
value2,value3
我有一个电子表格,其中有多个列的值,就像这个方案
value1 value2 value3
我想像这个方案一样将每个值相互耦合:
value1 value2
value1 value3
value2 value3
是否有任何 excel 函数或 python 代码或 OpenRefine 函数可以执行此任务?
在 OpenRefine 中,您可以分三步完成此操作。 首先将所有值放入一个单元格中,每个值之间有一个分隔符,该分隔符未在任何文本中使用:
从其中一个列的下拉菜单中选择菜单 "Edit Column->Add column based on this column" 使用 GREL:
forEach(row.columnNames,cn,cells[cn].value).join("|")
您应该有一个新列,其中包含所有连接在一个单元格中的值:
value1|value2|value3
现在创建术语组合 - 从新列的下拉菜单中选择菜单 "Edit Cells->Transform..." 使用 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|
然后最后在同一列上使用菜单项 "Edit cells->Split multi-valued cells..." 指定管道“|”字符作为分隔符。您现在将拥有一个包含每个组合的列:
value1,value2
value1,value3
value2,value3