Note: The other languages of the website are Google-translated. Back to English

如何将多个字段添加到数据透视表?

在创建数据透视表时,我们需要将字段手动一一拖到“行标签”或“值”中。 如果字段列表很长,我们可以快速添加一些行标签,但其余字段应添加到“值”区域。 一键单击数据透视表,是否可以快速将其他所有字段添加到“值”区域中?

使用VBA代码将多个字段添加到数据透视表的“值”区域中

Office选项卡在Office中启用选项卡式编辑和浏览,并使您的工作更加轻松...
Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%
  • 重用任何东西: 将最常用或最复杂的公式,图表等添加到您的收藏夹中,并在将来快速重用它们。
  • 超过20种文字功能: 从文本字符串中提取数字; 提取或删除部分文字; 将数字和货币转换为英文单词。
  • 合并工具:将多个工作簿和工作表合二为一; 合并多个单元格/行/列,而不会丢失数据; 合并重复的行和总和。
  • 分割工具:根据价值将数据分割成多个工作表; 一本工作簿可转换为多个Excel,PDF或CSV文件; 一列到多列。
  • 跳过粘贴 隐藏/过滤的行; 计数与求和 按背景色; 向多个收件人批量发送个性化电子邮件。
  • 超级过滤器: 创建高级过滤方案并应用于任何工作表; 排序 按星期,日期,频率等 筛选器 用粗体,公式,注释...
  • 超过300种强大的功能; 适用于 Office 2007-2021 和 365; 支持所有语言; 在您的企业或组织中轻松部署。

箭头蓝色右气泡 使用VBA代码将多个字段添加到数据透视表的“值”区域中

不幸的是,没有一个复选框可供我们快速单击以快速检查“数据透视表”字段列表中的所有字段,但是,使用以下VBA代码,它可以帮助您立即将其余字段添加到“值”区域。 请执行以下操作:

1. 创建数据透视表后,首先,应根据需要添加行标签字段,并将值字段保留在 选择要添加到报告中的字段 列表,请参阅屏幕截图:</ p>

doc-add-multiple-fields-1

2。 按住 ALT + F11 键打开 Microsoft Visual Basic for Applications窗口.

3。 点击 插页 > 模块,然后将以下代码粘贴到 模块窗口.

VBA代码:将多个字段添加到活动工作表中的数据透视表的“值”区域中

Sub AddAllFieldsValues()
'Update 20141112
    Dim pt As PivotTable
    Dim I As Long
    For Each pt In ActiveSheet.PivotTables
        For I = 1 To pt.PivotFields.Count
            With pt.PivotFields(I)
              If .Orientation = 0 Then .Orientation = xlDataField
            End With
        Next
    Next
End Sub

4。 然后按 F5 键以运行此代码,所有剩余字段已同时添加到“值”区域,请参见屏幕截图:

doc-add-multiple-fields-1

备注:此VBA代码适用于活动工作表的所有数据透视表。


相关文章:

如何列出工作表中的所有数据透视表?

如何检查工作簿中是否存在数据透视表?


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部

 

按评论排序
注释 (23)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
非常好的和有用的宏。 但是,我已经将一半的字段添加到值中,当我运行这个宏时,它再次添​​加了所有相同的字段。 知道为什么吗?
该评论由网站上的主持人最小化
哇。 它工作得非常好。 非常感谢! 尽管如此,我有点惊讶微软没有内置功能来完成一项相当简单的任务......
该评论由网站上的主持人最小化
这是太棒了。 可以修改宏以将所有内容添加到行标签而不是值吗?
该评论由网站上的主持人最小化
有没有办法只为排除的字段运行它,这样当我运行它时我不会得到重复的字段? IE。 “字段”和“字段_2”
该评论由网站上的主持人最小化
[quote]有没有办法只为排除的字段运行它,这样当我运行它时我不会得到重复的字段? IE。 “字段”和“字段_2”由肖恩[/quote] 是的 - 两个示例 使用这个将所有剩余的未选中项目添加到 ROWS Sub AddAllFieldsRow() Dim pt As PivotTable Dim iCol As Long Dim iColEnd As Long Set pt = ActiveSheet.PivotTables(1) With pt iCol = 1 iColEnd = .PivotFields.Count For iCol = 1 To iColEnd With .PivotFields(iCol) If .Orientation = 0 Then .Orientation = xlRowField End If End With Next iCol End With End Sub 使用此选项将剩余的未选中项目添加到 VALUES Sub AddAllFieldsValues() Dim pt As PivotTable Dim iCol As Long Dim iColEnd As Long Set pt = ActiveSheet.PivotTables(1) With pt iCol = 1 iColEnd = .PivotFields.Count For iCol = 1 To iColEnd With .PivotFields(iCol) If .Orientation = 0 Then .Orientation = xlDataField End If End With Next iCol End With End Sub
该评论由网站上的主持人最小化
有没有办法只添加一些 ekstra 字段,而不是剩余的或全部,而只是添加一对尚未检查的字段? :)
该评论由网站上的主持人最小化
是的,为了回应 markus,有没有办法编辑代码以仅添加具有肯定字段标签的未选中字段(例如使用 if contains 函数)? 例如,我有一个问题实际上是按主题划分的 50 个是/否值,我想将所有这些值移至值字段。 它们都以相同的问题标签 q9_[特定问题主题] 开头。
该评论由网站上的主持人最小化
无论如何,如果我们想从基本文件中添加一些选定的列而不是全部。?
该评论由网站上的主持人最小化
它的价值作为计数。 我如何将所有计数转换为总和
该评论由网站上的主持人最小化
您可以单击您的字段(在您将字段拖入的区域:列标签、行标签等),然后单击“值字段设置”,然后您将获得一个下拉列表,您可以从中选择“总和”!
A     El
该评论由网站上的主持人最小化
该评论由网站上的主持人最小化
这很棒! 谢谢。
该评论由网站上的主持人最小化
“xlDataField”是否不适用于 PowerPivot? 我有下面的代码,用于将所有度量添加到数据透视表。 它适用于“xlColumnField”和“xlRowField”。 任何想法如何使这项工作?

子 AddAllFieldsValues()
将 pt 变暗为数据透视表
暗淡 iCol 只要
将 iColEnd 变暗

设置 pt = ActiveSheet.PivotTables(1)

与 pt

iCol = 1
iColEnd = .CubeFields.Count

对于 iCol = 1 到 iColEnd
使用 .CubeFields(iCol)
如果 .Orientation = xlHidden 则
.Orientation = xlDataField
结束如果
结束
下一个 iCol

结束

END SUB
该评论由网站上的主持人最小化
你好。

当我点击运行时它给了我一个编译错误

请帮忙
该评论由网站上的主持人最小化
奇迹般有效。 谢谢
该评论由网站上的主持人最小化
谢谢,对我帮助很大
该评论由网站上的主持人最小化
太感谢了!!!
该评论由网站上的主持人最小化
注意:Che 的错误信息:




子 AddAllFieldsValues()




'更新 20141112



暗淡
pt 作为数据透视表





暗淡我






为每个
pt 在 ActiveSheet.PivotTables 中






I = 1 到 pt.PivotFields.Count





结束







下一页



下一页




END SUB










注意:Che 正在尝试添加以下内容
字段/快照-“其他差异之和,4096 之和
差异”超过80个领域
添加







其他差异



4096 差异



4016 差异
该评论由网站上的主持人最小化
如果“价值观是
“0”或“Null”如何禁止显示行值

(例如 2743 差的总和)





枢轴“行”
透视“价值观”





行标签





NP9 - 未支出总额
拨款





其他差额合计 1,045,355,165.31




3200 差的总和
0.00




0108 差的总和
12,873,630.29



4586 差的总和
(33,024,706.93)



0148 差的总和
(72,046,783.14)



0129 差的总和
(5,583,891.98)



4598 差的总和
(929,574.56)



2743 差的总和



4041 差的总和
0.00



2799 差的总和
该评论由网站上的主持人最小化
有没有办法编辑将字段发送到行标签而不是值的宏?
该评论由网站上的主持人最小化
Задача же не всегда стоит в получении списка, хочется допустим поправить названия таблиц или источников данных。 Можете реализовать?
该评论由网站上的主持人最小化
嗨,有没有办法只添加未选择的列? 谢谢。 
该评论由网站上的主持人最小化
我正在运行这段代码。 完成需要多少时间? 现在是 45 分钟,它仍在运行。 请帮我。 顺便说一句,我的总字段列是 3600。
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护