excel 根据条件提取数字

发布网友

我来回答

4个回答

热心网友

假如你提供的数据分别在ABC三列,你可以在第四列D列(假设D1单元格)输入=If(ISBLANK(C1),"",IF(C1=-1,A1,"")),然后按住CTRL将鼠标移到D1单元格右下角出现填充柄时下拉填充公式。
你补充的问题没看明白什么意思,请描述清楚或者上图。追问已经上图

追答

假如你的C1=-1呢?

 

是这样吗?

 

看明白了,不知道能否满足你的要求,有问题请追问。我这个方法的公式要两个,在你的第一个单元格(比如C1)要这样写:

=IF(ISBLANK(C1),"",IF(C1=-1,IF(MOD(ROW(),5)=1,"",IF(ISBLANK(INDIRECT("A"&ROW()-1)),"",INDIRECT("A"&ROW()-1))),""))

然后在第二个单元格(比如C2)写:

=IF(ISBLANK(C2),"",IF(C2=-1,IF(MOD(ROW(),5)=1,"",IF(C2=C1,"",IF(ISBLANK(INDIRECT("A"&ROW()-1)),"未输入数据",INDIRECT("A"&ROW()-1)))),""))

然后从第二个单元格开始用CTRL向下复制填充公式就行了。

另外如果你的数据填写不是从第一行开始的,那么求余公式(MOD(ROW(),5)=1)后面的余数请自行更改。

又问你请追问。

上图:

热心网友

如果没有-1出现取哪个数

在D1输入公式往下拉
=IF(MATCH(-1,INDIRECT("C"&ROW()*5-5+1&":C"&ROW()*5),)=1,"",INDEX(INDIRECT("A"&ROW()*5-5+1&":A"&ROW()*5),MATCH(-1,INDIRECT("C"&ROW()*5-5+1&":C"&ROW()*5),)-1))

热心网友

假定提取结果放在E列连续区域,可在E1单元格输入公式:
=INDEX(A:A,SMALL(IF((C$1:C$999<>-1)*(C$2:C$1000=-1),ROW($1:$999),65536),ROW()))&""
公式以CTRL+SHIFT+ENTER三键结束,将公式向下复制。

热心网友

编写宏吧,首先判断 cell(?,?)=-1
然后循环 cell(?,i)放入那个地方,就这样就行了追问能具体点吗?

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