2017-02-22 72 views
0

我想要在(A1:A:5)中的數據以相反的順序顯示在(B1:B5)中。 A5中的底部出現在B1等等。請和感謝Excel,簡單的逆方程

+1

看看這裏,看看這是否有幫助。它首先展示瞭如何通過GUI實現,然後如何通過VBA實現它(稍後向下滾動):http://www.makeuseof.com/tag/excel-quick-tips-flip-cells-switch-rows -列/ – Aaron

回答

1

B1輸入:

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

抄下:

enter image description here

0

使用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 

當你執行這個宏,它會問你要在相反的順序來重寫其列範圍。


使用公式:

您可以使用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) 

只要把=OFFSET($A$1;COUNTA(A:A)-ROW(A1);0)在單元格B2和拖累。

enter image description here

0
Sub ReverseRange() 

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

End Sub 
1

將這個一個公式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))) 

它是動態的,並不關心有多少值是A,根據需要,將調整。

enter image description here

0

用VBA

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