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

应用对象
Excel 2024 Excel 2021

摘要

使用本文结尾列出的 Microsoft Excel 产品时,可以使用工作表公式将跨越多行和列的数据转换为 (列) 的数据库格式。

详细信息

下面的示例将一列中每四行的数据转换为一行中的四列数据, (类似于数据库字段和记录布局) 。 此示例类似于打开包含邮件标签格式数据的工作表或文本文件时所遇到的场景。

示例

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

    A1:约翰·史密斯
    解答 2:松树街 111 号
    解答 3:加利福尼亚州圣地亚哥
    解答 4: (555) 128-549
    A5:琼斯、苏
    A6: 222 Oak Ln.
    A7:纽约州纽约
    解答 8: (555) 238-1845
    A9:安德森、汤姆
    A10:樱桃大道 333 号
    A11:伊利诺伊州芝加哥
    解答 12: (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 Smith, John 松树街 111 号 加利福尼亚州圣地亚哥 (555) 128-549
    2 Jones, Sue 222 Oak Ln. New York, NY (555) 238-1845
    3 Anderson, Tom 樱桃大道 333 号 Chicago, IL (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 = 数据的列数