excel表格怎么批量按行排序,我的表格有5列20000行。行都是乱了顺序的。请给直接的公式或操作。请参效果图

未批量排序前最终效果
2024-12-02 04:50:10
推荐回答(4个)
回答1:

用公式试一下
假设这五列是A,B,C,D,E五列
F1单元格输入公式
=SMALL($A1:$E1,COLUMN(A1))
右拉复制公式至J列
再一起下拉复制公式

完成后选中F至J列---右键---复制---再右键---选择性粘贴---数值---确定后删去A至E列

这样就完成了全部排序

回答2:

学习了1975qjm的方法,整理如下:
1. 在A1:E3建立数据表
4 5 6 7 10
4 6 3 2 1
8 3 4 1 2
2. 在F1输入公式:=SMALL($A1:$E1,COLUMN(A1))。然后将公式向右复制到J1,再将F1:J1向下复制
3. 将F1:J3复制,右键点击单元格A1,点击浮动菜单中的“选择性粘贴”,在对话框中选择“数值”,然后点击确定,即可实现A1:E3的排序
4. 将F1:J3删除即可

回答3:

VBA 函数,不知道你会不会用。
功能:对每行的数据由小到大进行排序。
Private Function MyFunction()
Dim I As Long, J As Long, Arr()
ReDim Preserve Arr(1 To UsedRange.Columns.Count)
For I = 1 To UsedRange.Rows.Count
DoEvents
For J = 1 To UsedRange.Columns.Count '需要排序的数放入数组
Arr(J) = Cells(I, J).Value
Next
Call Paixu(Arr)
For J = 1 To UsedRange.Columns.Count '排序后结果写回单元格
Cells(I, J).Value = Arr(J)
Next
Next
MsgBox "完成!"
End Function
'排序函数
Private Function Paixu(ByRef Arr())
Dim I As Long, J As Long, Temp As Long
For I = UBound(Arr) To LBound(Arr) Step -1
For J = LBound(Arr) To I - 1
If Arr(I) < Arr(J) Then
Temp = Arr(I)
Arr(I) = Arr(J)
Arr(J) = Temp
End If
Next
Next
End Function

回答4:

按照楼上的降序用 LARGE()