动态电子表格的制作方法(excel如何制作动态表格)
如果你是一位校长,想看看学生的信息,你是希望这样看呢?
还是希望是这样的呢?
我想大部分人都希望看到的是后一种吧,看着舒服,简单!
第一步:
我们看到班别对应的班级与H2中的班级是一致的,直接引用就可以了,而H2中班级是用数据验证来做的,就是我们以前讲的下拉列表的做法,比较简单。
第二步:
下面动态的数据是根据B2中变化的班级来确定的。比如当B2中显示一班,我们想要一班的数据全部显示在下面,怎么办呢?
首先以如下数据表中A1做为参照,用offset函数,通过向下偏移和向右偏移来实现。
我们用if函数先找到一班到底在哪些行,
=IF(数据表!$D$2:$D$16=查询表!$B$2,ROW($2:$16))
这样我们找到了一班在2-6行,那么用offset函数,那我们在查询表的A5单元格要返回数据表中第2行的序号记录,那就向下偏移2-1即1行,向右偏移0列。向右偏移的位置很好确定,因为列不多,且不是每列数据都要返回,直接修改参数就可以,主要是我们公式每下拉一行,向下偏移的行数要在返回的行号里从小到大依次取值,然后减1。
所以想到用small函数。
=OFFSET(数据表!$A$1,SMALL(IF(数据表!$D$2:$D$16=查询表!$B$2,ROW($2:$16)),ROW($A1))-1,0)
这样把公式做好后,下拉,看看数据表里班级最多的学生有多少,就下拉多少行。
但当学生较少时,那些有公式但是行数超过该班学生记录数的单元格会显示错误值。所以在刚写的公式外层加个iferror避错。
最终公式:
=IFERROR(OFFSET(数据表!$A$1,SMALL(IF(数据表!$D$2:$D$16=查询表!$B$2,ROW($2:$16)),ROW($A1))-1,0),"")
以上题目不是很难,但却是很多同学在工作中需要做成的模板(类似),大家可以参照。
转自: 米宏Office