Excel精英培训网

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

[已解决]合并单元格后面数据提取

[复制链接]
发表于 2021-11-30 17:17 | 显示全部楼层 |阅读模式
求助:
1.根据 表2 中要查找的内容,
2.根据 表1 中的原始数据,
3.用函数生成 表3 的样式。
微信图片_20211130171041.png



最佳答案
2021-11-30 21:02
  1. Sub 数据转移()
  2. Dim startrow As Integer, endrow As Integer
  3. Dim lastrow As Integer, i As Integer, j As Integer, k As Integer
  4. lastrow = Sheets(2).Range("a65536").End(xlUp).Row
  5. If lastrow = 1 Then Exit Sub
  6. k = 2
  7. Sheets(3).Range("a2:c999").Clear
  8. With Sheets(1)
  9. For i = 2 To lastrow
  10.    startrow = Application.Match(Sheets(2).Range("a" & i), .Range("b1:b65536"), 0)
  11.    j = startrow + 1
  12.    Do Until .Range("b" & j) <> "" Or .Range("c" & j) = ""
  13.       j = j + 1
  14.    Loop
  15.    endrow = j - 1
  16.    .Range("b" & startrow & ":d" & endrow).Copy
  17.    Sheets(3).Activate
  18.    Range("a" & k).Select
  19.    ActiveSheet.Paste
  20.    k = k + endrow - startrow + 1
  21. Next
  22. End With
  23. End Sub
复制代码

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2021-11-30 17:19 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2021-11-30 17:36 | 显示全部楼层
Excel 文件

MyJob2合并单元格后面数据提取.rar

46.53 KB, 下载次数: 5

MyJob2合并单元格后面数据提取.rar

46.53 KB, 下载次数: 1

回复

使用道具 举报

 楼主| 发表于 2021-11-30 17:38 | 显示全部楼层
刚刚上传了 Excel 文件,上面的图片正是来自这个文件。可以打开来进行直接添加函数公式。谢谢!
回复

使用道具 举报

发表于 2021-11-30 20:13 | 显示全部楼层
怎么说呢。函数只能得到一个值。。它不能对单元格的格式进行处理。最多只能是值的显示方式。它不能排序呀。合并等操作。
回复

使用道具 举报

发表于 2021-11-30 21:02 | 显示全部楼层    本楼为最佳答案   
  1. Sub 数据转移()
  2. Dim startrow As Integer, endrow As Integer
  3. Dim lastrow As Integer, i As Integer, j As Integer, k As Integer
  4. lastrow = Sheets(2).Range("a65536").End(xlUp).Row
  5. If lastrow = 1 Then Exit Sub
  6. k = 2
  7. Sheets(3).Range("a2:c999").Clear
  8. With Sheets(1)
  9. For i = 2 To lastrow
  10.    startrow = Application.Match(Sheets(2).Range("a" & i), .Range("b1:b65536"), 0)
  11.    j = startrow + 1
  12.    Do Until .Range("b" & j) <> "" Or .Range("c" & j) = ""
  13.       j = j + 1
  14.    Loop
  15.    endrow = j - 1
  16.    .Range("b" & startrow & ":d" & endrow).Copy
  17.    Sheets(3).Activate
  18.    Range("a" & k).Select
  19.    ActiveSheet.Paste
  20.    k = k + endrow - startrow + 1
  21. Next
  22. End With
  23. End Sub
复制代码

MyJob2合并单元格后面数据提取.rar

52.57 KB, 下载次数: 19

回复

使用道具 举报

 楼主| 发表于 2021-12-1 11:09 | 显示全部楼层
心正意诚身修 发表于 2021-11-30 20:13
怎么说呢。函数只能得到一个值。。它不能对单元格的格式进行处理。最多只能是值的显示方式。它不能排序呀。 ...

哦 谢谢!
回复

使用道具 举报

 楼主| 发表于 2021-12-1 11:09 | 显示全部楼层

这个很专业  我不是学软件的  看不懂谢谢!
回复

使用道具 举报

 楼主| 发表于 2021-12-21 08:42 | 显示全部楼层
心正意诚身修 发表于 2021-11-30 20:13
怎么说呢。函数只能得到一个值。。它不能对单元格的格式进行处理。最多只能是值的显示方式。它不能排序呀。 ...

是这样的:
1.首先,表2 列出三个销售人员的名字;
2.再根据 表1 中的原始数据,针对表2 所列出的名字,对应地取出全部相关数据,结果就像表3 那样。


一定有人会做。因为在另一个主题里,一位版主就做到了一部分,只是还不能直接套用,原因是我没讲清楚,所以解答的只做了一部分。其实他已经很厉害了。
我没有系统地学习过 Excel ,看不太懂。现在想先试试,实在不懂了再去向他请教。

实际上,对于表1 中有几千个业务员时,要求这个时候,无论抽取多少位销售员出来,依然能做到像表3 那样。注意,并不要求能排序
回复

使用道具 举报

发表于 2021-12-24 18:32 | 显示全部楼层
bollywoo 发表于 2021-12-21 08:42
是这样的:
1.首先,表2 列出三个销售人员的名字;
2.再根据 表1 中的原始数据,针对表2 所列出的名字 ...

跟你说了。函数是不能直接得出那种效果的。这种函数水平高低没有关系。技巧可 以。VBA也可以。纯公式是实现不了的。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 09:09 , Processed in 0.529427 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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