1.首先,我们打开一个表单。
2.在D3单元格中输入RANK(C3,C$3:c$6),输入后下拉单元格或复制到其他单元格,排名就出来了。
3.然而,这个公式存在一些问题。比如你们成绩一样,用这个公式,排名就不一样了。如果并列第二名占据第三名,排名就不是3了。
4.这时候就需要用另一个公式了。在单元格D3中输入SUMPRODUCT((C$、C$6gtC3)/COUNTIF(C$和C$6,C$3:c$6))1。进入车内后,我们看到排名。
5.掉单元格或者抄公式后发现排名正常,并列的第二名不再占据第三的位置,所有的排名都是按顺序排列的。
6.最后以排名为关键词对数据进行升序排序后,排名完成。
首先,插入超级表
首先,我们需要点击表格,然后按快捷键CtrlT,将表格转换为超级表格。我们这样做是为了在添加数据时自动对表进行排序。
第二,录制宏
首先我们要知道你要按哪一列排序,这里我们要按总分排序。
我们点击【开发工具】功能组,然后在里面找到录制宏,会自动弹出录制宏的界面。我们将宏名设置为[Sort],然后单击OK。因为普通表刚转换成超级表,表头字段右下角有一个排序按钮,所以我们在这里直接选择降序,就是把数据从最大到最小排列,排序后点击单元格,然后在记录宏中点击停止记录,这样宏就被记录了。
第三,参考录制宏
然后我们在OpenTools的函数组中点击visluabasic,进入vba编程界面。现在我们在sheet1中操作数据,需要在这个界面中点击对应的表名,然后在弹出的界面中将常用名设置为worksheet,然后选择右上角的change删除多余的代码,再在中间输入Sort作为刚刚定义的宏名,这样设置完成,就可以直接关闭了。
第四,改变风格
然后点击表格,在表格设计中将表格的样式设置为无样式,然后去掉过滤按钮的复选标记,为总分栏数据添加一个数据栏。至此,设置完毕,我们可以更改数据,达到自动排序的效果。
这里需要注意的是,由于使用了录制的宏,如果直接保存,会提示vb项目无法保存。我们需要将文件保存为宏。格式,常用的是xlsm格式。