如何用Excel提高report写作效率
Dora has made good progress in her studies in Chinese. I can see her efforts in reading and writing Chinese characters. She contributes well to class discussions, offering quite perceptive comments. Her reading has shown good progress this year. She reads a variety of books with growing expression and good fluency. Her written work is now better organised and structured more thoughtfully. She has an excellent understanding of the topics and texts that we focused on. She is generally hardworking, although she can be easily distracted. She works well both independently and with others. Dora is encouraged to take an active part in shared reading and writing activities as well as independent work. Well done! |
这是一篇中规中矩的 report,占用713个字符。没什么特色但也挑不出什么毛病。在国际学校工作时,每年要写两三次这样的 reports,每次写 80-120 篇左右。每篇字数要求控制在 500-1000 个字符。相信列位也有类似的经历,如果没有的话,后面就不用看了。这差不多是一年之中最为繁复,但又“无比重要”的任务。
我当时所在的学校没有 report bank 可以生成评语,所有report均由老师亲手录入,写好后,交给校长审核,没问题了再上传系统。那么一般会出现什么问题呢?语法问题严重;单复数格式不对;用词不当;部分 report 之间相似性过高。。。(英语不是我母语啊。。)
如何避免?几经摸索,终于生成了(对,生成,不是写的)前面的那个report。校长不但找不出什么错误,还在 report 上留言,大概意思是说:写的比一些母语使用者写的还好。
用Excel生成这样一篇report差不多只需要一两分钟选词择句,一百来份的话,两个小时左右可以完成。如何实现?如图,三步可成!
题外话
虽然说是“三步可成”,但前期需要大量的准备工作。俗话说得好,一口吃不成胖子,一宿也盖不出罗马。任何简单的背后都需要认真的观察和反复的思考,在诸多繁复的基础工作上试炼才得以实现。写 report 这种事在网上可以找到很多便捷的应用,若只是为了省事,无需浪费宝贵时间读这篇文章。而写这篇文章的目的,是想通过生成 report 这个思路,抛砖引玉,让大家的思想碰撞出更多的火花应用于教学之中。
正文
〇、基本原理
Excel 可以看作是一个关系型数据库,我们可以把很多很多的评语逐句细化、分类,输入这个数据库,然后根据学生情况调用相应的数据,并整合在一起,这样就那么生成了一份 report。孙先生云:知难行易。
在开始前,我们先来观察一下文章开头的那篇report,我用不同颜色对内容进行了分类:
Dora has made good progress in her studies in Chinese. I can see her efforts in reading and writing Chinese characters. She contributes well to class discussions, offering quite perceptive comments. Her reading has shown good progress this year. She reads a variety of books with growing expression and good fluency. Her written work is now better organised and structured more thoughtfully. She has an excellent understanding of the topics and texts that we focused on. She is generally hardworking, although she can be easily distracted. She works well both independently and with others. Dora is encouraged to take an active part in shared reading and writing activities as well as independent work. Well done!
(如果 report 打印出来也是彩虹色的就好了,我一定会非常喜欢,无论老师在里面说了什么)
可以看出,这篇 report 包括以下内容:开篇褒奖学生的进步情况;努力程度;课堂参与度;听说读写四方面的发展水平;理解能力;存在的问题;今后要努力的地方;用于结尾的鼓励。
根据这些内容,可以确定数据库表格结构:
在每一列中填入相应的 Comment,这个表就是我们的 Comment Bank 数据库,然后根据学生水平,选取恰当的内容就可以生成report了。
例如第一句,关于学生的进步情况,学生学了一年,多多少少都会有些进步,进步大的可以说 made great progress,成绩平平可以说 made good progress,进步程度实在难以洞察,还可以说 made steady progress. 那么我们就可以把这三句话放在 C列 中备用,什么样的孩子,选择什么样的句子放在她/他的 report 里。
再说句题外话,无论什么样的家长,看到有人夸自己孩子都是高兴的。写report犹如邹忌讽齐王纳谏,虽不会有性命之忧,但也要小心谨慎,掌握好优缺点的比例。况且只要用力找,再顽劣的学生也能挖掘出些许的闪光点。顽劣的学生都如此,那好学生还不更应该得到肯定吗?
原理清楚了,我们看看怎么实现:
一、收集数据
如前文书提到,我们首先要输入数据,做 Comments Bank。做饭需要柴米油盐,盖房需要砖瓦泥沙,写字需要纸墨笔砚,奏乐需要金石土革丝木匏竹,生成report我们需要 Comment,自己写么?还是 Google 吧,弹指间答案跃然屏幕。:
四下权衡,下载了一个评语集,proof read 之后,挑选合适的句子准备放在我们的数据库里。
二、细分数据、调整格式
原始数据经过进一步加工,分门别类的存到Excel里,如图:
(因为每个单元格内容过长,所以只完整显示了每个分类的名称(没那么长的显示器啊)。至于说每列的颜色,并非出于个人喜好,只是为了看着清楚,不会串行,才设置这么多颜色的。)
我们要对数据做三个处理:
人称:这张表是用来写女学生 report 的,确保里面所有人称都是女性称谓:she, her。之后再做一张男学生的表,里面人称调整为:he, his。
空格:每一句话的句号后面加一个空格。因为最终的 report 是各个列内容首尾相连,拼接而成的,所以这个空格很重要。
写入列名称:在每一列的第二行把这一列的名称写上,如上图所示,C 列,在第二行写入“C”,其他各列写入相应的字母。具体原因,后面解释。
( B 列的名字叫“空格”,里面真的只是输入了一个空格。这样ABC三个列内容合并在一起的时候,名字和动词中间才会有空格。当然您也可以不要 B 列,把空格加在 C 列也没问题。)
三、通过函数生成 report
原材料准备完毕,现在可以下锅了。简单翻炒几下,report就完成了:
第一步,选择评语条目行号
我们继续以 C 列为例:
在表格下方寻一空行,我选的第 13 行。在这里写入自己所选单元格内容的行号。例如,Dora 的名字在第3行,所以 A13 中填写 3。而对 Dora 进步程度的描述是“has made good progress in her studies in Chinese. ”,在第5行,所以 C13 中填入 “5”,其他各列如此这般,填入每一列选项的行号。
第二步,将选择的数字转换为评语
如上图,在第 15 行进行一下过渡:将第 13 行选择的数字替换成相应的文字。还以 C列 为例,公式如下:
=IF(C13<>"", INDIRECT(C2&C13), "")
将第 15 行所有单元格填充这个公式后,效果如图:
解释一下这里涉及的两个函数:
1. INDIRECT(): 用于计算并显示引用内容。
先说一下 INDIRECT() 里面的 C2&C13 , 这是一个逻辑运算,表示将 C2 和 C13 两个单元格内容拼接,C2 的内容是“ C ”,C13 的内容是“5”,“C”+“5” 得到:“C5” 。
而 C5 又是一个单元格的名字,这个单元格里保存的内容是 “has made good progress in her studies in Chinese. ”
所以,INDIRECT(C2&C13) 的运算结果是 "has made good progress in her studies in Chinese. "
2. IF(): 是一个条件判断函数。简单说 IF(a,b,c),如果 a 条件成立,则执行 b,否则执行 c。
=IF(C13<>"", INDIRECT(C2&C13), "") 这个公式里 C13<>"" 中<> 表示“不等于”,两个双引号 “” 中间没有任何内容,代表空值,就是没写东西 。那么 C13<>"" 的意思是 “C13” 这个单元格里不是“什么都没写”。
综上:=IF(C13<>"", INDIRECT(C2&C13), "") 这个公式的意思是说:只要 C13 这个格子里不是什么都没写,就显示 INDIRECT(C2&C13) 的运算结果既 “has made good progress in her studies in Chinese. ”;如果 C13 里面真的什么都没有的话,那就显示 “” ,既什么都不显示。
(请问各位看官,我如此解释是否太晦涩了?如果太难懂,请给我留言,我下次想办法把事情说明白。不过就当下而言,最简单的办法就是照抄公式)
这个 IF 判断的意义是什么呢?可不可以省略呢?在实际写作中,有时并不需要在所有方面对学生进行评价。那么遇到不需要进行评价的项目时,我们可以删除第13行数字,留下空白单元格。INDIRECT 遇到空单元格会返回错误代码 #REF! ,出现错误代码就无法继续后面的运算:
通过IF判断来决定是否执行INDIRECT函数,不执行就不会出现错误代码。这样,即便有几项是空的,也不会对生成最终 Report 产生影响。
第三步,拼接选好的条目
如图,先在下面通过合并单元格,弄个空间大的格子出来:
这个单元格里填入:
=CONCATENATE(A15,B15,C15,D15,E15,F15,G15,H15,I15,J15,K15,L15,M15,N15," ",O15,P15)
用这个函数将第 15 行中每个单元格的内容合并在一起。这里要注意的是,在 N15 这个单元格重复了一次 Dora 的名字,所以,在合并时,使用 “ ” 在 N15 这个单元格的后面加上一个空格。
这样,这个表格就做好了,今后写 report 的时候,只要根据学生表现输入数字,就会出现相应的“成品”了。
额外附送一个函数:
使用 Len() 这个函数,可以计算出 Report 中有多少个字符 。方便随时监控文本长度。
到这里告一段落,一个完整的 Report 生成系统制作完毕。使用过程中再去慢慢推敲,再去咬文嚼字。
我想请大家思考一个问题,按这个思路,是否可以做些东西用在日常教学中呢?如果结合上星期文章中提到的随机函数呢?如果您想到了,请发消息给我,您负责脑洞,我负责技术。(目前还开通不了留言功能,所以只能劳烦您发信息了)
小结:
思路:把 Comments 细化、分类,整理成一个数据库,然后根据学生情况调用相应的项目,并整合在一起,生成 Report。
INDIRECT() 用于计算并显示引用内容
IF(logical_test,value_if_true,value_if_false) 用于条件判断
CONCATENATE(text1, text2.....text255)用于拼接单元格内容
LEN() 用于计算文本长度
。
。
。
。
。
这是鄙人公众号发布的第三篇文章,在可以遇见的未来,这个公众号的内容都将以技术为主,侧重点会放在如何用技术提高效率,改善教学。之后会慢慢增加其他内容。虽然以技术为主,但设身处地想一想,很多内容会让大家望而却步。如果您有任何建议,欢迎您我发信息告诉我。我会努力做出相应调整。这里想先通过问卷形式采集一下大家意见: