列上的耦合值

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