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/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

发表回复

登录后才能评论