比如下面的表一中A列是学生名字,B列是他评优的次数。我现在不直接用高级筛选或自动筛选,而是要用公式实现,把评优的次数>0的“学生名字” 自动在另一个表二的A列中一一排列出来,“评优次数”自动在另一个表二的B列中按降序一一排列出来,(此案例中满足条件的就只有三人王小、刘四、李明,这三个人的名单要按评优次数降序自动生成到表二中)。请问我怎么实现?
表一:
A B
名字 评优次数
李明 1
王小 3
张三 0
刘四 2
陈大 0
表二:
名字 评优次数
王小 3
刘四 2
李明 1
注::我不希望产生不符合条件的空行,最后生成的表二,就只有符合条件的那几个人一一按降序排列下来,不会生成空行。。
如果一行行去用IF条件函数去筛选,那么,学生有多少名就会生成多少行。不满足条件的,就会是空行,还需要去删除空行,这样非常不整洁,占行数又多。不知道大家明白我的意思么??我只要满足条件的人就在表二中自动生成另一个表,并且按降序排列。不满足条件的,不会在表二中生成空行。
请各位高手,帮我直接写出公式,谢谢~~
1、打开所需表格,首先来操作一下一个条件的。
2、首先选中表格整个区域,在这里要注意的一个问题就是要选中以行为单位的整个表格,而不是单个选中供应商一列,因为要标记的是一整行。
3、接下来在样式选项卡下找到,条件格式选项,在条件格式下拉菜单中选择新建规则,并打开新建规则对话框。
4、在新建规则对话框中,规则类型选择最后一个“使用公式来确定要设置格式的单元格”。
5、选中使用公式规则类型以后,在编辑规则说明下面输入公式(=$C2="李丽")。在这里公式输入要注意两个问题:一,输入符号的时候要在英文状态下输入。二,公式中“$”绝对值符号只是C列是绝对的,但是行不是绝对的$C$2,要注意2前面是没有“$”符号的。
6、设置完成以后点击确定在表格中就可以实现。并且在表格中继续输入数据,如果输入的数据满足公式条件,表格也会自动标记。
需要多个函数来组合实现此功能,组合后的公式如下:
=IFERROR(INDEX($A$2:$A$17,LARGE(IF($A$2:$A$17>10,ROW($A$2:$A$17),""),ROW(2:2))),""),数组函数,三键结束。
公式详解:
我们首先用if函数来做条件判断,举例中源数据区域位于A2:A17,假定条件为">10"。
用IF来判断如果源数据满足条件则返回其行号,如不满足则返回空值。
通过第一步,我们可以得到一个由行号及“”(空值)组成的数组,然后运用LARGE函数将数组按照从大到小排序,及行号从大到小排列。
运用INDEX函数来根据第二步排列好的行号依次返回结果。
第二步得出的数组中的空值对应的INDEX结果是#NUM!, 需要用IFERROR函数来进行容错,即如果得到错误值则强制转化为空值。
注:此题要求从大到小比较特殊,所以用到了LARGE函数,通常情况下是按照原排列顺序返回值,这时候我们要用SMALL函数来代替LARGE函数,即IFERROR+INDEX+SMALL+IF组合。
不好意思,你的这种方法是对的,我按你的方法把三列的公式都弄成这样就弄好了,谢谢你!
追答如果搞定了还要麻烦采纳一下答案 ^_^
本回答被提问者采纳谢谢,你的公式完全可以。但是如果我增加学号一列,也要把学号一列在表二中显示出来,怎么办呢?我刚试了,如果只是这两列,你给出的公式完全可以了。但是我增加了学号一列,就不知道怎么弄了。学号那一列要写什么公式呢。
追答C2输入=VLOOKUP(B2,Sheet1!$B$2:$C$6,2,0)
追问55555555555,谢谢。如果把学号放在C列,用你给的公式是可以的。可是我要把A列是学号,B列是名字,C列是评优次数。怎么写公式呢。5555555不好意思,问了你这么多次。麻烦你了
追答A2公式=VLOOKUP(C2,IF({1,0},Sheet1!$C$2:$C$6,Sheet1!$A$2:$A$6),2,0)
B2公式=VLOOKUP(C2,IF({1,0},Sheet1!$C$2:$C$6,Sheet1!$B$2:$B$7),2,0)
C2公式=IF(ISERROR(LARGE(IF(Sheet1!$C$2:$C$60,Sheet1!$C$2:$C$6),ROW(B1))),"",LARGE(IF(Sheet1!$C$2:$C$60,Sheet1!$C$2:$C$6),ROW(B1)))按那三个键
啊,公式是可以,但是现在又出现一个问题,因为学生量大,行数多, 有一些学生评优次数是相同的,结果那些相同评优次数的学生,全都自动生成是同一个人,比如评优1次的学生有10个人,结果表二中就显示10行都是李明,10行显示同一个人,其他9个评优1次的人没有显示,要怎么样解决这个问题呢?
追答A2公式=INDEX(Sheet1!$A$2:$A$13,LARGE(IF(C2=Sheet1!$C$2:$C$13,ROW(Sheet1!$C$2:$C$13)),COUNTIF($C$2:C2,C2))-1)
B2公式=INDEX(Sheet1!$B$2:$B$13,LARGE(IF(C2=Sheet1!$C$2:$C$13,ROW(Sheet1!$C$2:$C$13)),COUNTIF($C$2:C2,C2))-1)
C2公式=IF(ISERROR(LARGE(IF(Sheet1!$C$2:$C$130,Sheet1!$C$2:$C$13),ROW(B1))),"",LARGE(IF(Sheet1!$C$2:$C$130,Sheet1!$C$2:$C$13),ROW(B1)))
全是按三个键结束,和之前的函数区域有改动,改成A2:C13区域了
excel 把某一列中满足条件的项对应的数据,在另一个表格中降序自动列出...
1、打开所需表格,首先来操作一下一个条件的。2、首先选中表格整个区域,在这里要注意的一个问题就是要选中以行为单位的整个表格,而不是单个选中供应商一列,因为要标记的是一整行。3、接下来在样式选项卡下找到,条件格式选项,在条件格式下拉菜单中选择新建规则,并打开新建规则对话框。4、在新建规...
excel 把某一到两列中满足条件的项对应的数据,在另一个表格中降序自动列...
选择A:E列,在“数据”选项下的“排序”中,按B列为主要关键字,D列为次要关键字,降序排序,即可。公式远远没有“排序”来的快捷。
请问在excel中怎样把一列数据以及它后面的内容按照另外一列的顺序排序...
1、以下图中的表格数据为例演示操作方法。接下来,要把表格数据按月分组。2、把7月的数据全选中。3、鼠标移到菜单栏的数据选项卡这里,点击一下。下面展开与之相关的所有功能组。再看右边这里,找到:创建组。4、点击创建组的下拉按钮。弹出两选项,点击:创建组 5、弹出对话框,点选:行;再点确定...
如何在Excel中让一列数据按照另一列的数据进行排序
一步,直接选择需要排序的数值列,点击菜单栏中的【数据】-【排序】:> 第二步,在弹出来的对话框中勾选【扩展选定区域】,点击【排序】:> 第三步,在【排序】的设置对话框中将排序依据设置为【数值】,次序的下拉列表选择【降序】后点击【确定】即可:> 设置完成后表格内容就随排序列内容变化而变...
excel如何满足某一列条件的行然后按另外一列排序?
1、选择A:C列,在“数据”选项下的“排序”中,以B列为“主要关键字”“升序”,以A列为“次要关键字”“降序”,排序;2、D列为辅助列,在D1单元格输入=COUNTIF(B$1:B1,B1) 然后向下填充公式;3、复制D列,“选择性粘贴”为“数值”;4、对D列进行筛选,“自定义筛选”“范围”为小于...
excel中怎么将sheet1中的名字已经对应数据在sheet2中自动排列出TOP5(前...
Sheet24的A2输入 =IF(ROW(A1)>5,"",INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$B$2:$B$26>=LARGE(Sheet1!$B$2:$B$26,5),ROW($B$2:$B$26),4^8),ROW(A1)))&"")Ctrl+Shift+回车结束 向右向下填充
EXCEL如何让数字相同的一列以及后面的数据按照另一列的顺序排序
你这个只有一列列选择后,每列单独排序,排序时,会提示扩展选区还是当前选择,如图,要选择“当前选择区域排序”后,再点“排序”,就只对当前选择的列进行排序。这里还有一个问题,对于D列,按照符号的编码大小来排序(无论升序还降序),无法达到你的要求,要达到你的要求,得先自己定义好序列,排序...
excel中如何将统计出一列数据有多少重复,并在另一列以多到少的方式显 ...
1,如果数据在a1开始,复制a列在b列粘贴(如果是公式得出的,就粘贴数值),应用工具删除b列重复值。2,在c列输入公式=COUNTIF(A:A,B1)向下填充。3,在第一行插入一行,b1输入“无重复”,c1输入“b列对应个数”。4,选择b、c列点筛选,然后在c列点降序即可。这一列就是从多到少的a列数据的...
excel 中提取列中符合条件的数值,并重新输出在同表格的另一列中
1。在A列前插入一列做辅助列(原数据列成为B列),设B列数据在B2开始下列,2。在A2输入=IF(AND(A2>100,A2<140,MAX(A$1:A1)+1,""),下拉,3。设在H列重列,在H2输入=IF(ROW()-1>MAX(A:A),"",VLOOKUP(ROW()-1,A:B,2,0)),下拉。搞定!
excel中怎么将sheet1中的名字已经对应数据在sheet2中自动排列出TOP5(前...
有个笨方法,sheet1中的AB两列copy到sheet2中,然后sheet2,B列降序排列,把第六行以下全部删掉。就行了。