Excel精英培训网

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

sheet1一组数据如何自动分类放在sheet2 sheet3中

[复制链接]
发表于 2010-1-23 12:31 | 显示全部楼层 |阅读模式

具体内容是:

       要sheet1表中有一组数据:如

         

原料名原料状态产品批号有效限期总库存 [kg]包装大小 [kg]原料类别
CORN STARCH (BIG BAG)60366A9866可用的9128004 08/08/2009903.000903.0001类
WHEAT FLOUR RC60504A2566可用的9293001 01/10/2010200.00025.0002类
WHEAT FLOUR RC60504A2566可用的9306008 01/29/20109,000.0001,500.0001类
WHEAT FLOUR RC60504A2566可用的9306009 01/29/20101,000.00025.0002类
WHEAT MIDDLINGS (16%)60540A2566可用的9352001 03/20/20103,988.000997.0003类
WHEAT MIDDLINGS (16%)60540A2566可用的9352002 03/20/2010972.000972.0004类
CORN GLUTEN MEAL 60%60620A4066可用的9341002 12/05/20101,760.00040.0003类
SUGAR61260A5066可用的9314004 08/11/2010100.00050.0002类

如何 根据 后面的 原料类别,把 1类的产品全部放入sheet2,把2类的放入  sheet3.以此类推

如果是筛选复制的方法哪就免了。

[此贴子已经被作者于2010-1-23 13:06:37编辑过]
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2010-1-23 12:33 | 显示全部楼层
回复

使用道具 举报

发表于 2010-1-23 12:33 | 显示全部楼层
回复

使用道具 举报

发表于 2010-1-23 12:34 | 显示全部楼层

可以用函数的index或offset等来做

回复

使用道具 举报

发表于 2010-1-23 12:34 | 显示全部楼层

干脆用VBA吧,很省事[em07]
回复

使用道具 举报

发表于 2010-1-23 12:35 | 显示全部楼层

估计楼主有很多这样的分类,想一次分到各个表中去,是这样吗?如果是这样,用VBA是最好的方法,一次就可以完成
回复

使用道具 举报

 楼主| 发表于 2010-1-23 12:52 | 显示全部楼层

那么如何 用VBA实现 。请教 程序代码。谢谢
回复

使用道具 举报

发表于 2010-1-23 13:29 | 显示全部楼层

QUOTE:
以下是引用sunsoso在2010-1-23 12:52:00的发言:
那么如何 用VBA实现 。请教 程序代码。谢谢

Sub 分类存放()
Dim arr, arr1, arr2()
Dim myrow
myrow = Sheets("sheet1").Range("h65536").End(xlUp).Row - 1
  arr = Sheets("sheet1").Range("a2:h" & myrow + 1)
  Set d = CreateObject("Scripting.Dictionary")
  '取得唯一的分类
  For x = 1 To myrow
    d(arr(x, 8)) = arr(x, 8)
  Next x
  arr1 = d.keys
  For y = 0 To UBound(arr1)
    ReDim arr2(1 To myrow, 1 To 8)
    For x = 1 To myrow
       If arr(x, 8) = arr1(y) Then
          k = k + 1
          For j = 1 To 8
            arr2(k, j) = arr(x, j)
          Next j
       End If
    Next x
    Set mysheet = Sheets.Add
    mysheet.Name = arr1(y)
    mysheet.Range("a1:h1").Value = Sheets("sheet1").Range("a1:h1").Value
    mysheet.Range("a2").Resize(k, 8) = arr2
    Erase arr2
    k = 0
  Next y
End Sub

0ll3tufp.rar (9.15 KB, 下载次数: 114)

回复

使用道具 举报

发表于 2013-11-15 11:25 | 显示全部楼层
兰色幻想 发表于 2010-1-23 13:29
QUOTE:以下是引用sunsoso在2010-1-23 12:52:00的发言:那么如何 用VBA实现 。请教 程序代码。谢谢Sub 分类存 ...

你好,尊敬的教官,我在http://www.excelpx.com/forum.php ... ge=1&authorid=5 的4楼上看到了你编的vba,请问如果数据有16列,n行,按照第一列的数据进行分表,且保留总表,请问怎么编写代码?
回复

使用道具 举报

发表于 2014-11-21 17:23 | 显示全部楼层
兰色幻想 发表于 2010-1-23 13:29
QUOTE:以下是引用sunsoso在2010-1-23 12:52:00的发言:那么如何 用VBA实现 。请教 程序代码。谢谢Sub 分类存 ...

非常实用,
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 17:04 , Processed in 0.230903 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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