excel如何根据筛选后的结果,自动提取第一行和最后一行的日期。

如图 有两位老师上课,我用筛选功能,筛选出“潘老师”他的上课日期是A-B,筛选“侯老师”,他的上课日期是C-D,我如何在其他单元格提取两位老师的上课开始和结束日期?
我补发了一张,带行号和列的图片。

INDIRECT函数为主的数组公式。
一、前提条件:
因为要提取的数值是最后一行,那么,首先要确定的是列标,假设数据在F列。
二、确定数据所在列的行的较大范围:
因为要使用的是数组公式,数据量过大,会占用更多内存,无用数据过多,会拖慢计算速度,所以应该预测一下足够使用的最小范围。比如:1:1000行
三、公式:
=INDIRECT("F"&(MAX((F1:F1000<>"")*ROW(F1:F1000))))
以上公式的意思是:提取F列1:1000行中,不为空的最大行号,与列标”F“,组成单元格地址的引用。
四、注意事项:
数组公式,要以组合键,即同时按下: Crtl+Shift+回车 来结束输入输入。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-03-18
=VLOOKUP(SUBTOTAL(5,A1:A1000),A1:D1000,2,0)
=VLOOKUP(SUBTOTAL(104,A1:A1000),A1:D1000,2,0)
根据提取到的第一列序号,最小值与最大值,找到对应的第二列值(也就是第一行和最后一行的日期),序号里面的‘01要改成1
第2个回答  2015-01-15
不需要筛选,直接通过数组公式MIN+IF和MAX+IF来完成。
分别输入以下数组公式,按Ctrl+Shift+Enter组合键结束
=MIN(IF(I:I="潘曼珍",B:B))
=MAX(IF(I:I="潘曼珍",B:B))
=MIN(IF(I:I="侯云青",B:B))
=MAX(IF(I:I="侯云青",B:B))追问

追答

不需要筛选,直接通过数组公式MIN+IF和MAX+IF来完成。
分别输入以下数组公式,按Ctrl+Shift+Enter组合键结束
=MIN(IF(I:I="潘曼珍",B:B))
=MAX(IF(I:I="潘曼珍",B:B))
=MIN(IF(I:I="侯云青",B:B))
=MAX(IF(I:I="侯云青",B:B))
如果你建立了多个老师的起始和结束日期表,那么可以将公式中的老师姓名以单元格代替,快速实现向下填充的效果。

本回答被提问者和网友采纳
第3个回答  2015-11-08
假设数据区域为A:E列,
1、在G1输入=ROW() 然后向下填充,得到类别列的序号
2、在H:K列得到A:D对应类别的首个数据,H1输入以下公式,并向右向下填充公式
=INDEX(A:A,MATCH($G1,$E:$E,0))
3、在L:O列得到A:D对应类别的末个数据,L1输入以下公式,并向右向下填充公式
=LOOKUP(1,0/($D:$D=$G1),A:A)