You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从单列表格生成两两组合的名称值对?

生成单列表格的不重复两两配对表格

输入表格

name
ALICE
BOB
CHUCK

期望输出表格

nameAnameB
ALICEBOB
ALICECHUCK
BOBCHUCK

下面提供几种常用工具的实现方案:

SQL 实现

通过自连接并添加过滤条件,避免生成重复配对:

SELECT t1.name AS nameA, t2.name AS nameB
FROM your_table t1
JOIN your_table t2 ON t1.name < t2.name
ORDER BY t1.name, t2.name;

ON t1.name < t2.name 确保每个配对仅出现一次(不会同时生成ALICE&BOB和BOB&ALICE)。

Python 实现

利用itertools.combinations直接生成所有不重复的两两组合:

import itertools
import pandas as pd

# 从表格读取或直接定义名称列表
names = ["ALICE", "BOB", "CHUCK"]
# 生成两两不重复组合
pairs = itertools.combinations(names, 2)
# 转为DataFrame输出
df = pd.DataFrame(pairs, columns=["nameA", "nameB"])
print(df)

执行后即可得到符合要求的两列表格。

Excel 实现

公式法

  1. 将名称放在A列(A2:A4为目标名称)
  2. 在C2输入公式:=INDEX($A$2:$A$4,INT((ROW()-2)/COUNTA($A$2:$A$4))+1)
  3. 在D2输入公式:=INDEX($A$2:$A$4,MOD(ROW()-2,COUNTA($A$2:$A$4))+1)
  4. 下拉填充至所有可能行,筛选掉C列值 >= D列值的行,最终保留的行即为目标配对。

Power Query 法(更高效)

  1. 将数据导入Power Query
  2. 选择「添加列」→「自定义列」,输入[name] < [name.1](自连接后生成的重复列)
  3. 筛选自定义列为True的行
  4. 重命名列并移除冗余列,加载回Excel即可得到目标表格。

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 17:20:10