开学了,新老师来到一个新的班级,需要尽快熟悉每一位学生。这不,来到六年级一班,我第一件事,就是安排一位同学根据座位手写了一份座次表。如下图:
上图是以学生的视角观察得到的。例:左上角的“贺志伟”是学生视角看到的教室最前排的学生。如果把这个座次表放在讲台,教师看到“贺志伟”就会认为是最后一排的同学。显然,这个表需要转换为教师的视角。
首先在excel中录入学生抄写的座次表。
教师视角下的座次表应该是如下图的效果:
Q :那该如何实现从学生视角座次表转换为教师视角下的座次表呢?
仔细观察发现,原来左上角的数据到了右下角位置,只有最中间的”王诗涵“在原位,其它数据都成中心对称关系,相当于由原学生视角座次表绕中心旋转180度得到的。当然这个旋转是指数据所在单元格位置的旋转,和图片概念的旋转还是有一点区别的,因为数据本身并没有旋转。
虽然此表数据不算多,通过手动重新输入或调整(如通过编号重新排序等方式)也能实现,但显然不是Excel(或WPS)达人能容忍的。Excel(或WPS)有如此强大的函数功能,应该有解决之道。而且如果能通过函数功能解决,今后类似的数据量更大的情况下,简便的方法就显得非常有用了。所以,花点时间来思考还是有必要的。
因为是在已知的表格区域中,返回相应的值。所以就想到INDEX函数。INDEX函数通俗地理解就是在某区域内返回指定的行、列交叉处的单元格的值。具体效果如下图:
左则黄色区域为原表。数据区域为A2:G10。右侧为通过INDEX函数实现的180旋转后的座次表。实现方法为在右侧蓝色“郭雨萱”单元格中输入公式:
=INDEX($A$2:$G$10,ROW($G$10)-ROW()+1,COLUMN($G$10)-COLUMN()+9),然后通过向左和向下拖曳,实现公式的自动复制,得到最终的效果。
下面对公式做详细的解释:
=INDEX($A$2:$G$10,ROW($G$10)-ROW()+1,COLUMN($G$10)-COLUMN()+9)主要分三个大的部分,分别对应三个参数。
$A$2:$G$10为要从中返回值的数据区域,本例为学生座次表中从”贺志伟“到”郭雨萱“所成的矩形区域。
ROW($G$10)-ROW()+1的意义为返回和当前公式所在单元格成垂直对称的矩形区域中的行号。其中ROW($G$10)为”郭雨萱“所在单元格的行号(注意是绝对引用,在公式拖曳时该单元格不变),ROW()为当前公式所在单元格所在行号。
COLUMN($G$10)-COLUMN()+9是返回和当前公式所在单元格成水平对称的矩形区域中的列号。其中COLUMN($G$10)为”郭雨萱“所在单元格的列号(注意是绝对引用,在公式拖曳时该单元格不变),COLUMN()返回当前公式所在单元格所在列号。后面+9是因原数据区域为7列,目标区域在间隔1空列后出现。具体+多少要视具体表格位置情况而定。
拓展知识
实现了180度的数据旋转,如果要实现水平和垂直的旋转,显然就更简单了。相信大家也能从中找到解决之道了。