谢谢你们!我想我可能已经解释了我的问题有点模糊。我附加了两个打印屏幕,以说明我的问题。
打印屏幕:http://imageshack.us/photo/my-images/804/illustrasjon.jpg
由于生产线上的特定原因,我的数据透视表显示停止[分钟]。本周的“总计”列(生产天数变化)是我希望关注的,以便将改进工作分配到正确的地方。排序将由我以外的其他人每天进行,他们真的应该有按钮而不是通过选项栏进行排序。
NB! “Sum”列不是数据透视表的一部分。这只是计算固定列的“Totalt”列,以便生成排序结果的扇形图,因为无法从“Totalt”列创建数据透视表。
'Målperdag'列只是每日(分钟)目标,我希望在此期间保持指定原因的生产停止,因此这应该保持在'Totalt'列之外,但这不太重要
我有一个透视表,按周显示,显示从1到5的任意天数。因此,总计天数值的右侧总列“正在移动”,这就是为什么我不能简单地记录宏。我想创建一个宏,根据总列对枢轴表进行排序。
我不会说VBA的国际语言,但想象一下这对于那些做过的人来说相当容易。
非常感谢愿意为我编写代码的人!
祝你好运, 汉斯
答案 0 :(得分:3)
汉斯
首先,您应该使用数据透视表上的内置排序功能,如下面的屏幕截图所示。
选择您要排序的列:
这对您来说可能有点问题,因为数据更改时数据透视表不会自动刷新。如果您希望它实时更新,那么您需要将“Worksheet_Change”事件处理程序添加到VBA代码中。要执行此操作,请按Alt + F11以显示VBA,并在包含源数据的工作表上输入以下内容:
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
PivotTables("PivotTable1").RefreshTable
Application.EnableEvents = True
End Sub
此处“PivotTable1”将更改为匹配数据透视表的名称。选择数据透视表后,此名称将显示在功能区中。
现在,当您更改数据时,表格将自动重新排序。
答案 1 :(得分:0)
汉斯,欢迎来到SO。您没有在标记中指定Excel的哪个版本,但这里有一些Excel 2007解决方案。
没有VBA就可以(而且很有帮助!)这样做。您可能对此Microsoft solution感兴趣。
我建议您使用总计选择数据透视表的范围,排除标题和总计,然后转到数据选项卡并选择排序Z-> A。这将按降序对总计进行排序(当然,将标题更改为左侧)。
如果您想定期执行此操作,您也可以录制宏来执行此操作,但这可能比实际值更麻烦。