首页 > 解决方案 > 使用数据透视表,以便我仍然可以获得文本值,以及将数据拆分为多个工作表的方法

问题描述

我在 Excel 中有需要透视的数据,但它应该在透视中保留文本值。这些值应捕获 Excel 数据集中的文本数据。不确定这是否可以使用数据透视表来实现,或者我是否必须使用任何其他方法

我尝试使用数据透视并使用切片器代替部门,但我试图将值置于值之下的列不捕获其中包含文本的数据。

源数据:

样本输入

我需要根据部门将此表分成 3 个表(在不同的工作表中)。

第一张工作表应用于财务,预期输出为:

金融

第二张工作表应该是 HR 和预期的输出是:

人力资源

第三张工作表应该用于维护,预期输出是:

维护

有人可以建议什么是最好的方法吗?

标签: excelvbapivot-table

解决方案


在 Office 365 中,我会利用 Power Query 中的数据透视功能,而不是尝试编写 VBA 代码。如果您不熟悉电源查询,它会创建一组可重用的转换,很像宏。但它非常适合操作数据集,并且比宏脚本更有效地完成此类工作。

如果您有多行具有相同的 Id、Type 和部门,这将无法正常工作。它不会进行任何聚合,只会在这些行上报告错误。

假设许多用户对 Power 查询不是非常熟悉,我已经制作了一个分步指南。如果你已经习惯了这些东西,没有任何冒犯的意思。

1) 通过选择范围,然后单击主页功能区中样式组上的“格式为表格”,将原始数据所在的区域转换为数据表。

[1]

2) 通过选中表中的一个单元格然后转到数据功能区,在“获取和转换数据”组中单击“从表/范围”来打开 Power Query 中的表。

[2]

3)过滤部门。我将使用“维护”作为示例。就像在常规工作表中的过滤器一样,单击黑色三角形过滤器。

4)一旦我们完成了过滤,我们就不需要部门列——它不会出现在我们的最终结果中。因此,右键单击列标题并选择“删除”。

在此处输入图像描述

5)现在有趣的东西。首先通过单击列标题选择“类型”列。然后,导航到变换功能区。在“任何列”按钮组中找到并单击“透视列”按钮。在弹出窗口中,您将看到短语“使用“类型”列中的名称来创建新列。” 如果指定了其他列,请取消,确保突出显示类型,然后再次单击数据透视列。将值列设置为速率,并在高级选项下选择“不聚合”

在此处输入图像描述

你应该看到转变!

在此处输入图像描述

返回主页选项卡,单击“关闭并加载”,结果将添加到新工作表中。

在此处输入图像描述

因此,您可以为每个部门重复此过程并获取您需要的表格。

当您在原始数据中输入新行时,当您单击数据选项卡上的全部刷新、打开电子表格时,或者您可以从右键单击上下文菜单中选择刷新时,三个相关表将全部更新为新信息每张桌子。


推荐阅读