Excel,简单的逆向等式

我希望(A1:A:5)中的数据以相反的顺序显示在(B1:B5)中。 A5中的底部出现在B1等等。 请和谢谢

B1中input:

=INDEX(A:A,6-ROW()) 

并抄下来:

在这里输入图像说明

把这个公式放在B1中,然后复制/下拉:

 =INDEX(A:A,AGGREGATE(14,6,ROW($A$1:INDEX(A:A,MAX(IFERROR(MATCH(1E+99,A:A),0),IFERROR(MATCH("ZZZ",A:A),0)))),ROW(1:1))) 

它是dynamic的,不关心A中有多less个值,它会根据需要resize。

在这里输入图像说明

 Sub ReverseRange() For i = 1 To 5 Range("b" & i).Value = Range("a5").Offset(0 - (i - 1), 0).Value Next i End Sub 

使用VBA:

 Sub FlipColumns() Dim Rng As Range Dim WorkRng As Range Dim Arr As Variant Dim i As Integer, j As Integer, k As Integer On Error Resume Next xTitleId = "Tools4Excel" Set WorkRng = Application.Selection Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8) Arr = WorkRng.Formula For j = 1 To UBound(Arr, 2) k = UBound(Arr, 1) For i = 1 To UBound(Arr, 1) / 2 xTemp = Arr(i, j) Arr(i, j) = Arr(k, j) Arr(k, j) = xTemp k = k - 1 Next Next WorkRng.Formula = Arr End Sub 

当你执行这个macros时,它会询问你想要以相反顺序重写哪一个列的范围。


使用公式:

你可以使用OFFSET()COUNTA()ROW()来实现这一点。

公式示例:

 cell B1 =OFFSET($A$1;COUNTA(A:A)-ROW(A1);0) cell B2 =OFFSET($A$1;COUNTA(A:A)-ROW(A2);0) cell B3 =OFFSET($A$1;COUNTA(A:A)-ROW(A3);0) cell B4 =OFFSET($A$1;COUNTA(A:A)-ROW(A4);0) cell B5 =OFFSET($A$1;COUNTA(A:A)-ROW(A5);0) 

只要在单元格b2处放置=OFFSET($A$1;COUNTA(A:A)-ROW(A1);0)并向下拖动即可。

在这里输入图像说明

与VBA

 Range("B1:B5").Value = Application.Transpose(Split(StrReverse(Join(Application.Transpose(Range("A1:A5").Value), "|")), "|"))