excel 把某一列中满足条件的项对应的名称,在另一列中或表格中自动列出来。

比如下面的表一中A列是学生名字,B列是他提交作业的数量。要求每个学生至少提交2篇作业就合格。我现在不直接用高级筛选或自动筛选,而是要用公式实现,把提交作业数量 >1的“学生名字” 自动在另一个表二的A列中一一排列出来(此案例中满足条件的就只有三人王小、李四、陈大,这三个人的名单要自动生成到表二的A列中)。请问我怎么实现?
表一:
A B
名字 作业数量
李明 1
王小 2
张三 0
李四 2
陈大 3

表二:
A
合格名单
王小
李四
陈大
我不希望产生不符合条件的空行,最后生成的合格名单,就只有合格的那几个人一一排列下来,不会生成空行。。
如果一行行去用IF条件函数去筛选,那么,学生有多少名就会生成多少行。不满足条件的,就会是空行,还需要去删除空行,这样非常不整洁,占行数又多。不知道大家明白我的意思么??我只要满足条件的人就在表二中自动生成名字。不满足条件的,不会在表二中生成空行。

示例:如果收益大于五百万,项目名称在C列出现。

在C2单元格输入公式:=if(B2>5000000,A2,""),快速填充。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-11
可在D1输入“合格名单”,在D2输入公式:
=index(A:A,small(if(B$2:B$100>1,row($2:$100),1000),row(a1)))&""
摁键盘上的 SHIFT+CTRL+回车 结束公式的输入,再将公式向下拉填充复制就可以了。追问

谢谢你,你太牛了。用你的这个方法的确是可以。不过我如果是想在表一中写公式,然后结果自动生成到表二,要怎么实现呢?我希望表二就是由表一中的条件生成,是一个动态的。如果表一改变,表二自动生成改变。如果像你现在这样做,如果我在表一中又加入几百条数据,我又非得再去表二更新一下写有公式的行数。才会显示完整,如果数据多,我都不知道我到底要往下填充公式多少行,才完整。所以还希望你再次帮我想个办法,谢谢~~

追答

你可以在公式中预留多些行的,如100行不够用,可以1000、5000也可以的,只是要修改就要公式中多个位置都一同修改就是了。如将 B$2:B$100 改为 B$2:B$1000 后而也要是1000,试试这个吧:
=index(A:A,small(if(B$2:B$1000>1,row($2:$1000),10^4),row(a1)))&""
1000行应该够用了吧!将公式向下拉填充多几行也不影响你的,向下拉个几百行也行的,当然这应该根据你的实际应用需要去操作了。

第2个回答  推荐于2016-03-05
表1-sheet1,表2-sheet2
sheet2的A2输入
=index(sheet1!A:A,small(if(sheet1!B$1:B$100>1,row($1:$100),63356),row(A1)))&""
crtl+shift+enter结束公式
往下填充追问

谢谢你,你太牛了。用你的这个方法的确是可以。不过我如果是想在表一中写公式,然后结果自动生成到表二,不是在表二的单元格中写公式,要怎么实现呢?我希望表二就是由表一中的条件生成,是一个动态的。。如果表一改变,表二自动生成改变。。如果像你现在这样做,如果我在表一中又加入几百条数据,我又非得再去表二更新一下写有公式的行数。。才会显示完整,如果数据多,我都不知道我到底要往下填充公式多少行,才完整。

追答

这个是矛盾的没办法。。你只有在表二里面先多填充一些,反正不满足条件,显示的是空,表一数据变了,表2就动态变化了

本回答被提问者采纳
第3个回答  2011-08-11
在表二的A2中输入如下公式:=IF(表一!B2>1,表一!A2,"")
复制公式,最后把值为""的删除!追问

如果一行行去用IF条件函数去筛选,那么,学生有多少名就会生成多少行。不满足条件的,就会是空行,还需要去删除空行,这样非常不整洁,占行数又多。不知道您明白我的意思么??我只要满足条件的人就在表二中自动生成名字。不满足条件的,不会在表二中生成空行。该怎么实现呢?好像IF函数不行的

第4个回答  2011-08-11
=IF(Sheet1!E2>=2,Sheet1!D2,"")
相似回答