本问题的关键是如何获取工作表名称,用工作表名称做变量来引用表1中的数据。如图,在第1个姓名的工作表中(截图中为“甲”)
A2=IFERROR(INDEX(表1!$A$2:$G$20,SMALL(IF(表1!$I$2:$I$20=REPLACE(CELL("filename"),1,FIND("]",CELL("filename")),),ROW($2:$20)),ROW(1:1))-1,COLUMN(A:A)),"")
同时按Ctrl+Shift+Enter三个键,完成数组公式的输入。
右拉到H2,设置A2的格式为日期,B2:H2设置为常规,或把表1中第2行的格式刷到表甲中第2行来。然后下拉A2:H2,直到出现空白单元格。
复制表甲第2到表乙、表丙中的第2行,均下拉到出现空白单元格。
但本问题比较好的方法还是VBA,上面提供的公式虽可以把数据按要求提取出来,但因为cell函数得到工作表名称具有不稳定性,很多情况下切换工作表后,很可能会发现提取的数据不对,需要按F9重新计算后才能得到正确的结果。
最最简单的是使用EXCEL“高级筛选”功能,鼠标点几下就可以得到一个新的表格
若非要使用函数,可以用INDEX数组公式,但是,当数据量大时,计算机运行会变得很慢很慢,因为函数需要使用运用遍历计算法,老是会产生类似死机的状态……
这种写代码来解决才是上策
哪这么麻烦 直接筛选后排序就完了 然后你需要复制就复制好了,要提取在各个表的话用VBA吧