excel 把某一列中满足条件的项对应的数据,在另一个表格中降序自动列出来。

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

表二:
名字 评优次数
王小 3
刘四 2
李明 1

注::我不希望产生不符合条件的空行,最后生成的表二,就只有符合条件的那几个人一一按降序排列下来,不会生成空行。。
如果一行行去用IF条件函数去筛选,那么,学生有多少名就会生成多少行。不满足条件的,就会是空行,还需要去删除空行,这样非常不整洁,占行数又多。不知道大家明白我的意思么??我只要满足条件的人就在表二中自动生成另一个表,并且按降序排列。不满足条件的,不会在表二中生成空行。
请各位高手,帮我直接写出公式,谢谢~~
展开
 我来答
刺友互
高粉答主

2020-03-30 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:72.8万
展开全部

1、打开所需表格,首先来操作一下一个条件的。

2、首先选中表格整个区域,在这里要注意的一个问题就是要选中以行为单位的整个表格,而不是单个选中供应商一列,因为要标记的是一整行。

3、接下来在样式选项卡下找到,条件格式选项,在条件格式下拉菜单中选择新建规则,并打开新建规则对话框。

4、在新建规则对话框中,规则类型选择最后一个“使用公式来确定要设置格式的单元格”。

5、选中使用公式规则类型以后,在编辑规则说明下面输入公式(=$C2="李丽")。在这里公式输入要注意两个问题:一,输入符号的时候要在英文状态下输入。二,公式中“$”绝对值符号只是C列是绝对的,但是行不是绝对的$C$2,要注意2前面是没有“$”符号的。

6、设置完成以后点击确定在表格中就可以实现。并且在表格中继续输入数据,如果输入的数据满足公式条件,表格也会自动标记。

zhuying0511
2015-10-29 · TA获得超过3127个赞
知道大有可为答主
回答量:2101
采纳率:82%
帮助的人:472万
展开全部

需要多个函数来组合实现此功能,组合后的公式如下:

=IFERROR(INDEX($A$2:$A$17,LARGE(IF($A$2:$A$17>10,ROW($A$2:$A$17),""),ROW(2:2))),""),数组函数,三键结束。

公式详解:

  1. 我们首先用if函数来做条件判断,举例中源数据区域位于A2:A17,假定条件为">10"。

    用IF来判断如果源数据满足条件则返回其行号,如不满足则返回空值。

  2. 通过第一步,我们可以得到一个由行号及“”(空值)组成的数组,然后运用LARGE函数将数组按照从大到小排序,及行号从大到小排列。

  3. 运用INDEX函数来根据第二步排列好的行号依次返回结果。

  4. 第二步得出的数组中的空值对应的INDEX结果是#NUM!, 需要用IFERROR函数来进行容错,即如果得到错误值则强制转化为空值。

注:此题要求从大到小比较特殊,所以用到了LARGE函数,通常情况下是按照原排列顺序返回值,这时候我们要用SMALL函数来代替LARGE函数,即IFERROR+INDEX+SMALL+IF组合。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
levi_wzh
2011-08-31 · 知道合伙人互联网行家
levi_wzh
知道合伙人互联网行家
采纳数:2160 获赞数:7470
excel公式,条件格式

向TA提问 私信TA
展开全部
假设sheet1的A列是学号,B列是姓名,C列是评优次数,正式数据从第2行到第50行
则sheet2的A2公式
=IF(ROW(1:1)<=COUNTIF(Sheet1!$C:$C,">0"),INDEX(Sheet1!A$2:A$50,MATCH(LARGE(Sheet1!$C$2:$C$50+ROW($2:$50)/1000,ROW(1:1)),Sheet1!$C$2:$C$50+ROW($2:$50)/1000,)),"")
数组公式以ctrl+shift+enter三键组合结束输入
公式输入完后右拉到C2
然后一起下拉直到出现空白
追问
不好意思,你的这种方法是对的,我按你的方法把三列的公式都弄成这样就弄好了,谢谢你!
追答
如果搞定了还要麻烦采纳一下答案 ^_^
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
LFYL1234
2011-08-31 · 超过10用户采纳过TA的回答
知道答主
回答量:21
采纳率:0%
帮助的人:30.8万
展开全部
假设数据在sheet1与sheet2中
sheet2的A2输入公式=VLOOKUP(B2,IF({1,0},Sheet1!$B$2:$B$6,Sheet1!$A$2:$A$7),2,0)
sheet2的B2输入公式=IF(ISERROR(LARGE(IF(Sheet1!$B$2:$B$6<>0,Sheet1!$B$2:$B$6),ROW(B1))),"",LARGE(IF(Sheet1!$B$2:$B$6<>0,Sheet1!$B$2:$B$6),ROW(B1)))
不是按回车而是按CTRL+SHIFT+回车三个键一起按
之后向下复制就行了
更多追问追答
追问
谢谢,你的公式完全可以。但是如果我增加学号一列,也要把学号一列在表二中显示出来,怎么办呢?我刚试了,如果只是这两列,你给出的公式完全可以了。但是我增加了学号一列,就不知道怎么弄了。学号那一列要写什么公式呢。
追答
C2输入=VLOOKUP(B2,Sheet1!$B$2:$C$6,2,0)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Uo月下长笛oU
2011-08-31 · TA获得超过105个赞
知道答主
回答量:53
采纳率:100%
帮助的人:21.1万
展开全部
简单地要死,2007操作方法:选中表头行,数据——筛选——点评优次数——降序排列,搞定。
2003操作方法参照2007,都是这么回事
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(6)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式