用Excel和Python做好马拉松技术支持保障

首先介绍一下赛事背景,因为这是一场马拉松接力赛,正常马拉松全程是42.195公里,如果把它办成一场接力赛。一个队伍6个人,每个人需要跑7公里。而在我们区里,正好有这样的一个U字形场地,来回一圈刚刚好是7公里左右。

基本情况介绍完了之后,再看看老师安排的需求:

需求明确之后,就可以开始设计表格了。先填入所有需要记录的关键信息,如下图所示。

其中跑团战队名称、姓名、性别前面三项是固定的,在此之前已经通过其他表格收集了这些信息,所以现在要做的,就是将这三项信息复制进来,得到以下结果。

由于每个战队都是6名队员,所以号码编排就是用「队伍序号+棒次序号」即可。在第一个号码中填入0101,但是会发现0101被Excel识别为了数字,而自动忽略了前面的0,所以点击第2列上面的B,按下+1,调整整列单元格的格式,将它设置为文本,并重新输入就可以正常显示0101了。

然后拉到0106,之后如法炮制再生成到0206,本以为这样选中两大组数据之后,Excel就能根据这个规则自动生成其他号码,但是经过测试发现只会在0101到0206之间循环,并没有按照预期结果生成序号。

=INDIRECT(ADDRESS(ROW(),5))公式演变过程如下图所示,先获取到了$E$3绝对地址,再通过INDIRECT()间接访问$E$3获取到01:12:09。

IF(判断语句,结果为真的表达式,结果为假的表达式)对于后面两个表达式,在上文中已经给出了答案。现在的问题又转为了,如何构造判断语句?显然这是一道送分题,只需要将上文的知识点,将列号替换一下即可。在Excel表格中队名所对应的列号是1,所以就可以构造出如下的判断语句:

所以此处还可以进行一下优化,对IF语句后面两个表达式进行修改,只有当前行不为空,才进行减法计算,否则返回空值。重复利用上面提到的知识点,构造出如下的公式:

到此为止,表格的制作终于可以暂告一个段落,删除所有测试数据,得到一张干净的参赛运动员表格,等到了比赛的时候直接拿到现场使用即可。接下来要做的工作是制作成绩证书。

棒次表,可以看出「秀屿健跑一队」是毫无疑问的冠军。

计时表,可以看出第一名和最后一名,整整差了一个小时之多。

当比赛完成后,就要开始输出四项排名了,分别是:个人排名、团队排名、男子排名、女子排名。使用Excel的高级筛选功能,就可以很简单地实现这个需求,接下来就来看看具体是如何操作。

RANK(number,ref,[order])Number是需要排序的数据,ref是全体的数据,其中[order]参数有0和1两种选项,0是降序,1是升序,默认是使用降序。如下图所示,是比赛全部完成后的成绩表格。以用时作为排序的依据,用时在第6列,采用升序的方式排列。

在功能栏上选择「数据>高级」,点击打开高级筛选。选择第二个「将筛选结果复制到其他位置」,可以看到此处要求输入「列表区域」和「条件区域」两个参数。列表区域,也就是筛选运动员们的成绩已经有了。但是还差个条件区域,所以暂时关闭该窗口,在Excel表格中创建一个条件区域。

筛选区域制作好后,就可以使用高级筛选,选择出合适的数据了。点击区域选择框后面的「选择」图标,就可以手动选择区域,免去了手动输入的麻烦。还有一点要注意的是,选择区域的时候要连表头一起选择,否则会导致筛选不到数据。筛选得到的数据如下图所示。

但是此时数据是未排序状态,所以需要对其进行排序。此时再使用RANK()函数排序,是不太合适的。为了让运动员们可以更直观地看出队伍排名,需要直接对行进行排序。,选择所有团队,点击「数据>排序」,列条件选择「团队总成绩」,顺序按照「升序」排列,点击「确定」即可完成排序。

排序完成后的数据如下所示,排序完成后,就是简单的数据清理工作了。保留跑团名称和总成绩,删除不必要的列,增加一个团队总成绩表头,增加一个团队排名的递增序列。

最终效果如下图所示:

用类似的方法,制作男/女个人排名。如下图绿色区域所示,重新设置筛选条件区域,表头设置为「性别」,下方单元格改为「男」,重新进行高级复制筛选,得到如图中O到U列的效果。

同样适用数据中的排序功能,对全部的男运动员成绩排序,删除无用的两个序列,并在最后添加名为「男子排名」的递增数列即可。

修改筛选性别为女,重复以上两个步骤,生成女子排名。

最后得到如下所示的四种排名:

在上个步骤中已经生成好了四种排名,但对于大量数量的表格,没有隔行变色的话,会让阅读者查看数据的时候较为麻烦,可能会出现对错数据的情况。所以可以在此基础上,添加隔行变色样式。

选中需要隔行变色的表,在功能栏的「开始」菜单下,点击「套用表格格式」,选择合适的样式。此处有一个小技巧,可以提高选表的效率,点击表中任意单元格,再按下command+A全选,即可选择出所属的大表。

间隔变色设置好之后,效果如下图所示,重复以上步骤,对剩余的三个表格进行同样操作。

在表格发在群里之后,有人问说:只看到了个人成绩,其他几个排名成绩在哪里呢?看了一下,才知道原来是只顾着上下滑动,忘记了左右滑动也有表格了。为了从源头上解决这个问题,而不是在群里不停地解释,可以对四个表格进行分表。

将制作好的证书模版导出JPG图片,添加电子签名。此处可以使用预览中的签名功能,选择在iPhone上进行签名,因为在iPhone上签名是可以显示字的。如果使用触控板签名的话,那就是手指对着触控板盲签,笔画上可能会产生一些偏移,导致签名不那么好看。如果有ApplePencil的话,可以得到更好的签名效果。

在签名完成后,将电子签名添加到成绩证书模版上,这样一份正式的成绩证书模版就制作好了。

使用sys从命令行的第一个参数读取成绩记录,第二个参数设置男子组or女子组。在第一版的代码中,原先是没有第二个参数的,在实际赛后制作成绩证书的时候,忘记把组别进行修改,导致第一版的成绩证书组别错误。所以为了从根本上解决这个问题,直接将组别设置为了命令行参数。

访达中对应显示的文件名,就是在Python代码中需要使用的文件名,例如下图中的PingFang.ttc,只要将它连同后缀名一起填入即可。

生成的成绩证书如下图所示,效果还是比较好的。

上一小节中以及生成好了各种成绩排名,接下来就是根据拍卖信息,生成电子成绩证书了。不要包括表头,选中排名成绩表,复制到剪切板。

新建纯文本文件,保存到Certificate.py相同目录下即可。最后得到如下所示的目录结构,Certificate.py会读取man.txt里的内容,使用template.jpg作为模版,读取每行的内容添加到template.jpg,并保存为相应的运动员名字。

根据第二小节介绍的Python脚本原理,在命令行中切换到Certificate.py文件所在目录。并使用以下命令格式生成成绩证书:

随便挑选两张查看,效果如下:

男子组制作好之后,就是女子组了,但是在此之前需要对图片进行打包,以免和接下来生成的女子组混在一起。部分对macOS比较熟悉的用户可能知道,如果是使用右键对文件进行压缩,在其他平台上接收文件,可能会多出一个_MACOS的文件夹,该文件下包含了一些元信息,如果不想生成这个多余的文件夹,可以使用终端里的zip命令进行打包。命令格式是:zip压缩包名.zip压缩文件名。

所以直接在目录下使用如下命令进行压缩打包:

pbpaste>woman.txtpython3Certificate.pywoman.txt女子组zip女子组成绩证书.zip*.pngrm*.png最后生成好的zip压缩包发在运动员群里,搞定收工。

本次协办这场赛事,让作者从0入门开始学习了一点Excel,也真正认识到了Excel的强大之处。之前都是道听途说,这次终于是有了实际体验。以后还有类似的需求,必定也是找Excel实现。本文以0基础的Excel新手的视角,配合编程的思维,逐级递进地介绍了如何编写复杂的Excel公式。希望读者在以后有实际类似需求的时候,也可以通过Google+官方文档的方式,逐渐实现自己的需求。

除了技术上的收获,在这次赛事中也感受到了大家对运动的热情。作者日常也是个骑行爱好者,前年参加了海洋杯国际自行车公开赛,虽然是骑游组去游玩为主的,但是很被那种运动的气氛所感染。由于疫情,已经两年半没有大型赛事可办了。这次久违的中型比赛,让作者又体验了当年赛事的热闹气氛,所以也打算接下来试着开始跑跑步,换点新的运动方式。

本文也算是对本次协办赛事的总结,实际跑一遍流程之后,发现很多可以改进的地方。例如上面的细节优化这部分,就是在全部结束之后,大家有反馈过来一些问题,才想起来要这么做。相信经过这次的实践,明年的比赛技术支持会做地更好。比如以下几个点可以改进或者升级:

THE END
1.体检表Excel表格模板体检表Excel表格模板下载熊猫办公网站共为您提供108个体检表设计素材以及精品体检表Excel表格模板下载,汇集全球精品流行的体检表Excel表格完整版模板,下载后直接替换文字图片即可使用,方便快捷的不二选择。https://www.tukuppt.com/excelmuban/tijianbiaomoban3743.html
2.2024北京马拉松大数据报告手表背包跑步跑鞋防晒衣LOTTO乐途50周年系列款全掌碳板跑鞋原价799,现仅需239元,性价比炸裂点击下图或扫描下方二维码,立即抢购—THEEND—马拉松跑步装备推荐专业跑鞋、心率手表、跑步袜、五指袜背包腰包、帽子、衣服裤子、防晒衣等点击下方图片,即可进入商城一键选购https://m.163.com/dy/article/JGEBJVU60513EF9U.html
3.马拉松各单位邀请函.doc否则无法完整打印; 6、团体报名表各栏目须严格按要求填写,表格可根据实际人数插入数据行; 7、请仔细检查报名者各项材料,确保材料齐全完整(身份证须复印正反两面;体检表上须注明“体检合格”;个人报名表上各栏目须按要求填写,尤其声明人签名一栏必(转载于:wWw.cssYQ.COm 书业 网:马拉松各单位邀请函)须由本人亲笔...https://max.book118.com/html/2017/0117/84561388.shtm
4.20132017年高考数学(理)分类汇编解析:第13章9.(2015湖南理12)在一次马拉松比赛中,名运动员的成绩(单位:分钟)的茎叶图如图所示.若将运动员按成绩由好到差编为号,再用系统抽样方法从中抽取7人,则其中成绩在区间上的运动员人数是 .13003456688891411122233445556678150122...https://xiazai.12tiku.com/sj/10001/179891.html
5.如何在两个月内训练自己完成马拉松?(附跑马训练表格)(附跑马训练表格) 导读:为什么要跑马拉松?如何通过人、事、网、书等方式学习跑步?跑步的好处是什么?来看看一个跑步小白如何通过2个月的时间训练自己完成人生当中的第一个马拉松。 先说说我的基本状况(又要暴露身高体重,真的想假装自己有165cm): 身高:158cm...https://www.jianshu.com/p/1da196d1b064
6.生活日常素材生活日常图片生活日常素材图片下载觅知网为您找到491个原创生活日常素材图片,包括生活日常图片,生活日常素材,生活日常海报,生活日常背景,生活日常模板源文件下载服务,包含PSD、PNG、JPG、AI、CDR等格式素材,更多关于生活日常素材、图片、海报、背景、插画、配图、矢量、UI、PS、免抠,模板、艺术字、Phttps://m.51miz.com/so-sucai/2929262.html
1.马拉松体检表下载,降奔跑的起点杭州国际女子马拉松随着健康意识的提高,越来越多的人参与到马拉松这项运动中来,作为一项高负荷运动,了解自身的身体状况和健康状况显得尤为重要,这时,一份详尽的马拉松体检表就显得至关重要,本文将介绍如何下载马拉松体检表,并强调其重要性,以帮助参赛者共同迈向健康奔跑的起点。 https://m.hzwomanrun.com/post/18623.html
2.苏州马拉松体检报告,实地考察数据策略SE版30.70.38摘要:苏州马拉松体检报告发布,通过实地考察数据策略,对参赛选手进行全面健康评估。报告涵盖了体检数据、健康指标和评估结果等方面,旨在为参赛选手提供个性化的健康建议和指导。SE版数据显示,针对不同参赛选手的需求,苏州马拉松组委会制定了多项策略,确保赛事安全顺利进行。此次体检报告为苏州马拉松的未来发展提供了重要参考依据...https://app.php31.com/post/1322.html
3.太湖图影国际马拉松赛16周岁以下未成年人报名参加健康跑项目比赛须其监护人或者法定代理人报名相同项目并全程陪同参赛,否则不予发放参赛物品且不能检录参赛;70周岁以上报名参加马拉松、半程马拉松和短程跑比赛,必须经直系亲属签署免责声明,并要求参赛选手对自身体质进行充分评估,建议参赛选手进行体检(需心电图、血压、心率、心肺功能等体检正常...https://m.runninginchina.org/event/event_view/1959.html
4.报名2024衢州衢江半程马拉松报名啦!16周岁以下未成年人报名参加健康跑项目比赛须其监护人或者法定代理人报名相同项目并全程陪同参赛,否则不予发放参赛物品且不能检录参赛;70周岁以上报名参加半程马拉松,必须经直系亲属签署免责声明,并要求参赛选手对自身体质进行充分评估,参赛选手必须上传体检报告(需心电图、血压、心率、心肺功能等项目体检正常)后才能进行...https://zuicool.com/news/?p=251712
5.生信入门马拉松之R语言基础2.1.3 为什么用Rdata而不是表格文件来衔接? 变量,自带变量名称,不需要再次赋值,也没有参数。undefined 表格文件需要赋值,读取参数不同导致读取结果不同,不能在后续代码中同等处理。 Rdata可以保存多个变量,下次使用只需要一次load可以的到多个数据。 -Rdata不仅可以保存数据框,也可以保存其他任何数据结构,包括复杂的...https://cloud.tencent.com/developer/article/2410016
6.马拉松赛事策划书(精选11篇)(报名表格于xx月xx日体育部成员到各班进行发放) 2、宣传: (1)海报:请校团委宣传部帮忙制作海报。 (2)到各班进行宣传 ...1、有关《马拉松》故事的连环图片。 2、幼儿已经了解奥运会的一些比赛项目。 三、活动过程: 1、故事欣赏 教师有感情地讲述故事。其中,教师可以对故事中部分...https://www.yjbys.com/cehuashu/1658851.html
7.厦马报名开启倒计时一张图看懂2019厦门马拉松视觉上男女不同的设计,合到一起可以拼成一个完整的厦门马拉松标志。 另外,2019厦门马拉松也推出了全新的完赛服,正面显示FINISHER字样,背面则是全新的标志“厦马威”。不过这款完赛服需要在报名时预定,早鸟售价99元。 当然还有更多的厦马细节,等待你在比赛日那天的亲身体验。 *文中图片源自厦门官网,经授权后使用...https://iranshao.com/articles/5020-xiamen-marathon
8.你的马拉松最佳成绩能达到多少?看你平时5公里10公里的速度就能...书中以表格的形式告诉跑者全力跑3公里、5公里、10公里的成绩与半马、全马理论成绩之间的关系。 比如: 你10公里最好成绩为50分钟,那么你的马拉松成绩应该可以达到3小时50分以内。 这个预测是比较精准,但这个预测也是有提前条件的,那就是你具备全马能力且常年坚持训练。 https://m.chunyuyisheng.com/mip/article/138357/