Google Sheets动态计算同队球员配对次数的矩阵实现
动态统计球员同队次数矩阵方案
1. 先把数据转成结构化表格
选中你的A、B列数据,按Ctrl+T,勾选「我的表格有标题」,将数据转换为结构化表格(可右键重命名为TeamData)。后续每周新增球队数据时,表格会自动扩展范围,彻底解决固定选区的问题。
2. 提取唯一球员列表作为矩阵表头
在空白区域(比如F列)输入公式:
=UNIQUE(TeamData[球员姓名])
回车后会自动生成所有不重复的球员姓名,新增球员时列表会自动更新。将该列表同时作为矩阵的行(F2:Fxx)和列(G1:xx1)表头。
3. 同队次数统计公式
假设矩阵左上角单元格为G2,行球员姓名在F列,列球员姓名在第一行,在G2中输入以下公式,再向右、向下填充至整个矩阵区域:
=IF(F2=G$1,0,SUMPRODUCT(--(ISNUMBER(MATCH(TeamData[球队编号],FILTER(TeamData[球队编号],TeamData[球员姓名]=F2),0)))*(TeamData[球员姓名]=G$1)))
公式说明:
IF(F2=G$1,0,):将球员自身的同队次数设为0,避免无效统计FILTER(TeamData[球队编号],TeamData[球员姓名]=F2):提取当前行球员所有待过的球队编号ISNUMBER(MATCH(...)):判断列球员是否在上述球队中出现过SUMPRODUCT:统计符合条件的同队次数,依托结构化表格,新增数据后会自动重新计算
4. 开启自动更新
进入「文件→选项→公式」,勾选「自动重算」,确保每周新增数据后,矩阵能自动刷新统计结果。
备选:Power Query高效方案(适合数据量大的场景)
- 选中结构化表格,点击「数据→从表格/区域」进入Power Query编辑器
- 按球队分组,提取每个球队的球员组合:
= Table.Group(TeamData, {"球队编号"}, {"球员组合", each List.Combinations(_[球员姓名], 2)}) - 将球员组合拆分为单独行,再分组统计次数,最后转置为矩阵格式加载回Excel,后续点击「刷新」即可更新数据。
内容的提问来源于stack exchange,提问作者Dan_Pypy
相关产品推荐
相关产品推荐

