是否可以将Excel中的列转置为行并具有重复的行?

时间:2019-06-30 18:40:32

标签: excel vba

我在当前的excel中有这样的列。例如2019-03的列标题表示2019年3月,该列的行包含对应于特定城市的房屋价格。由于月份在列中,因此我无法对此进行时间序列分析(在kepler.gl上)。是否可以将列转换为行,并为每个城市以相同的价格复制行?

我打算准备一个名为“时间轴”的列,其中以月为行,您可以看到特定时间段和特定城市的房屋价格。由于只有2行,因此我在这里手动完成。我的文件中有许多这样的列。有没有更好的方法可以做到这一点在excel中?我至少需要2015年的数据。所以这将是一项艰巨的任务。想知道是否有更好的方法来解决这个问题。请让我知道。

Actual Data

2019-03  2019-04  2019-05  2019-06   City
548400   563600   585100   595000    Leland
118100   118700   119300   125000    Barron

excel中期望的表

Timeline  Price    City
2019-03   548400   Leland
2019-04   563600   Leland
2019-05   585100   Leland
2019-06   595000   Leland
2019-03   118100   Barron
2019-04   118700   Barron
2019-05   119300   Barron
2019-06   125000   Barron

1 个答案:

答案 0 :(得分:0)

使用PowerQuery或公式代替VBA:

PowerQuery:

  • 在>数据>从表/范围中选择一个单元格
  • 选择城市列>变换>取消枢纽>其他列
  • 关闭PowerQuery并加载数据

对@RonRosenfeld的感谢,他描述得很清楚 here 包括一个用于Excel-2010的免费加载项的链接! em>

enter image description here

公式:

在同一页面上,我描述了公式的用法。您可以使用:

G2中的公式:

=INDEX($A$2:$D$3,MATCH(I2,$E$2:$E$3,0),MATCH(H2,$A$1:$D$1,0))

H2中的公式:

=INDEX($A$1:$D$1,,COUNTIF($I$2:I2,I2))

I2中的公式:

=INDEX(E:E,INT((ROW(A1)-1)/4)+2)

enter image description here