首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何对Excel数组进行排序

如何对Excel数组进行排序
EN

Stack Overflow用户
提问于 2020-05-25 10:10:17
回答 1查看 947关注 0票数 1

我使用数组公式填充Excel数组,并希望对结果进行排序。如果我尝试排序(使用数据/排序),就会得到“您不能更改数组的一部分”的错误。唯一能对其进行排序的方法是复制数组并将其粘贴为值,然后对该副本进行排序。有没有更好的方法。

复制步骤:

在空白工作表中,选择范围A1:A10,并插入给出数值结果的数组公式,例如=RAND()。范围内填充了值。尝试使用数据/排序对范围进行排序,您将得到上述错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-25 12:58:46

“就位”?我怀疑使用excel功能是否可行,因为它会导致自我/循环引用。

如果您选择"A1:A10“并输入一个数组(CSE)公式= Rand(),那么它可以按照单元格”“中的公式进行排序并复制下来。这将按升序对数组进行排序。若要按降序排序,请将",1)%“改为",0)%”

代码语言:javascript
运行
复制
=INDEX($A$1:$A$10,MATCH(SMALL(NPV(-RANK.EQ($A$1:$A$10,$A$1:$A$10,1)%,$A$1:$A$10)*100+ROW($A$1:$A$10),ROWS($A$1:A1)),NPV(-RANK.EQ($A$1:$A$10,$A$1:$A$10,1)%,$A$1:$A$10)*100+ROW($A$1:$A$10),0))

this answer引用shrivallabha.redij

对于“就位”数组函数,请参阅下面的UDF。选择"H1:H10“,并输入Array (CSE)、 =SortRandArr(H1:H10,1) (降序排序)或=SortRandArr(H1:H10,0) (升序排序)。

代码语言:javascript
运行
复制
Function SortRandArr(arrSizeRng As Range, Optional srtCriteria = 0)
'arrSizeRng is range of the same size of desired one dimensional array
'srtCriteria is criteria to sort; 0 or nothing for Ascending, Other digit for descending.
Application.Volatile
Dim Lb As Long, Ub As Long, i As Long, j As Long
Dim arr

ReDim arr(arrSizeRng.Cells.Count - 1)

For x = LBound(arr) To UBound(arr)
arr(x) = Round(Rnd(), 4)
Next

Lb = LBound(arr): Ub = UBound(arr)

If srtCriteria = 0 Then
    For i = Lb To Ub - 1
    For j = i + 1 To Ub
        If Val(arr(i)) > Val(arr(j)) Then
        strTemp = arr(i)
        arr(i) = arr(j)
        arr(j) = strTemp
        End If
    Next j
    Next i
Else
    For i = Lb To Ub - 1
    For j = i + 1 To Ub
        If Val(arr(i)) < Val(arr(j)) Then
        strTemp = arr(i)
        arr(i) = arr(j)
        arr(j) = strTemp
        End If
    Next j
    Next i
End If

SortRandArr = Application.Transpose(arr)

End Function

对于引用到this link的一维VBA排序

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62000203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档