首页 > 解决方案 > 使用 Excel Power Query 将单列中的数据重新排列为多列

问题描述

我的数据是从 .yaml 文件导入的两个参数的函数。第一列包含一个参数,第二列包含按第二个参数分组的数据,第二个参数包含在每个组的开头。我想将此数据转换为 Excel 中的二维表,以绘制多条参数化线。

.yaml 文件如下所示。它总是固定的长度:

A:
  a: 1
  b: 2
  c: 3
B:
  a: 4
  b: 5
  c: 6

导入的数据在 Power Query 中如下所示(在 Excel Power Query 中作为非分隔文本导入并进行少量操作后):

Column1  |  Column2
-------------------
  null   |    A
   a     |    1
   b     |    2
   c     |    3
  null   |    B
   a     |    4
   b     |    5
   c     |    6

我想把它改成这样:

Column1 | Column2 | Column3
---------------------------
 null   |    A    |   B
  a     |    1    |   4
  b     |    2    |   5
  c     |    3    |   6

我不需要一个完整的解决方案,只需要一个是或不是它是否可以完成,以及解决方案的关键概念是否可以完成。我将填写任何解决方案的详细信息,因为我有时间处理它们(因为这是 Stack Exchange 想要看到的详细解决方案)。

标签: excelyamlpowerquery

解决方案


看起来这种方法应该可行,但我不知道如何进行第三步。

Column1  |  Column2
-------------------
  null   |    A
   a     |    2
   b     |    1
   c     |    6
  null   |    B
   a     |    5
   b     |    4
   c     |    3

根据 Column1 添加条件 Column3

Column1  |  Column2  |  Column3
-------------------------------
  null   |    A      |    0
   a     |    2      |   null
   b     |    1      |   null
   c     |    6      |   null
  null   |    B      |    0
   a     |    5      |   null
   b     |    4      |   null
   c     |    3      |   null

这是我不知道该怎么做的步骤!在这个简单的例子中,只有一个变化。

Column1  |  Column2  |  Column3
-------------------------------
  null   |    A      |    0
   a     |    2      |   null
   b     |    1      |   null
   c     |    6      |   null
  null   |    B      |    1
   a     |    5      |   null
   b     |    4      |   null
   c     |    3      |   null

向下填充 Column3

Column1  |  Column2  |  Column3
-------------------------------
  null   |    A      |    0
   a     |    2      |    0
   b     |    1      |    0
   c     |    6      |    0
  null   |    B      |    1
   a     |    5      |    1
   b     |    4      |    1
   c     |    3      |    1

Column1  |    0      |    1
-------------------------------
  null   |    A      |   null
  null   |   null    |    B
   a     |    2      |   null
   a     |   null    |    5
   b     |    1      |   null
   b     |   null    |    4
   c     |    6      |   null
   c     |   null    |    3

在(列)1 上向上填充,在(列)0 上过滤空值

Column1  |    0      |    1
-------------------------------
  null   |    A      |    B
   a     |    2      |    5
   b     |    1      |    4
   c     |    6      |    3

推荐阅读