如何在 Excel 中将多个行和列转换为列和行

应用对象
Excel 2024 Excel 2021 Excel 2019 Excel 2016

摘要

使用本文底部列出的 Microsoft Excel 产品时,可以使用工作表公式将跨多个行和多列的数据隐藏为数据库格式 (列式) 。 

详细信息

以下示例将列中每四行数据转换为单行中的四列数据, (类似于数据库字段和记录布局) 。 这种情况与打开包含邮件标签格式数据的工作表或文本文件时遇到的情况类似。

示例

  1. 在新工作表中,键入以下数据:

    A1:史密斯、约翰
    A2:111 松树街
    A3:加利福尼亚州圣地亚哥
    A4: (555) 128-549
    A5:琼斯、苏
    A6:222 橡树林。
    A7:纽约,纽约
    A8: (555) 238-1845
    A9:安德森,汤姆
    A10:333樱桃大道。
    A11:伊利诺伊州芝加哥
    A12: (555) 581-4914

  2. 在单元格 C1 中键入以下公式:

    =OFFSET($A$1,(ROW()-1)*4+INT((COLUMN()-3)),MOD(COLUMN()-3,1))

  3. 将此公式填充到 F 列,然后向下填充到第 3 行。

  4. 根据需要调整列大小。 请注意,数据现在显示在单元格 C1 到 F3 中,如下所示:

    C D E F
    1 史密斯、约翰 111 松树街 加利福尼亚州圣地亚哥 (555) 128-549
    2 琼斯、苏 222 橡树林 纽约,纽约 (555) 238-1845
    3 安德森,汤姆 333 樱桃大道。 伊利诺伊州芝加哥 (555) 581-4914

公式可以解释为

OFFSET($A$1,(ROW()-f_row)*rows_in_set+INT((COLUMN()-f_col)/col_in_set), MOD(COLUMN()-f_col,col_in_set))

其中:

  • f_row = 此偏移公式的行号
  • f_col = 此偏移公式的列号
  • rows_in_set = 创建一条数据记录的行数
  • col_in_set = 数据列数