EXCEL如何将满足某一条件所在行提取到另一个表中?

将sheet1中F列所有包含费用的这一行输出至新的一张表格

原来给的回答不见?

如图,简单模拟了一些数据,Sheet2引用Sheet1中F列包含“费用”数据。Sheet2中

A2=IFERROR(INDEX(Sheet1!A:A,SMALL(IF(ISNUMBER(FIND("费用",Sheet1!$F$2:$F$32)),ROW($2:$32)),ROW(1:1))),"")

同时按Ctrl+Shift+Enter三键 输入数组公式,右拉到G2,设置A2的单元格格式为日期,再一下下拉A2:G2到出现空白数据行。

突然想起来了,提交是提示“该问题已删除”,白白浪费了输入文字的时间。建议提问不要轻易删除,尊重别人的劳动。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-21

对F列进行筛选,文本筛选,选出包含“费用”的单元格,然后复制粘贴到新的sheet,比公式快。

追问

因为表格是一直更新的 所以不可能每次都筛选复制

追答

I2单元格=INDEX($A:$F,SMALL(IF(LEFT($F$2:$F$9,2)="费用",ROW($2:$9),4^8),ROW($A1)),MATCH(I$1,$A$1:$F$1,0)&""),ctrl+shift+回车,向右向下填充。

如果是跨表的,就把公式里加上sheet的名称。假投原始表格名称为Sheet01,则在Sheet02的第一行填写表头,然后A2=INDEX(Sheet01!$A:$F,SMALL(IF(LEFT(Sheet01!$F$2:$F$9,2)="费用",ROW(Sheet01!$2:$9),4^8),ROW(Sheet01!$A1)),MATCH(A$1,Sheet01!$A$1:$F$1,0)&""),ctrl+shift+回车,向右向下填充。完成。


第2个回答  2020-05-21

Sub test()

Sheet1.Copy after:=Sheet1

Dim i, irow

With ActiveSheet

irow = .Range("a65536").End(xlUp).Row

    For i = irow To 2 Step -1

        If .Range("e" & i) <> "费用" Then

            .Range("e" & i).EntireRow.Delete

        End If

    Next

End With

End Sub

第3个回答  2020-05-21
新表格的A2输入

=index(sheet1!a:a,small(if(isnumber(find("费用",sheet1!$f$2:$f$1000)),row($2:$1000),6^6),row(a1)))&""
同时按下CTRL+SHIFT+Enter三键,使数组公式出现{ },公式右拉再下拉到空值追问

老师,按照老师这个公式可以取数,但是新表格的日期是几个数字,设置单元格格式也不能显示成日期,还有取出来的数字也不能合计

追答

1,将A列带有日期的公式单独改一下
=text(index(sheet1!a:a,small(if(isnumber(find("费用",sheet1!$f$2:$f$1000)),row($2:$1000),6^6),row(a1))),"e-m-d")
2,CDE列不能计算是因为公式结果的数字是文本型,不能参与计算,如果要参与下一步计算,CDE列公式也应单独改一下,去掉公式的“尾巴”
=index(sheet1!a:a,small(if(isnumber(find("费用",sheet1!$f$2:$f$1000)),row($2:$1000),6^6),row(a1)))

第4个回答  2020-05-21

满足什么条件?可以用查找引用函数

相似回答