在ID字段上旋转Excel表格使列作为每个ID的行重复

在ID字段上旋转Excel表格使列作为每个ID的行重复,excel,excel-formula,transformation,vba,Excel,Excel Formula,Transformation,Vba,我正在尝试执行中描述的操作,但我不想在SQL中执行,而是想在Excel中执行。我在一个水平表中有一个日期,我想沿着ID列旋转,并将列名作为属性名行,其IDxAttribName引用显示在最终产品的属性值字段中。下面的图片展示了我现在拥有的和我想要的。我只需要一个点在正确的方向与公式或例子vba。感谢您的帮助 之前: 之后: 说原稿是colsA、B和C 在F2中输入: =INDEX(A:A,1+ROUNDUP(ROWS($1:1)/2,0)) =IF(ISODD(ROWS($1:1)),"in

我正在尝试执行中描述的操作,但我不想在SQL中执行,而是想在Excel中执行。我在一个水平表中有一个日期,我想沿着ID列旋转,并将列名作为属性名行,其IDxAttribName引用显示在最终产品的属性值字段中。下面的图片展示了我现在拥有的和我想要的。我只需要一个点在正确的方向与公式或例子vba。感谢您的帮助

之前:

之后:
说原稿是colsABC

在F2中输入:

=INDEX(A:A,1+ROUNDUP(ROWS($1:1)/2,0))
=IF(ISODD(ROWS($1:1)),"inch","milli")
=OFFSET($C$2,ROUNDUP(ROWS($1:1)/2,0)-1,MOD(ROWS($1:1)-1,2))
然后抄下来。在G2中输入:

=INDEX(A:A,1+ROUNDUP(ROWS($1:1)/2,0))
=IF(ISODD(ROWS($1:1)),"inch","milli")
=OFFSET($C$2,ROUNDUP(ROWS($1:1)/2,0)-1,MOD(ROWS($1:1)-1,2))
然后抄下来。在H2中输入:

=INDEX(A:A,1+ROUNDUP(ROWS($1:1)/2,0))
=IF(ISODD(ROWS($1:1)),"inch","milli")
=OFFSET($C$2,ROUNDUP(ROWS($1:1)/2,0)-1,MOD(ROWS($1:1)-1,2))
并抄写:

发生了什么事:

F只复制列A,但将条目加倍(Snafu加倍)。
G是触发器
H将列B&C映射到单个列中

使用相对简单的公式,您可以:

  • 将表映射到一行或一列
  • 将单个行或列映射到表中
  • 重组表格

  • 这是针对Excel 2016的,因此如果您有不同的版本,您可能需要稍微调整(菜单项似乎有所更改,但此功能可能在最新版本中)。
    1.选择要转换的数据。
    2.转到数据选项卡,从表中单击
    3.此时将打开查询编辑器。
    4.选择“极性”、“直径英寸”和“直径毫米”列。
    5.单击变换选项卡,单击取消分割列 6.返回主页
    选项卡,单击关闭并加载

    它将结果放入一个新选项卡中