有時,您可能需要在 Excel 上下顛倒、翻轉數據,即在垂直數據集中顛倒數據的順序,在水平數據集中從左到右顛倒數據的順序。
現在,如果您認為 Excel 中必須有一個內置功能來執行此操作,恐怕您會感到失望。
雖然有多種方法可以在 Excel 中翻轉數據,但沒有內置功能。但是您可以使用簡單的排序技巧、公式或 VBA 輕鬆完成此操作。
在本教程中,我將向您展示如何在 Excel 上下顛倒、翻轉行、列和表中的數據。
所以讓我們開始吧!
Contents
使用 SORT 和輔助列翻轉數據
在 Excel 中反轉數據順序的最簡單方法之一是使用幫助列,然後使用該幫助列對數據進行排序。
垂直翻轉數據(顛倒順序)
假設您在如下所示的列中有一個姓名數據集,並且您想要翻轉此數據:
以下是垂直翻轉數據的步驟:
- 在相鄰列中,輸入“Helper”作為該列的標題
- 在幫助列中,輸入一系列數字(1、2、3 等)。您可以使用此處顯示的方法快速完成此操作
- 選擇整個數據集,包括輔助列
- 單擊數據選項卡
- 點擊排序圖標
- 在“排序”對話框中,選擇“排序依據”下拉菜單中的“幫助程序”
- 在訂單下拉菜單中,選擇“從大到小”
- 點擊確定
上述步驟將根據幫助列值對數據進行排序,這也會導致數據中姓名的順序顛倒。
完成後,請隨意刪除幫助列。
在此示例中,我向您展示瞭如何在只有一列時翻轉數據,但如果您有整個表,您也可以使用相同的技術。只需確保選擇整個表,然後使用輔助列按降序對數據進行排序。
水平翻轉數據
您還可以按照相同的方法在 Excel 中水平翻轉數據。
Excel 具有使用“排序”對話框(“從左到右排序”功能)對數據進行水平排序的選項。
假設您有一個如下所示的表格,並且您想要水平翻轉此數據。
以下是執行此操作的步驟:
- 在下面的行中,輸入“Helper”作為該行的標題
- 在助手行中,輸入一系列數字(1、2、3 等)。
- 選擇整個數據集,包括輔助行
- 單擊數據選項卡
- 點擊排序圖標
- 在排序對話框中,單擊選項按鈕。
- 在打開的對話框中,單擊“從左到右排序”
- 點擊確定
- 在排序方式下拉列表中,選擇第 3 行(或任何有您的幫助列的行)
- 在訂單下拉菜單中,選擇“從大到小”
- 點擊確定
上述步驟將水平翻轉整個表格。
完成後,您可以刪除輔助行。
使用Excel上下顛倒公式來翻轉數據
Microsoft 365 提供了一些新公式,可以非常輕鬆地在 Excel 中反轉列或表的順序。
在本節中,我將向您展示如何使用 SORTBY 公式(如果您使用 Microsoft 365)或 INDEX 公式(如果您不使用 Microsoft 365)來執行此操作
使用 SORTBY 函數(在 Microsoft 365 中可用)
假設您有一個如下所示的表格,並且您想要翻轉該表格中的數據:
為此,首先,複製標題並將它們放在您想要翻轉表的位置
現在,在最左側標題的單元格下方使用以下公式:
=SORTBY($A$2:$B$12,ROW(A2:A12),-1)
上述公式對數據進行排序,並以 ROW 函數的結果為基礎進行排序。
在這種情況下,ROW 函數將返回一個數字數組,該數組表示指定範圍之間的行號(在此示例中為一系列數字,例如 2、3、4 等)。
由於這個公式的第三個參數是-1,它會強制公式按降序對數據進行排序。
具有最高行號的記錄將位於頂部,具有最低規則號的記錄將位於底部,基本上顛倒了數據的順序。
完成後,您可以將公式轉換為值以獲取靜態表。
使用索引函數
如果您無法使用 SORTBY 功能,請不要擔心 – 您可以使用令人驚嘆的 INDEX 功能。
假設您有一個如下所示的姓名數據集,並且您想要翻轉此數據。
以下是執行此操作的公式:
=INDEX($A$2:$A$12,ROWS(A2:$A$12))
這個公式是如何工作的?
上面的公式使用 INDEX 函數,該函數將根據第二個參數中指定的數字從單元格中返回值。
真正的魔力發生在我使用 ROWS 函數的第二個參數中。
由於我在 ROWS 函數中鎖定了引用的第二部分,因此在第一個單元格中,它將返回 A2 和 A12 之間的行數,即 11。
但是當它沿著行向下時,第一個引用將更改為 A3,然後是 A4,依此類推,而第二個引用將保持原樣,因為我已將其鎖定並使其成為絕對值。
隨著我們向下行,ROWS 函數的結果將減少 1,從 11 減少到 10 到 9,依此類推。
由於 INDEX 函數根據第二個參數中的數字返回值,這最終會以相反的順序為我們提供數據。
即使數據集中有多個列,您也可以使用相同的公式。但是,您必須指定第二個參數,該參數將指定需要從中獲取數據的列號。
假設您有一個如下所示的數據集,並且您想要顛倒整個表格的順序:
以下是將為您執行此操作的公式:
=INDEX($A$2:$B$12,ROWS(A2:$A$12),COLUMNS($A$2:A2))
這是一個類似的公式,其中我還添加了第三個參數,該參數指定應從中獲取值的列號。
為了使這個公式動態化,我使用了 COLUMNS 函數,當您將其複製到右側時,該函數會不斷將列值從 1 更改為 2 到 3。
完成後,您可以將公式轉換為值,以確保獲得靜態結果。
注意:當您使用公式反轉 Excel 中數據集的順序時,它不會保留原始格式。如果您還需要排序數據的原始格式,您可以手動應用它或將格式從原始數據集中復制並粘貼到新的排序數據集中
使用 VBA 翻轉數據
如果在 Excel 中翻轉數據是您必須經常做的事情,您也可以嘗試 VBA 方法。
使用 VBA 宏代碼,您可以在 VBA 編輯器的工作簿中復制和粘貼一次,然後在同一個工作簿中一遍又一遍地重複使用它。
您還可以將代碼保存在個人宏工作簿中或作為 Excel 加載項,並能夠在系統上的任何工作簿中使用它。
下面是在工作表中垂直翻轉所選數據的 VBA 代碼。
Sub FlipVerically()
Dim TopRow As Variant
Dim LastRow As Variant
Dim StartNum As Integer
Dim EndNum As Integer
Application.ScreenUpdating = False
StartNum = 1
EndNum = Selection.Rows.Count
Do While StartNum < EndNum
TopRow = Selection.Rows(StartNum)
LastRow = Selection.Rows(EndNum)
Selection.Rows(EndNum) = TopRow
Selection.Rows(StartNum) = LastRow
StartNum = StartNum + 1
EndNum = EndNum – 1
Loop
Application.ScreenUpdating = True
End Sub
要使用此代碼,您首先需要選擇要反轉的數據集(不包括標題),然後運行此代碼。
這段代碼是如何工作的?
上面的代碼首先計算數據集中的總行數,並將其分配給變量 EndNum。
然後它使用 Do While 循環進行數據排序。
它對這些數據進行排序的方式是獲取第一行和最後一行並交換它們。然後它移動到倒數第二行的第二行,然後交換它們。然後它移動到倒數第三行的第三行,依此類推。
當所有排序完成時循環結束。
它還使用 Application.ScreenUpdating 屬性並在運行代碼時將其設置為 FALSE,然後在代碼完成運行時將其轉回 TRUE。
這可以確保您不會在屏幕上看到實時發生的變化,同時也加快了進程。
如何使用代碼?
按照以下步驟在 VB 編輯器中復制並粘貼此代碼:
- 打開要在其中添加 VBA 代碼的 Excel 文件
- 按住 ALT 鍵並按 F-11 鍵(您也可以轉到開發人員選項卡並單擊 Visual Basic 圖標)
- 在打開的 Visual Basic 編輯器中,VBA 編輯器的左側將有一個項目資源管理器。如果您沒有看到它,請單擊“查看”選項卡,然後單擊“項目資源管理器”
- 右鍵單擊要在其中添加代碼的工作簿的任何對象
- 轉到插入選項,然後單擊模塊。這將向工作簿添加一個新模塊
- 雙擊 Project Explorer 中的模塊圖標。這將打開該模塊的代碼窗口
- 將上面的 VBA 代碼複製粘貼到代碼窗口中
要運行 VBA 宏代碼,首先選擇要翻轉的數據集(不包括標題)。
選擇數據後,轉到 VB 編輯器並單擊工具欄中的綠色播放按鈕,或選擇代碼中的任意行然後按 F5 鍵
因此,這些是您可以用來翻轉 Excel 中的數據的一些方法(即,顛倒數據集的順序)。
我在本教程中介紹的所有方法(公式、SORT 功能和 VBA)都可用於垂直和水平翻轉數據(您必須相應地調整公式和 VBA 代碼以進行水平數據翻轉)。
我希望您發現本教程很有用。
常見問題與解答: 在 Excel 上下顛倒、翻轉數據
Excel 並未提供專用的快捷鍵來對數據進行上下顛倒或翻轉。但是,可以通過快捷鍵全選數據(Ctrl+A),然後使用快捷鍵複製(Ctrl+C)和轉置貼上(Alt+E,然後選擇轉置)。