乐于分享
好东西不私藏

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

教你用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 → 总进球比我多

熬了三个通宵,也算为苏超默默做些贡献吧!