Excel,在表格中如何把两列数字 从小到大排列

假如:2在第一列,9在第二列的话,1在第三列,我要如何把的数字1,2,9这样依次排列开来。

两列排序在标准功能中是没有的。只能用万能的VBA来完成。

举例说明。例如有一数字序列在A1:A50,需要排序后输出在C1:D25中。程序大致分成以下几个步骤:1、读取数据到数组;2、对数组排序;3、将数组数据分两列输出到C1:D25中。代码如下:

Sub 两列排序()

'读取数据

Dim mYarr(1 To 100)

Dim I, J, K, L As Integer

Dim SS As Double

I = 1

Do While Cells(I, 1) <> ""

mYarr(I) = Cells(I, 1)

I = I + 1

Loop

I = I - 1 'I 记录数据的个数

'排序 从小到大

For J = 1 To I - 1

    For K = J To I

       If mYarr(J) > mYarr(K) Then

          SS = mYarr(J)

          mYarr(J) = mYarr(K)

          mYarr(K) = SS

        End If

     Next K

Next J

'按两列输出

J = 1: L = 1

Do While J < I

   For K = 1 To 2

      Cells(L, 2 + K) = mYarr(J)

      J = J + 1

   Next K

   L = L + 1

Loop

End Sub

运行结果如图:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-16
你是说两列数字分别从小到大排列吗?如果是这样就非常简单。选择两列数字,选择排序和筛选——自定义排序,在弹出的对话框中添加两个条件,分别选择列A和列B,排序依据选择数值,次序选择升序,确定。如果不是就麻烦一点了。
第2个回答  2011-06-16
如果不管行序是否要对应,那么,
第一列排序后,剪切到另一个sheet中;
再用第二列排序,再把刚才那组数据剪回来,放在第一列。
第3个回答  2011-06-16
假设你的数据是在A列B列
C1输入
=small(A:B,row(a1))
下拉公式
C列为你要求的。
第4个回答  2011-06-16
把要排列的列点一下,点击AZ(实际是竖排的)按钮可以了
相似回答