EXCEL同一列数据15个竖向单元格升序17个竖向单元格降序!各位哥哥姐姐...
发布网友
发布时间:2024-10-11 21:08
我来回答
共5个回答
热心网友
时间:2024-10-12 02:15
请上传带行号列标的表格截图,并说明你的要求。
热心网友
时间:2024-10-12 02:18
选择要排序的一列数据,数据——排序
热心网友
时间:2024-10-12 02:21
使用VBA,鼠标放在表上,鼠标右键,查看代码,把这个粘进去,按f5
Sub p()
Dim t As Double
Dim a1() As Double
a = [b65536].End(xlUp).Row
ReDim a1(a) As Double
For i = 1 To a
a1(i) = Cells(i, 3)
Next i
For n = 1 To Int(a / 32)
For i = 1 + (n - 1) * 32 To 14 + (n - 1) * 32 '排序
For j = i + 1 To 15 + (n - 1) * 32
If a1(i) > a1(j) Then
t = a1(i)
a1(i) = a1(j)
a1(j) = t
End If
Next j
Next i
For i = 16 + (n - 1) * 32 To 31 + (n - 1) * 32 '排序
For j = i + 1 To 32 + (n - 1) * 32
If a1(i) < a1(j) Then
t = a1(i)
a1(i) = a1(j)
a1(j) = t
End If
Next j
Next i
For i = 1 + (n - 1) * 32 To 32 + (n - 1) * 32
Cells(i, 3) = a1(i)
Next
Next n
End Sub
看看能不能满足你的要求?
热心网友
时间:2024-10-12 02:21
在B2单元格输入以下公式:IF(OR(MOD(ROW(),32)>=16,MOD(ROW(),32)=0),LARGE(OFFSET(A1,17-IF(MOD(ROW(),32)=0,32,MOD(ROW(),32))-1,,17,),MOD(ROW()-15,32)),SMALL(OFFSET(A1,-MOD(ROW(),32)+1,,15,),MOD(ROW(),32))),试下呢。
基本原理是确认行号是后半段的还是前半段的,后半段倒序就用LARGE函数,前半段升序就是SMALL函数。取值区间用OFFSET,区间的起点可以用公式,终点只要取15或17就可以。
我试过了,管用的。如可用,请采纳,费了不少脑子的。
热心网友
时间:2024-10-12 02:24
你分两次排序不就是了