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

Excel表格自动扩展问题:UFC赛事预测模型跨表数据提取

UFC拳手赛事数据提取与自动行调整方案

核心需求

提取指定拳手在Fighter 1或Fighter 2列的所有赛事数据,让表格根据匹配结果自动调整行数,合并数据用于后续分析。


方案1:Excel 365/2021 动态数组方案(推荐)

利用动态数组的自动溢出特性,无需手动设置行数限制,直接返回所有匹配结果:

1. 提取拳手作为Fighter1的所有赛事数据

=FILTER(Fights, Fights[Fighter 1]=$B$2)

该公式会自动返回所有Fighter 1列匹配指定拳手的行,结果自动向下溢出,无需拖拽填充。

2. 提取拳手作为Fighter2的所有赛事数据

=FILTER(Fights, Fights[Fighter 2]=$B$2)

3. 合并两组结果

用VSTACK将两个筛选结果垂直合并,得到该拳手参与的所有赛事数据:

=VSTACK(
  IFERROR(FILTER(Fights, Fights[Fighter 1]=$B$2), ""),
  IFERROR(FILTER(Fights, Fights[Fighter 2]=$B$2), "")
)

添加IFERROR是为了避免其中一组无匹配结果时出现错误值。


方案2:旧版Excel(无动态数组)适配方案

如果使用不支持动态数组的旧版Excel,可通过动态计算匹配行数+扩展INDEX/AGGREGATE公式实现:

1. 计算总匹配行数

在任意单元格(比如A12)输入公式,自动统计该拳手在两列的总出现次数:

=COUNTIF(Fights[Fighter 1],$B$2)+COUNTIF(Fights[Fighter 2],$B$2)

2. 动态提取双列数据

在目标单元格(比如C14)输入以下公式,拖拽填充至足够多的行(超过最大可能匹配数即可),公式会自动在无数据时返回空值:

=IF(
  ROWS($C$14:C14)<=COUNTIF(Fights[Fighter 1],$B$2),
  INDEX(Fights[Fighter 2],AGGREGATE(15,3,(Fights[Fighter 1]=$B$2)/(Fights[Fighter 1]=$B$2)*(ROW(Fights[Fighter 1])-ROW(Fights[[#Headers],[Fighter 1]])),ROWS($C$14:C14))),
  IF(
    ROWS($C$14:C14)<=COUNTIF(Fights[Fighter 1],$B$2)+COUNTIF(Fights[Fighter 2],$B$2),
    INDEX(Fights[Fighter 1],AGGREGATE(15,3,(Fights[Fighter 2]=$B$2)/(Fights[Fighter 2]=$B$2)*(ROW(Fights[Fighter 2])-ROW(Fights[[#Headers],[Fighter 2]])),ROWS($C$14:C14)-COUNTIF(Fights[Fighter 1],$B$2))),
    ""
  )
)

该公式会先提取Fighter 1列匹配的对应Fighter 2数据,再提取Fighter 2列匹配的对应Fighter 1数据,超出总匹配行数后返回空值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:42:40