Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1597|回复: 2

[已解决]提取内容后进行排序

[复制链接]
发表于 2017-6-19 13:30 | 显示全部楼层 |阅读模式
本帖最后由 heyiyuan 于 2017-6-19 17:20 编辑

各位老师:
               请教各位老师,如附件中的效果是从筛选后得到的,使用公式函数如何做到?,这样就不用每次筛选再进行排序了,谢谢!
最佳答案
2017-6-19 16:05
=IFERROR(INDEX(A:A,LARGE(IF($D$2:$D$16<>"",ROW($2:$16)),ROW(A1))),"")函数公式,3键结束

提取内容后进行排序.rar

8.64 KB, 下载次数: 3

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-6-19 14:52 | 显示全部楼层
  1. Sub main()
  2. Dim arr, brr, n%, n1%, m%
  3. arr = Range("a1").CurrentRegion
  4. ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
  5. Range("i1").CurrentRegion.ClearContents
  6. For n = 1 To UBound(arr)
  7.     If arr(n, 4) <> "" Then
  8.         For m = 1 To UBound(arr, 2)
  9.             brr(n1 + 1, m) = arr(n, m)
  10.         Next
  11.         n1 = n1 + 1
  12.     End If
  13. Next
  14. Range("i1").Resize(UBound(brr), UBound(brr, 2)) = brr
  15. Range("i1").CurrentRegion.Sort Range("m1"), xlAscending, , , , , , xlYes
  16. End Sub
复制代码

提取内容后进行排序.rar

14.96 KB, 下载次数: 5

评分

参与人数 1 +9 收起 理由
苏子龙 + 9 来学习

查看全部评分

回复

使用道具 举报

发表于 2017-6-19 16:05 | 显示全部楼层    本楼为最佳答案   
=IFERROR(INDEX(A:A,LARGE(IF($D$2:$D$16<>"",ROW($2:$16)),ROW(A1))),"")函数公式,3键结束
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 08:45 , Processed in 0.491763 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表