【问题标题】:Access - transpose some column data into row records访问 - 将一些列数据转换为行记录
【发布时间】:2016-05-31 19:51:41
【问题描述】:

我想应用一个类似的函数: "Transposing" some columns with ID fields into rows while copying the other data

但在这些情况下:

表:

A | B | 1 | 3 | 5 | 2|

C | D | 8 | 5 | 4 | 7|

到这样的表中:

A | B | 1 |

A | B | 3 |

A | B | 5 |

A | B | 2 |

C | D | 8 |

C | D | 5 |

C | D | 4 |

C | D | 7 |

这可以通过修改引用的函数来实现吗?还是 Access 中的解决方案更简单?

【问题讨论】:

  • 为什么是A |乙| 2 | 缺少 ??
  • 这是一个错误。帖子现已编辑。谢谢

标签: excel vba ms-access


【解决方案1】:

使用 AF 列中的数据,选择任意单元格,例如 H3,然后输入:

=INDEX(A:A,ROUNDUP(ROWS($1:1)/4,0))

然后抄下来。在 I3 中输入:

=INDEX(B:B,ROUNDUP(ROWS($1:1)/4,0))

然后抄下来。在 J3 中输入:

=INDEX($C$1:$F$100,ROUNDUP(ROWS($1:1)/4,0),IF(MOD(ROWS($1:1),4)=0,4,MOD(ROWS($1:1),4)))

然后抄下来:

【讨论】:

  • 感谢您的解决方案,但它对于固定数量的列很有用。不幸的是,源表的列中填充了变量:第 1 行 5 列;第 2 行 15 列;第 3 行 8 列等
  • @Arnold 感谢您的反馈........对于可变列,我将使用 VBA 宏来构建第二个表。跨度>
  • 我对 VBA 脚本不太熟悉,但我会尝试 :)
  • @Arnold 非常棒!......如果您遇到任何问题,请使用您编写的代码更新您的帖子,我们将为您提供帮助。跨度>
【解决方案2】:

或者,考虑使用 Jet/ACE 引擎(Windows .dll 文件)在 Excel 或 Access 中运行的 SQL 联合查询:

SELECT Col1, Col2, Col3
FROM TableOrSheet$Name
UNION ALL
SELECT Col1, Col2, Col4
FROM TableOrSheet$Name
UNION ALL
SELECT Col1, Col2, Col5
FROM TableOrSheet$Name
UNION ALL
SELECT Col1, Col2, Col6
FROM TableOrSheet$Name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 2020-07-10
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多