Excel中统计两列反向组合出现次数的简易公式求问
赛事配对组合次数统计与标记方案
核心思路是将任意两队的主客场配对转化为固定顺序的唯一字符串,以此消除主客场顺序的影响,再基于这个唯一字符串统计出现次数。以下是具体实现方法:
方法1:辅助列+COUNTIF统计(兼容所有Excel版本)
- 添加配对组合辅助列:假设赛事数据的Home列是A列,Away列是B列,在C2单元格输入公式:
=IF(A2<B2,A2&"-"&B2,B2&"-"&A2)
下拉填充到所有600行数据。这个公式会自动将两队名称按字典序排序后拼接,确保「曼联-利物浦」和「利物浦-曼联」得到完全相同的字符串。 - 统计配对次数:在D2单元格输入公式:
=COUNTIF($C$2:$C$601,C2)
下拉填充后,D列会显示每一行对应的配对组合在整个数据集中的出现次数。
方法2:无辅助列数组公式(Excel 365/2021适用)
如果不想新增辅助列,可直接用数组公式完成统计,在D2单元格输入:=SUM(--(IF(A$2:A$601<B$2:B$601,A$2:A$601&"-"&B$2:B$601,B$2:B$601&"-"&A$2:A$601)=IF(A2<B2,A2&"-"&B2,B2&"-"&A2)))
Excel 365会自动将结果溢出到下方单元格;旧版Excel需按Ctrl+Shift+Enter触发数组计算,再下拉填充。
配对次数标记
若要标记已完成2次对赛的组合,在E2单元格输入:=IF(D2=2,"已完成2次对赛","")
若要标记所有重复出现的配对(含第1次和第2次),则用:=IF(D2>=2,"重复配对","")
示例效果
| Home | Away | 辅助列C | 次数D | 标记E |
|---|---|---|---|---|
| 曼联 | 利物浦 | 利物浦-曼联 | 2 | 已完成2次对赛 |
| 利物浦 | 曼联 | 利物浦-曼联 | 2 | 已完成2次对赛 |
| 切尔西 | 阿森纳 | 阿森纳-切尔西 | 1 |
注意事项
- 队名含空格、特殊字符不影响公式效果,因为是直接基于字符串比较生成唯一组合。
- 600行数据量下,COUNTIF公式运行效率足够,不会出现卡顿。
- 旧版Excel使用数组公式时,必须按
Ctrl+Shift+Enter确认,否则无法得到正确结果。
内容的提问来源于stack exchange,提问作者user1131153
相关产品推荐
相关产品推荐

