Office中国论坛/Access中国论坛

标题: 请问,如何将一列数据迅速等分为10列数据? [打印本页]

作者: linigood    时间: 2005-7-13 05:55
标题: 请问,如何将一列数据迅速等分为10列数据?
我经常需要用电子表格处理很多数据,其中有一个工作就是把一列数据变成若干列的数据



比如,有一列100行的数据,如何能迅速转变成10列10行的数据呢?同样,如何把一列1万行数据转变成10列1000行数据呢?
作者: 晓月清风    时间: 2005-7-13 23:58
还没想到解决方法,先帮你顶上去
作者: 晓月清风    时间: 2005-7-14 00:10
以下是引用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
作者: tj.jt    时间: 2005-7-14 16:36
在工作表表菜单栏--点数据菜单---点分列--按对话框提示操作(按你的情况,可按固定宽度分列)
作者: 晓月清风    时间: 2005-7-14 18:38
tj.jt的方法是把同一列的数据按位置折分成N列。我的方法是把A列的数值,一个个排到分成的列上
作者: 红池坝    时间: 2005-7-15 22:46
这里有个公式。参见下面连接的第4楼以及后面的说明:http://itbbs.pconline.com.cn/topic.jsp?tid=1855390




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3