假定源数据区域为A1:G20,其第一行为标题
在新表格中,选择一列空白区域,作为中间变量,例如H列
在H列的第2行中,输入公式:
=IF(B2=5,MAX(H$1:H1)+1,"")
其中,B2是源数据表格中需要排序的那一列的第一行单元格
5是要筛选的数据
H$1:H1,是当前单元格(H2)之前的区域。
MAX(H$1:H1)+1表示比区域中最大数多1的那个数
公式的意思就是:如果B列中对应行的数据是要筛选的数据,就加1,否则就显示空
在I列的第2行中,输入公式:
=INDEX(A$2:A$20,MATCH(ROW()-1,$H$2:$H$20,0))
其中,A$2:A$20是源数据的第一列数据,ROW()是取当前单元格的行数,
ROW()-1,是因为标题行占了一行,H$2:H$20是中间变量区域
公式中的20是源数据区域中最后一行的行号
选中G2单元格,右拉复制,源数据有几列,就复制几列,假如源数据最后一列是G,那么就复制到O列
选中H2单元格到最后一列单元格,例如O列,下拉复制到源数据区域的最后一行,例如第20行
检查看看是不是你希望要的结果
假设原数据在Sheet1,需要在Sheet2中形成筛选过的数据,在Sheet2的A2单元格输入以下数组公式,按Ctrl+Shift+Enter组合键结束,然后向右向下填充公式
=INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$D$2:$D$2000="Umsuccessful",ROW($2:$2000),4^8),ROW(A1)))&""
也可以通过“数据”选项下的“高级筛选”,将符合要求的数据产生在新的工作表中。
见样表
假定原始数据表为sheet1,图二的A2输入
=index(sheet1!a:a,small(if(sheet1!$c$2:$c$10000="Unsuccessful",row($2:$10000),100000),row(a1)))&""
数组公式,先按住ctrl+shift,最后回车
公式右拉下拉
复制你的这个表,在副本里筛选C列,不选unsuccessful,把显示的全选删除行,然后取消筛选,就是你要的效果