Excel二維表和一維表相互轉化

在實際工作中,我們經常需要對數據的結構進行轉換。比如,為了更直觀、方便查看數據,需要將下圖左邊一維錶轉換成如右圖的二維表:

Excel二維表和一維表相互轉化

又或者為了更好的統計分析數據,需要將左邊的二維表數據轉換成右邊的一維表格式:

Excel二維表和一維表相互轉化

一維表和二維表簡介

所謂一維表是指由一個單一的行和多個列組成的數據表,一維表的行通常被稱為“記錄”或“行數據”,每一條記錄都包含了與之相關的多個欄位,每個欄位則對應於一列數據,一維表中的數據可以被快速的查找、排序和過濾。比如如下表格。

Excel二維表和一維表相互轉化

這個表格由三個欄位(Field)組成,分別是"Name"、"Date"和"Sales",表格中的每一行數據稱為一條記錄(Record),這就是一個典型的一維表。

二維表也被稱為關係型表格,它由若干行和若干列組成,每一列表示一個特定的屬性或數據類型,每一行則表示一條記錄或數據項。每個單元格則表示一組對應行和列的數據值。通常,二維表是在SQL(結構化查詢語言)中進行操作和查詢的主要數據結構。比如如下表格。

Excel二維表和一維表相互轉化

這個表格的第一行表示日期,第一列表示人名,表格中的每一個數據由行標籤和列標籤共同賦予其屬性,比如單元格B2的數據“289”代表Aileen在2023年4月1日的銷售額。這是一個典型的二維表。

下面就來詳細說說,怎麼用函數公式實現這兩種數據結構的相互轉換。

1、一維錶轉化成二維表

❶ 提取年級變成標題行

在 D2 輸入公式:

=TRANSPOSE(UNIQUE(A2:A34))

首先用 UNIQUE 函數提取 A 列不重複的年級變成一列,再用 TRANSPOSE 函數將得到的一列數據轉置成一行。

效果如下圖所示:

Excel二維表和一維表相互轉化

❷ 提取對應的名單

在 D2 單元格輸入公式:

=FILTER($B2:$B34,$A2:$A34=D1)

用 FILTER 函數,以年級作為篩選條件,篩選出對應的名單。再將公式向右拖動填充,得到如下圖右表的效果:

Excel二維表和一維表相互轉化

2、二維錶轉化成一維表

❶ 首先用 IF 函數判斷名單區域「A2:D15」是否為空;如果為空則返回錯誤值 (#NAME?),否則返回第一行「A1:D1」對應的年級。

在 F1 單元格輸入公式:

=IF(A2:D15="",x,A1:D1)

結果返回一個多行 4 列的數組,效果如下圖「F1:I14」區域所示:

Excel二維表和一維表相互轉化

❷ 然後利用 TOCOL 函數將這組多行 4 列的數組轉化成一列。

=TOCOL(
IF(A2:D15 = "", x, A1:D1),
2,
1
)

效果如下圖 F 列所示:

Excel二維表和一維表相互轉化

TOCOL 是 Office 365 版本新增的函數,非常實用和強大,它可以將多數組轉化為一列數據。

該函數的語法為:

=TOCOL(array, [ignore], [scan_by_column])

第一參數是需要轉化成列的數組,公式中 TOCOL 函數的第一個參數 IF (A2:D15 = "", x, A1:D1) 是需要轉化的數組;

第二參數可以選擇是否忽略空白或錯誤,公式中的第二個參數是 2,表示忽略區域中的錯誤值;

第三參數表示掃描方式,可以設定是按行方向掃描數組還是按列方向掃描數組,默認情況下按行掃描,如果要按列掃描,則值為 TRUE 或 1。

❸ 最後再用 TOCOL 函數將姓名區域「A2:D15」,也轉化成一列。

在 G1 單元格輸入公式:

=TOCOL(A2:D15,1,1)

公式中的第二參數是 1,表示忽略區域「A2:D15」中的空白,轉化成一列。效果如下圖 G 列所示:

Excel二維表和一維表相互轉化

3、最後小結

❶ 一維錶轉化成二維表:首先用 UNIQUE 函數提取一列的不重複值,作為標題行;然後用 FILTER 函數,以標題作為篩選條件,提取對應的內容。

❷ 二維表格轉化成一維表:當 TOCOL 函數第二參數為 2 時,忽略錯誤值,將標題行轉化成一列,再利用 TOCOL 函數第二參數為 1 時,忽略空白,將對應的區域轉化成一列。

好了,今天就說到這裡結束啦~

本文來自微信公眾號:秋葉 Excel (ID:excel100),作者:趙驕陽

以上就是Excel一維表和二維表互轉的方法,希望大家喜歡,請繼續關注。

原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/163682.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
簡單一點的頭像簡單一點
上一篇 2024-11-22 03:46
下一篇 2024-11-22 03:46

相關推薦

  • 為什麼不能用Microsoft Excel進行Python編程?

    Microsoft Excel是一個廣泛使用的數據分析工具,但是它不能直接用於Python編程。這是因為Microsoft Excel並不是一個編程工具,它的主要功能是進行數據處理…

    編程 2025-04-29
  • 基尼係數Excel計算模板

    這篇文章將介紹基尼係數Excel計算模板,為大家詳細闡述如何使用Excel進行基尼係數的計算。 一、模板下載及導入 首先需要下載基尼係數的Excel計算模板,可以在Excel中通過…

    編程 2025-04-28
  • 使用ReoGrid操作Excel的WPf應用

    本文將詳細闡述如何使用ReoGrid來操作Excel,重點介紹在WPF應用程序中使用ReoGrid的方法及注意點。 一、ReoGrid簡介 ReoGrid是一個基於.NET的開源組…

    編程 2025-04-27
  • Excel日期函數

    Excel是當前企業和個人使用非常廣泛的辦公軟體之一。其中的日期函數可以用於處理各種涉及日期和時間的任務。本文將從不同的方面介紹Excel日期函數,幫助讀者深入了解和熟練使用日期函…

    編程 2025-04-25
  • Java Excel導入導出詳解

    一、Excel文件簡介 Excel是微軟公司開發的一種電子表格程序,多用於商業、財務、科學等各種數據處理。 Excel文件通常以.xls或.xlsx格式存儲,其中.xls格式為Ex…

    編程 2025-04-25
  • Word轉Excel詳解

    一、使用Office插件 1、可以使用Office自帶的「將表格複製為Excel工作簿」插件。只需在Word中選中表格,點擊「插入」選項卡中的「對象」按鈕,在彈出的窗口中選擇「將表…

    編程 2025-04-25
  • Java Excel合併單元格

    一、介紹 Excel是微軟公司開發的一款非常流行的電子表格軟體,而Java是一門強大的編程語言。在項目中,我們可能會需要對Excel進行操作,比如合併單元格。Java提供了很多對E…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24
  • Excel 兩格內容合併一個探究

    一、合併單元格的操作方法 在Excel的操作中,我們需要對單元格進行操作。而合併單元格是其中一個常用的操作,它可以讓我們對一些數據進行整合和顯示。那麼,Excel 合併單元格的操作…

    編程 2025-04-23
  • 詳解如何讀取excel文件

    一、安裝支持庫 在Python中,我們可以使用openpyxl庫來讀取和操作Excel文件。打開終端或命令行窗口並執行以下命令安裝openpyxl庫: pip install op…

    編程 2025-04-23

發表回復

登錄後才能評論