教你用Excel制作江苏省城市足球联赛积分榜

江苏省城市足球联赛(苏超)2026赛季揭幕赛4月11日在常州奥体中心打响。常州队从去年差一点垫底到新赛季目前积分第一,让我们看到新一届常州队的希望。
苏超不仅是足球艺术的盛宴,更是江苏各城市玩梗的焦点, 给我们万千普通人的生活带来了无穷的乐趣。本人也从一个对足球知识空白的伪球迷逐步演变为真正的足球迷。
为了更方便地了解苏超的进程和积分榜情况,本人用Excel制作了江苏省城市足球联赛积分榜,根据每周各队进、失球情况,自动统计各队的积分。

说明:常规赛赛程工作表中,最后每周输入的区域字段分别为“主队进球”和“客队进球”。
下面说说具体做法:
首先,制作两张工作表,分别是“常规赛赛程”和“积分榜”,各字段见图中所示。
接下来,重点介绍“积分榜”中各单元格中的公式及含义。
01
【C2】场次(只算已填比分)
=SUMPRODUCT(((常规赛赛程!F$2:F$80=B2)+(常规赛赛程!H$2:H$80=B2))*ISNUMBER(常规赛赛程!J$2:J$80))
第一段:常规赛赛程!F$2:F$80=B2
-
F 列 = 主队
-
B2 = 积分榜当前球队(比如:常州队)
-
意思:这支球队是不是这场比赛的主队?
-
是 → 得到 1
-
不是 → 得到 0
第二段:常规赛赛程!H$2:H$80=B2
-
H 列 = 客队
-
意思:这支球队是不是这场比赛的客队?
-
是 → 得到 1
-
不是 → 得到 0
第三段:(第一段)+(第二段)
-
只要是主队 或 客队,结果 = 1
-
都不是 → 0
-
作用:找出这支球队参加的所有比赛
第四段:ISNUMBER(常规赛赛程!J$2:J$80)
-
J 列 = 进球
-
意思:进球这一格是不是填了数字?(比赛是不是已经踢完)
-
是数字 → 1
-
空的 / 没踢 → 0
第五段:* 相乘
-
参加比赛 并且 已踢完 → 1×1=1
-
没参加 / 没踢 → 0
-
作用:只统计 “已踢完的比赛”
第六段:SUMPRODUCT(…)
-
把所有满足条件的 1 全部加起来
最终结果 = 这支球队已踢的总场次
02
【D2】胜
=SUMPRODUCT((常规赛赛程!F$2:F$80=B2)*(常规赛赛程!J$2:J$80>常规赛赛程!K$2:K$80)*ISNUMBER(常规赛赛程!J$2:J$80))+SUMPRODUCT((常规赛赛程!H$2:H$80=B2)*(常规赛赛程!K$2:K$80>常规赛赛程!J$2:J$80)*ISNUMBER(常规赛赛程!J$2:J$80))
第一段(主队赢球)
① F 列 = B2 → 这支球队是主队
② J 列(进球)> K 列(失球) → 主队赢了
③ ISNUMBER (J 列) → 比赛已经踢完,填了比分三个条件同时满足 → 算 1 场胜场
SUMPRODUCT 把所有满足的 1 加起来 → 主队胜场数
第二段(客队赢球)
① H 列 = B2 → 这支球队是客队
② K 列(客队进球)> J 列(主队进球) → 客队赢了③ ISNUMBER (J 列) → 比赛已踢三个条件同时满足 → 算 1 场胜场
SUMPRODUCT 相加 → 客队胜场数
两段加在一起
主队赢的场数 + 客队赢的场数 = 总胜场
03
【E2】平
=SUMPRODUCT((常规赛赛程!F$2:F$80=B2)*(常规赛赛程!J$2:J$80>常规赛赛程!K$2:K$80)*ISNUMBER(常规赛赛程!J$2:J$80))+SUMPRODUCT((常规赛赛程!H$2:H$80=B2)*(常规赛赛程!K$2:K$80>常规赛赛程!J$2:J$80)*ISNUMBER(常规赛赛程!J$2:J$80))
公式整体结构是两段相加:
-
第一段:作为主队踢平的场数
-
第二段:作为客队踢平的场数总平局 = 主队平 + 客队平
第一段:作为主队时的平局
-
F$2:F$80=B2这支球队是本场主队
-
J$2:J$80=K$2:K$80主队进球 = 主队失球 → 平
-
ISNUMBER(J$2:J$80)进球列有数字 → 比赛已踢完
-
三个条件同时满足 → 算 1 场平局
第二段:作为客队时的平局
-
H$2:H$80=B2这支球队是本场客队
-
K$2:K$80=J$2:J$80客队进球 = 主队进球 → 平局
-
ISNUMBER(J$2:J$80)比赛已踢完
-
三个条件同时满足 → 算 1 场平局
最后两段相加
主队踢平的场数 + 客队踢平的场数 = 总平局数
04
【F2】负
=C2-D2-E2
05
【G2】进球
=SUMIFS(常规赛赛程!J:J,常规赛赛程!F:F,B2,常规赛赛程!J:J,"<>")+SUMIFS(常规赛赛程!K:K,常规赛赛程!H:H,B2,常规赛赛程!K:K,"<>")
计算一支球队本赛季一共进了多少球= 当主队时进的球 + 当客队时进的球。公式也是 两段相加。
第一段:当主队时的进球
-
SUMIFS:多条件求和
-
常规赛赛程!J:J → 要加总的是:主队进球
-
常规赛赛程!F:F, B2 → 条件 1:这支球队是主队
-
常规赛赛程!J:J, “<>” → 条件 2:进球不为空(比赛已踢)
这支球队当主队时,所有已踢比赛的进球总和
第二段:当客队时的进球
-
SUMIFS:多条件求和
-
常规赛赛程!K:K → 要加总的是:客队进球
-
常规赛赛程!H:H, B2 → 条件 1:这支球队是客队
-
常规赛赛程!K:K, “<>” → 条件 2:进球不为空(比赛已踢)
这支球队当客队时,所有已踢比赛的进球总和
两段加在一起 = 总进球
主队进球总和 + 客队进球总和 = 这支球队总进球数
06
【H2】失球
=SUMIFS(常规赛赛程!K:K,常规赛赛程!F:F,B2,常规赛赛程!K:K,"<>")+SUMIFS(常规赛赛程!J:J,常规赛赛程!H:H,B2,常规赛赛程!J:J,"<>")
第一段:当主队时的失球
-
SUMIFS:多条件求和
-
求和:K 列(客队进球)
-
条件 1:F 列 = B2 → 这支球队是主队
-
条件 2:K 列不为空 → 比赛已踢
这支球队当主队时,对方进了多少球 = 自己失球
第二段:当客队时的失球
-
SUMIFS:多条件求和
-
求和:J 列(主队进球)
-
条件 1:H 列 = B2 → 这支球队是客队
-
条件 2:J 列不为空 → 比赛已踢
这支球队当客队时,对方进了多少球 = 自己失球
两段加在一起 = 总失球
主队丢的球 + 客队丢的球 = 这支球队整个赛季总失球
07
【I2】净胜球
=G2-H2=G2-H2
08
【J2】积分
=D2*3+E2*1
胜:3分;平:1;负:0
09
【A2】序号
=RANK.EQ(J2,$J$2:$J$14,0)+SUMPRODUCT(($J$2:$J$14=J2)*($I$2:$I$14>$I2))+SUMPRODUCT(($J$2:$J$14=J2)*($I$2:$I$14=$I2)*($G$2:$G$14>$G2))
第一段:RANK.EQ (J2,$J2:J$14,0)
作用:先按积分排基础名次
-
J2 = 这支球队的积分
-
$J2:J$14 = 所有球队的积分
-
0 = 从大到小排(降序)
第二段:
SUMPRODUCT(($J$2:$J$14=J2)*($I$2:$I$14>$I2))
作用:积分相同,比净胜球
-
$J2:J$14=J2 → 和我积分一样的球队
-
$I2:I$14>$I2 → 净胜球比我多的球队
积分跟我一样,但净胜球比我多的人,有几个?有几个,我名次就往后退几位。
第三段:
SUMPRODUCT(($J$2:$J$14=J2)*($I$2:$I$14=$I2)*($G$2:$G$14>$G2))
作用:积分、净胜球都相同,比总进球
-
$J2:J$14=J2 → 积分一样
-
$I2:I$14=$I2 → 净胜球也一样
-
$G2:G$14>$G2 → 总进球比我多
熬了三个通宵,也算为苏超默默做些贡献吧!
夜雨聆风