设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 4658|回复: 5
打印 上一主题 下一主题

[基础应用] 请问,如何将一列数据迅速等分为10列数据?

[复制链接]
跳转到指定楼层
1#
发表于 2005-7-13 05:55:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我经常需要用电子表格处理很多数据,其中有一个工作就是把一列数据变成若干列的数据



比如,有一列100行的数据,如何能迅速转变成10列10行的数据呢?同样,如何把一列1万行数据转变成10列1000行数据呢?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-7-13 23:58:00 | 只看该作者
还没想到解决方法,先帮你顶上去
3#
发表于 2005-7-14 00:10:00 | 只看该作者
以下是引用linigood在2005-7-12 21:55:00的发言:



我经常需要用电子表格处理很多数据,其中有一个工作就是把一列数据变成若干列的数据,比如,有一列100行的数据,如何能迅速转变成10列10行的数据呢?

如果不数据的顺序不重要的话,那下面这个宏可以帮你解决一列分为多列。使用时请注意:先选取含有数据的列(A列),假设折成3列,则折到A列,B列和C列,其中B列和C列原有数据将会被覆盖。

Sub CompressData()

    Dim rSource As Range

    Dim rTarget As Range

    Dim iWriteRow As Integer

    Dim iWriteCol As Integer

    Dim iColCount As Integer

    Dim iTargetCols As Integer

    Dim J As Integer

    iTargetCols = Val(InputBox("要改成多少列?请输入一个正整数。"))

    If iTargetCols > 1 Then

        Set rSource = ActiveSheet.Range(ActiveWindow.Selection.Address)

        If rSource.Columns.Count > 1 Then Exit Sub

        iWriteRow = rSource.Row + (rSource.Cells.Count / iTargetCols)

        iWriteCol = rSource.Column + iTargetCols - 1

        Set rTarget = Range(Cells(rSource.Row, rSource.Column), _

          Cells(iWriteRow, iWriteCol))

        For J = 1 To rSource.Cells.Count

            rTarget.Cells(J) = rSource.Cells(J)

            If J > (rSource.Cells.Count / iTargetCols) Then _

              rSource.Cells(J).Clear

        Next J

    End If

End Sub
4#
发表于 2005-7-14 16:36:00 | 只看该作者
在工作表表菜单栏--点数据菜单---点分列--按对话框提示操作(按你的情况,可按固定宽度分列)
5#
发表于 2005-7-14 18:38:00 | 只看该作者
tj.jt的方法是把同一列的数据按位置折分成N列。我的方法是把A列的数值,一个个排到分成的列上
6#
发表于 2005-7-15 22:46:00 | 只看该作者
这里有个公式。参见下面连接的第4楼以及后面的说明:http://itbbs.pconline.com.cn/topic.jsp?tid=1855390
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-10 22:57 , Processed in 0.091514 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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