在excel中能不能这样排序

来源:百度知道 编辑:UC知道 时间:2024/09/23 16:31:03
如:A列是人名B列也是人名,不同的是B列的人名是打乱A列得来的,有没有排序方式,经过重新排序后,A1=B1出来结果。
急,在线等。加50分
我的描述简单了。谢谢大家的回答
我中间有数据,并且计算机存的数据和现在统计的数据排列顺序不一致,我要的效果是B列不动,A列=B列的排序,并且中间的数据还要和A列一起排序。

这个简单.
1>要B列不动的话,先把B列剪到第一列去,等下排序的时候好选择排序范围;

2>在第一列后面插入一列,用数字1,2,3...把第一列编一个序号

3>在第3列后面,也就是你题中要排序的A列后面插入一列,用公式VLOOKUP把第一列对应的数字序号拿过来,在D1中输入公式如下:=vlookup(C:C,A:B,2,false)回车后把公式往下复制就可了,然后把D列复制贴值

4>现在就把从C列开始到后面的数据全选中,注意不要选你不要动的那列,然后按D列进行升序排序就OK了

如果你的数据从第一行开始的
你可在C1中输入公式如下
=MATCH(B1,A:A,)

向下拉

然后选中B1:C1000(如果你的数据区域是这么大的话)

再点“数据”--排序--在“主要关键字”中选择“C列”--右边选择“升序”--确定即可
-------------------------------------------------------------------
这个补充把问题说的复杂了,如果可能的话你还是发个文件给我,看文件后我再研究研究,需要就发百度消息给我。

直接把A列复制到B列不就行了。
非要排一下可以使用宏
Sub ast()
Dim a(21) As String '21是行数,改为你的行数
For i = 1 To 21
a(i) = Sheet1.Cells(i, 2) 'Sheet1是表名,改为你的表名
Next i
For i = 1 To 21
For j = 1 To 21
If a(j) = Sheet1.Cells(i, 1) Then Sheet1.Cells(i, 2) = a(j)
Next j
Next i
End Sub

可这样做:在有数据列的最后一列后一列例如是F列输入1,2,3,4,5,