Excel:数据透视表中的非嵌套数据列

Excel:数据透视表中的非嵌套数据列

我创建了一个如下所示的数据透视表:

初始数据透视表

从这样的源表:

源数据

我正在尝试向表中添加另一个值“取消”(已包含在“私人课程”总数中)。我创建了一个集合,将“未出席”和“延迟取消”列加在一起以获得该值。当我将其添加到数据透视表中时,会发生以下情况:

向表中添加一个值

我想要实现的主要目标是:

期望结果

(或者也许有人知道一种更优雅的方式来呈现这些数据)。但我似乎无法将“取消”值分离到其自己的列中,似乎任何新添加的字段都必须嵌套,无论您将其放在哪个数据透视表区域。

我需要能够使用“显示报告过滤器页面”功能在工作表之间生成许多数据透视表,否则我只能并排创建第二个数据透视表。

另一个目标是将取消次数计算为小时数总和,而不是取消次数。

有办法实现这个吗?我尝试了多次 Google 搜索,但不太清楚如何表述这个问题,因此无法找到解决方案。

答案1

編輯:通过选择单元格手动输入公式添加(见下文)。

向您的表添加一个派生列。我们称之为Service Category Derived。将此公式输入到此新列的第一个数据单元格中:

=IF([@[No Show]]<>0,Billing[[#Headers],[No Show]],IF([@[Late Canceled]]<>0,Billing[[#Headers],[Late Canceled]],[@[service category]]))

根据需要更改列名和表名。

如果您希望No ShowLate Cancel成为单一类别,则使用:

=IF(OR([@[No Show]]<>0,[@[Late Canceled]]<>0,Billing[[#Headers],[Late Canceled]]),"Special",[@[service category]])

更改SpecialNo Show或者Late Cancel类别。

执行Data选项卡、Queries & Connections部分、Refresh All。然后编辑数据透视表选定的字段,取消选择该Service Category字段并选择该Service Category Derived字段。将Service Category Derived字段从其出现的位置拖回到Columns数据透视表的窗格中。

随着这次调整,工作时间也将固定。

编辑:如何使用单元格选择手动输入公式。

选择新列的第一个数据单元格。键入=if(选择该列同一行(第一个数据行)中的单元格No Show。键入<>0,然后选择No Show列标题。键入选择该列,if(的第一个数据项。然后键入然后选择列标题。然后键入并选择原始列的第一个数据单元格并以Late Cancel<>0,Late Cancel,service category)) 除标题单元格外,所有选定的单元格均来自同一行。Excel 可能已经提供了一个右括号,因此请确保总共有两个右括号(每个右括号一个IF)。

单一组合类别公式类似。同样,在新列的第一个数据单元格中键入以下内容,单击描述的单元格: =if(or(选择“未显示”列的第一个数据单元格,键入<>0,选择“延迟取消”列的第一个数据单元格,键入键入<>0),"“未显示/延迟取消”类别的名称(在双引号之间,如上文和下文中突出显示的文本所示),键入",选择原始“服务类别”的第一个数据单元格,键入)
请确保键入所有突出显示的字符,包括" , )

“未出席”和“延迟取消”列似乎用作布尔值,而不是计数或金额,因此将它们设为布尔值将使公式更易于阅读,因为无需与零进行比较,<>0可以删除该文本=IF([@[No Show]],Billing[[#Headers],[No Show]],...(内容为:如果“未出席”列中的此行数据为真,则使用“未出席”列的表头)。此外,由于布尔值的默认值为 false,因此空单元格将被视为 false(例如不是未出席)。因此,只TRUE需要在“未出席”的情况下出现,并将所有假单元格留空,使数据更容易在视觉上消化。

相关内容