我现在尝试从互联网上复制和粘贴解决方案,尝试使用VBA过滤Excel中的数据透视表.下面的代码不起作用.
Sub FilterPivotTable()
Application.ScreenUpdating = False
ActiveSheet.PivotTables("PivotTable2").ManualUpdate = True
ActiveSheet.PivotTables("PivotTable2").PivotFields("SavedFamilyCode").CurrentPage = "K123223"
ActiveSheet.PivotTables("PivotTable2").ManualUpdate = False
Application.ScreenUpdating = True
End Sub
Run Code Online (Sandbox Code Playgroud)
我想过滤所以我看到所有行都有SavedFamilyCode K123223.我不想在数据透视表中看到任何其他行.无论先前的过滤器如何,我都希望它能够工作.我希望你能帮助我.谢谢!
根据你的帖子我正在尝试:
Sub FilterPivotField()
Dim Field As PivotField
Field = ActiveSheet.PivotTables("PivotTable2").PivotFields("SavedFamilyCode")
Value = Range("$A$2")
Application.ScreenUpdating = False
With Field
If .Orientation = xlPageField Then
.CurrentPage = Value
ElseIf .Orientation = xlRowField Or .Orientation = xlColumnField Then
Dim i As Long
On Error Resume Next ' Needed to avoid getting errors when manipulating fields that were deleted from the data …Run Code Online (Sandbox Code Playgroud) 我有一列带有重复值的文本值.我想创建一个新的唯一值列(没有重复)和一个具有每个值的频率的列.
最简单的方法是什么?效率不是很大,因为它不到10000行.
我在这里跟着一个问题,使用Mysql查询动态地将行转换为列.这工作正常,但我需要在两列的基础上转换它,
上面链接中提到的查询适用于单个列"数据",但我想工作两列"数据"和"价格".
我在这里添加了一个例子,
给出表A,看起来像
Table A
| id|order|data|item|Price|
-----+-----+----------------
| 1| 1| P| 1 | 50 |
| 1| 1| P| 2 | 60 |
| 1| 1| P| 3 | 70 |
| 1| 2| Q| 1 | 50 |
| 1| 2| Q| 2 | 60 |
| 1| 2| Q| 3 | 70 |
| 2| 1| P| 1 | 50 |
| 2| 1| P| 2 | 60 |
| 2| 1| P| 4 …Run Code Online (Sandbox Code Playgroud) 我正在寻找Python/Pandas的提示,将二维表反转为一维列表.
我通常利用Excel函数来完成它,但我相信有一种聪明的Python方法可以做到这一点.
步

Excel方式的更多细节:http: //www.extendoffice.com/documents/excel/2461-excel-reverse-pivot-table.html
我只是清理我的工作簿,并使用以下代码来整合我的PivotCaches(在清理之前我有大约200个).
Sub changeCache()
Dim ws As Worksheet
Dim pt As PivotTable
Dim pc As PivotCache
Dim first As Boolean
On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
ws.Activate
For Each pt In ActiveSheet.PivotTables
If first = False Then
Set pc = pt.PivotCache
first = True
End If
pt.CacheIndex = pc.Index
Next pt
Next ws
End Sub
Run Code Online (Sandbox Code Playgroud)
这使我的PivotCache数量减少到33.
Sub CountCaches()
MsgBox ActiveWorkbook.PivotCaches.Count
End Sub
Run Code Online (Sandbox Code Playgroud)
它是33而不是1的原因是因为我有32个使用数据模型构建的数据透视表.
我的问题是:有谁知道如何更改使用数据模型构建的数据透视表以使用相同的PivotCache?
编辑
我的第二个问题是:多个数据透视表都建立在数据模型上
a)引用单一数据模型; 要么
b)每个都有自己的模型,因此"膨胀"Excel文件
EDIT2
在进一步探索时,似乎数据模型是 …
有没有更好的方法可以使用 pd.crosstab() 或 pd.pivot_table() 在 Pandas 中创建列联表来生成计数和百分比。
当前解决方案
cat=['A','B','B','A','B','B','A','A','B','B']
target = [True,False,False,False,True,True,False,True,True,True]
import pandas as pd
df=pd.DataFrame({'cat' :cat,'target':target})
Run Code Online (Sandbox Code Playgroud)
使用交叉表
totals=pd.crosstab(df['cat'],df['target'],margins=True).reset_index()
percentages = pd.crosstab(df['cat'],
df['target']).apply(lambda row: row/row.sum(),axis=1).reset_index()
Run Code Online (Sandbox Code Playgroud)
和合并
summaryTable=pd.merge(totals,percentages,on="cat")
summaryTable.columns=['cat','#False',
'#True','All','percentTrue','percentFalse']
Run Code Online (Sandbox Code Playgroud)
输出
+---+-----+--------+-------+-----+-------------+--------------+
| | cat | #False | #True | All | percentTrue | percentFalse |
+---+-----+--------+-------+-----+-------------+--------------+
| 0 | A | 2 | 2 | 4 | 0.500000 | 0.500000 |
| 1 | B | 2 | 4 | 6 | 0.333333 | 0.666667 …Run Code Online (Sandbox Code Playgroud) 我目前有一个功能集,它将所选枢轴表的所有值更改为平均值.
它工作正常,我已经组装了一个表单,它传递一个工作正常的值.
在这一点上我想做的是让它决定将值转换为什么.
但是,我不断收到Type-Mismatch错误.这是因为它被读作字符串.我该如何调整呢?
Private Sub CommandButton1_Click()
MsgBox xl & ListBox1.Value
Dim ptf As Excel.PivotField
With Selection.PivotTable
.ManualUpdate = True
For Each ptf In .DataFields
With ptf
.Function = "xl" & ListBox1.Value 'xlAverage works here
.NumberFormat = "#,##0"
End With
Next ptf
.ManualUpdate = False
End With
End Sub
Private Sub ListBox1_Click()
End Sub
Private Sub UserForm_Click()
End Sub
Private Sub UserForm_Initialize() 'Set Values Upon Opening
With ListBox1
.AddItem "Sum"
.AddItem "Count"
.AddItem "Average"
.AddItem "Max"
.AddItem "Min" …Run Code Online (Sandbox Code Playgroud) 我已经开始使用该包pivottablejs来操作和可视化python中的数据透视表.
from pivottablejs import pivot_ui
pivot_ui(df) # where df is a pandas dataframe
Run Code Online (Sandbox Code Playgroud)
将在jupyter笔记本中生成交互式数据透视表/情节.
是否有任何pythonic方法可以将这个软件包产生的数据保存到pngjupyter笔记本中?我正在寻找类似于经典的东西plt.savefig('file.png').前端本质上是javascript,我不知道如何(或者是否可能)通过python访问javascript数字.
我的数据透视表中有两列。工单计数和成本总和。我想插入一个计算字段,该字段只需将成本总和除以工单数量即可获得每个工单的平均值。
当我插入带有以下公式的计算字段时,它会产生总成本,而不是平均值。您将看到字段为小计(成本)和 WO#(工单)
这是我的数据透视表中的输出。
如何在 Google 表格中获取数据透视表,其中的列显示某个值在列中出现的次数?
我知道可以使用该countif函数来完成,但我想使用数据透视表来完成。