Excel Power Query:工序产出数据的整合与提取

前文我们依次介绍了以下数据的整合与提取:

1. 工序工时

2. 料品工时

3. 人员投入

在“工序工时”查询的基础上,通过建立合并查询,可以得到“工序产出”的数据。现在介绍“工序产出”数据的整合提取。

1. 通过引用创建新查询

我们之前已经对Power Query数据源的工作表进行了筛选,创建了“Worksheet筛选”查询。现在我们就在此查询的基础上,创建“工序产出”查询。

图1-通过引用现有查询创建“工序产出”查询

2. 处理表列数据

在“Data”列的“Table”数据表中,前3行不是我们需要的数据,故将其删除。通过添加自定义列得到我们需要的表列。

操作步骤:点击【添加列】选项卡,在【常规】功能组选择【自定义列】,在弹出的对话框中输入以下自定义列公式(注意大小写必须正确,因为这里的公式使用的是M公式语言,M是区分大小写的语言)

=Table.RemoveRows([Data],0,3)

图2-添加自定义列

因为“Table”数据表在删除前3行后,还需要进一步的处理,例如:将第一行用作标题,所以可以直接在图2的自定义列公式中同步处理。在图2的自定义列公式外面嵌套提升标题的M语言:

=Table.PromoteHeaders(Table.RemoveRows([Data],0,3))

接着,我们还需要删除“Table”数据表中不需要的列,包括:投入工时_H、产出工时、生产率,也可以直接在图2的自定义列公式中同步处理。继续在上面的自定义列公式外面嵌套删除列的M语言:

=Table.RemoveColumns(Table.PromoteHeaders(Table.RemoveRows([Data],0,3)),{"投入工时_H","产出工时","生产率"})

最后,还需要对“Table”数据表的各个工序列进行逆透视,故继续在上面的自定义公式外面嵌套逆透视列的M语言:

=Table.UnpivotOtherColumns(Table.RemoveColumns(Table.PromoteHeaders(Table.RemoveRows([Data],0,3)),{"投入工时_H","产出工时","生产率"}),{"成品类型","料号","品名","日期","工号","姓名"},"工序号","良品数")

图3-最终的自定义列公式
图4-添加了自定义列

3. 删除不需要的列(“Data”列).

图5-删除“Data”列

4. 展开“自定义列”

点击“自定义”列标题右边的图标,不要勾选“使用原始列名作为前缀”,点击确定。

图6-展开“自定义列”
图7-展开“自定义列”的效果

5. 更改数据类型

依次点击每列标题左边的数据类型图标,选择正确的数据类型。

图8-更改数据类型

6. 合并查询,引进工序工时

由于“工序产出”查询中只有产出数量,没有产出工时的数据,所以需要通过合并查询,引进各个工序的标准工时数据,从而为后面计算产出工时做准备。

操作步骤:点击【开始】选项卡,在【组合】功能组选择【合并查询】,在弹出的对话框中选择“工序工时”查询,然后分别在两个查询中,按住“Shift”键,依次选中“工作簿”和“工序号”两列(注意选择顺序在两个查询中必须一致),点击确定。

图9-合并查询

7. 展开“工序工时”

只需选择“工序名称”和“标准工时_S”两个字段。如图10。

图10-展开“工序工时”

8. 对列进行重新排序

可以用鼠标左键拖动列标题到目标位置,对列进行重新排序。最后的效果如下图所示。

图11-重排序列

9. 添加列,计算产出工时

按住“Shift”键,依次点击“标准工时_S”和“良品数”两列将其选中,点击【添加列】选项卡,在【从数字】功能组的【标准】项中,选择【乘】,这样就添加了“标准工时_S”*“良品数”的结果列。

图12-添加乘法列
图13-添加乘法列

将图13编辑栏的“乘法”改为“产出工时”,并将计算公式除以3600,使产出工时以小时为单位,如下图所示。

图14-修改编辑栏

10. 导出查询

点击【开始】选项卡,点击【关闭】功能组【关闭并上载】的小三角,选择【关闭并上载至…】。

图15-关闭并上载至

在弹出的对话框中,选择【仅创建连接】,确定。

图16-仅创建连接

返回Excel界面,点击【数据】选项卡,选择【查询和连接】功能组中的【查询与连接】,在右边的“查询&连接”窗格中,看到多了个“工序产出”查询,并且显示该查询为“仅限连接”。

图17-“查询&连接”窗格

至此,“工序产出”查询就建好啦!我们在Excel数据建模的路上又前进了一步。

后续的数据建模,敬请期待!

你可能感兴趣的:(Excel Power Query:工序产出数据的整合与提取)