EXCEL中怎么用函数公式提取满足条件的内容?

发布网友 发布时间:2022-04-24 09:19

我来回答

5个回答

热心网友 时间:2023-10-09 07:12

根据图例是提取表1中B列所有不为空值的记录,这里要注意的是B列的数据不具有唯一性,所以表2中的A列不能根据表2中B列数据用INDEX+MATCH组合函数返回数据;

如图,在表2的A3输入公式:=INDEX(表1!A:A,SMALL(IF(表1!$B$3:$B$1000<>"",ROW($3:$1000),4^8),ROW(1:1)))&"",这是一个数组公式,即同时按Ctrl+Shift+Enter结束公式编辑,会自动生成一对{};

选中A3,右拉下拉填充,即可将表1中B列不为空的记录全部提取出来。

热心网友 时间:2023-10-09 07:13

为什么不直接筛选后粘贴?
公式法:

表2 B2 输入
=index(表1!$B$2:$B$1000,small(if(表1!$B$2:$B$1000<>"",row(表1!$B$2:$B$1000)-1,1001),row(A1)))
按ctrl+shift+ enter 结束公式, 鼠标移到B2右下角变实心十字下拉
A2 输入
=index(表1!A:A,match(B2,表1!B:B,0))

热心网友 时间:2023-10-09 07:13

1 以下代码复制到代码框,运行即可
Sub ZQT()
For Each AK In Range("B:B")
If AK.Value <> "" Then
Rows(AK.Row).Copy Sheets("表2").Rows(Sheets("表2").Range("A60000") _
.End(xlUp).Row + 1) '上一行的 表2 为显示数据的工作表名字,自己根据需要更改
End If: Next
End Sub

热心网友 时间:2023-10-09 07:14

看上去好像对B列做个排序筛选,然后复制、粘贴就可以实现目的。
用数据透视表也行,不过太复杂说不清楚。
用函数更复杂了,没有上下文没法说明的。

热心网友 时间:2023-10-09 07:15

我觉得不用VBA编程,只用函数和公式是做不到的。。。

手动做的话很简单,只要表一里设置自动筛选,选出现问题是非空的,然后拷到表2就行。。。要自动就没那么方便了。。。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com