点击上方蓝色字关注~

来源:掘金

处理数量较大的数据时,一般分为数据获取、数据筛选,以及结果展示几个步骤。在 Excel 中,我们可以利用数据透视表(Pivot Table)方便快捷的实现这些工作。

本文首先手把手的教你如何在 Excel 中手动构建一个基本的数据透视表,最后用 VBA 展示如何自动化这一过程。

注: 

  • 本文基于 Excel 2016 for Mac 完成,个别界面和 Windows 版略有差异

  • 如果要完成 VBA 的部分,Excel for Mac 需要升级到 15.38 版本以上

  • Excel 2007 及之后的顶部 Ribbon 菜单,文中简称为 Ribbon

  • 开启“开发工具”菜单的方法也请自行了解

1

 源数据

Excel 提供了丰富的数据来源,我们可以从 HTML、文本、数据库等处获取数据。

这个步骤本文不展开讨论,以下是我们作为分析来源的工作表数据:

2

创建数据透视表

  • 此处将工作表重命名为sheet1

  • 首先确保表格第一行是表头

  • 点击表中任意位置

  • 选中 Ribbon 中的“插入”

  • 点击第一个图标“数据透视表”,出现“创建数据透视表”对话框

注意观察对话框中的各种选项,这里我们都采用默认值

点击“确定”后,一个空的数据透视表出现在了新工作表中:

3

数据透视表中的字段

  • “数据透视表生成器”菜单中,选择“球队、平、进球、失球、积分、更新日期”几个字段

  • 将“平”拖放至“行”列表中的“球队”上方;表示在“平局”的维度上,嵌套(nesting)的归纳了“球队”的维度

  • “更新日期”拖放至“筛选器”列表中;表示可以根据更新日期来筛选显示表格数据

  • 分别对当前“值”列表中的几个字段,点击其右侧的i图标

  • 因为本例中无需计算其默认的“求和”,故将这几个字段的“汇总方式”都改为“平均值”

  • 暂时关闭“数据透视表生成器”

  • 该窗口随后可以用“字段列表”按钮重新打开

此时一个基本的数据透视表已经成型

4

增加自定义字段

有时基本的字段并不能满足分析的需要,此时就可以在数据透视表中插入基于公式计算的自定义字段。

下面用不同的方法加入两个自定义字段:

1.简单运算的公式

首先简单计算一下各队的场均进球数:

  • 点击数据透视表中的任意位置,以激活“数据透视表分析” Ribbon 标签

  • 点击“字段、项目和集”按钮,在弹出的下拉菜单中选择“计算字段”

  • “插入计算字段”对话框会出现

  • 在“名称”中填入“场均进球”

  • “字段”列表中分别双击“进球”和“场次”

  • 以上两个字段会出现在“公式”框中,在它们中间键入表示除法的斜杠/

  • 也就是说,此时“公式”部分为 =进球/场次

  • 点击“确定”关闭对话框,数据透视表中出现了新的“求和/场均进球”字段

  • 按照之前的方法,将字段的汇总方式改为“平均值”,确定关闭对话框

2.调用 Excel 公式

再简单的评估一下球队的防守质量,这里我们假设以如下 Excel 公式判断:

= IF(净胜球>=0,2,1)

防守还不错的取 2,不佳的则标记为 1。

  • 按照刚才的方法新建一个计算字段

  • 将上述公式填入“公式”

  • 将字段的汇总方式改为“计数” -- 虽然在此处并无太多实际意义

5

利用切片器过滤数据

除了可以在“数据透视表生成器”中指定若干个“过滤器”,切片器(Slicers)也可以用来过滤数据,使分析工作更清晰化

切片器的创建非常简单:

  • 在 Ribbon 中点击“插入切片器”按钮

  • 字段列表中选择“胜”、“负”

  • 两个切片器就出现在了界面中

  • 点击切片器中的项目就可以筛选

  • 结合 ctrl 键可以多选

6

成果

至此,我们得到了一个基于源数据的、可以自由组合统计维度、可以用多种方式筛选展示数据透视表

可以在 Ribbon 的“设计”菜单中选择预设的样式等,本文不展开论述。

以上就是创建数据透视表的基本过程。

7

自动化创建

基本的数据透视表的创建和调整并不复杂,但如果有很多类似的重复性工作的话,使用一些简单的 VBA自动化这一过程,将极大提升工作的效率。

本例中使用 VBA 脚本完成与上述例子一样的任务,对于 VBA 语言仅做简单注释,想更多了解可以自行查阅官方的文档等

1.一键生成

此处我们放置一个按钮源数据所在的数据表,用于每次点击自动生成一个数据透视表。

  • 在 Ribbon 的“开发工具”中点击按钮

  • 在界面任意位置框选一个按钮的尺寸

  • 释放鼠标后弹出“指定宏”对话框

  • 此处我们将“宏名称”框填入 ThisWorkbook.onCreatePovit

  • “宏的位置”选择“此工作簿”

  • 点击"编辑"后关闭对话框

  • 将按钮名称改为“一键生成透视表”

2.脚本编写

  • 点击 Ribbon 中“开发工具”下面第一个按钮“Visual Basic”

  • 在出现的“Visual Basic”编辑器中,选择左侧的“ThisWorkbook”类目

  • 在右侧编辑区贴入下面的代码

Sub onCreatePovit()Application.DisplayAlerts = False' 声明变量Dim sheet1 As WorksheetDim pvtTable As PivotTableDim pvtField As PivotFieldDim pvtSlicerCaches As SlicerCachesDim pvtSlicers As slicersDim pvtSlicer As Slicer' 删除可能已存在的透视表Dim existFlag As BooleanDim ws As WorksheetFor Each ws In WorksheetsIf ws.Name = "pivot1" Then existFlag = True: Exit ForNextIf existFlag = True ThenSheets("pivot1").SelectActiveWindow.SelectedSheets.DeleteEnd If' 初始化Set sheet1 = ActiveWorkbook.Sheets("sheet1")Set pvtSlicerCaches = ActiveWorkbook.SlicerCaches' 指定数据源sheet1.SelectRange("A1").Select' 创建透视表Set pvtTable = sheet1.PivotTableWizardActiveSheet.Name = "pivot1"' 指定行和列pvtTable.AddFields _RowFields:=Array("平", "球队"), _ColumnFields:="Data"' 指定数据字段Set pvtField = pvtTable.PivotFields("失球")pvtField.Orientation = xlDataFieldpvtField.Function = xlAveragepvtField.Name = "平均值/失球"Set pvtField = pvtTable.PivotFields("进球")pvtField.Orientation = xlDataFieldpvtField.Function = xlAveragepvtField.Name = "平均值/进球"Set pvtField = pvtTable.PivotFields("积分")pvtField.Orientation = xlDataFieldpvtField.Function = xlAveragepvtField.Name = "平均值/积分"' 指定计算字段pvtTable.CalculatedFields.Add Name:="场均进球", Formula:="=进球/场次"Set pvtField = pvtTable.PivotFields("场均进球")pvtField.Orientation = xlDataFieldpvtField.Function = xlAveragepvtField.Name = "平均值/场均进球"pvtTable.CalculatedFields.Add Name:="防守质量", Formula:="= IF(净胜球>=0,2,1)"Set pvtField = pvtTable.PivotFields("防守质量")pvtField.Orientation = xlDataFieldpvtField.Function = xlCountpvtField.Name = "计数/防守质量"' 指定切片器Set pvtSlicers = pvtSlicerCaches.Add(pvtTable, "胜", "胜_" & ActiveSheet.Name).slicersSet pvtSlicer = pvtSlicers.Add(ActiveSheet, , , , 300, 400)Set pvtSlicers = pvtSlicerCaches.Add(pvtTable, "负", "负_" & ActiveSheet.Name).slicersSet pvtSlicer = pvtSlicers.Add(ActiveSheet, , , , 350, 450)' 指定过滤器Set pvtField = pvtTable.PivotFields("更新日期")pvtField.Orientation = xlPageFieldApplication.DisplayAlerts = True
End Sub

3.运行程序

回到界面中,每次点击按钮就会在新工作表中生成结构和之前例子一致的数据透视表

8

总结

  • 本文简单的展示了在 Excel 中创建透视表的过程,以及其筛选、展示数据的方式

  • 通过 VBA 可以完成和手动创建一样甚至更多的功能,并大大提高工作效率

原文链接:

https://juejin.im/post/6844903504209772557

END -

本文为转载分享&推荐阅读,若侵权请联系后台删除

●面试常考,64个数据分析常用术语

●取数,取数,取个屁啊!

后台回复“入群”即可加入小z数据干货交流群

数据分析Excel必备技能:数据透视表使用教程相关推荐

  1. 数据分析Excel必备技能有哪些

    老许今日份知识分享来了. 处理数量较大的数据时,一般分为数据获取.数据筛选,以及结果展示几个步骤.在 Excel 中,我们可以利用数据透视表(Pivot Table)方便快捷的实现这些工作. 首先手把 ...

  2. Excel数据透视表经典教程一《数据透视规范》

    Excel用到数据透视表的情况如下: 1.有大量的数据.使用函数计算慢,繁琐 2.希望快速制作.整理.分析各种报表 3.数据源经常发生变化.并且要经常分析和处理最新的数据 4.想快速洞察数据背后隐藏的 ...

  3. php怎么做数据透视表,sql上使用excel表格数据透视表-会excel基本函数和数据透视表,加基本的SQL增删改......

    excel 数据透视表 sql语句 对空值的处理方法 比如你有个工,工作簿中有2个工作表,一个为.一个为消耗. 字段为: 代码 存货名称 采购金额 存货代码 存货名称 消耗金额 1.在任意一个工作表中 ...

  4. excel使用教程_数据分析Excel必备技能:数据透视表使用教程

    江米小枣tonylua | 作者 掘金 | 来源 处理数量较大的数据时,一般分为数据获取.数据筛选,以及结果展示几个步骤.在 Excel 中,我们可以利用数据透视表(Pivot Table)方便快捷的 ...

  5. 数据分析必备技能:数据透视表使用教程

    江米小枣tonylua | 作者 掘金 | 来源 https://juejin.im/post/6844903504209772557 处理数量较大的数据时,一般分为数据获取.数据筛选,以及结果展示几 ...

  6. 数据分析——切片器、数据透视表与数据透视图(职场必备)

      在处理小量数据的时候,excel真是一个强大的武器,最近闲下来的时候就温习excel的数据处理,接下来来梳理一下切片器.数据透视表与数据透视图的使用重点,有任何不懂的可以马上私信我.近期也会更新像 ...

  7. excel 简单制作数据透视表

    职场中,数据透视表,简直就是个必备技能.曾经需要统计一个三十多万条数据,分析这批数据,当时数据透视表用的不溜,导致浪费了很多时间,那几天简直就是天天加班啊,摔碗.后来发现,excel就是那么强大,你所 ...

  8. Excel 图表与数据透视表制作

    目录 数据分析基础技能之图表 常见图表与形状 制作简单图表 数据分析基础技能之数据透视表 制作数据透视表 数据透视表之分页(多工作表)显示 数据透视表之切片器 数据透视表之报表联接 数据透视表之日程表 ...

  9. [笔记] EXCEL中的数据透视表含义、用途、何时使用

    1. 数据透视含义 数据透视表是用来从excel数据列表.关系数据库文件或者OLAP多维数据集等数据源的特定字段中总结信息的分析工具它是一种交互式报表,可以快速分类汇总比较大量的数据,并可以随时选择其 ...

最新文章

  1. 查看IE浏览器安装的插件
  2. Create QR Code
  3. SSM+Netty项目结合思路
  4. 【C/C++】通过无类型指针实现泛型拷贝(内存拷贝)
  5. 数据结构与算法(Python)第三天
  6. 「津津乐道播客」#309 厂长来了:我们买买买了这么多年,然后呢?(feat. 只二)...
  7. SAP Enhancement POINT和Enhancement SECTION
  8. 人类的幸福和欢乐在于奋斗,而最有价值的是为理想而奋斗
  9. Sui改进提案(SIPs)及其审核流程
  10. 2016年SaaS类早期初创企业融资状况及预测
  11. JSON转String
  12. 细胞穿膜肽IAWVKAFIRKLRKGPLG
  13. Matlab stairs函数的使用方法
  14. 比起科技巨头,普通人中的AI开发者都在做什么?
  15. 国际主权债重组:博奕视角的分析*
  16. 快乐教鞭2.0新增功能介绍
  17. uniapp开发微信公众号之网页授权
  18. ValueError: Not a TBLoader or TBPlugin subclass: <class ‘tensorboard_plugin_wit.wit_plugin_loader
  19. 【新课上架】Substance Painter 2018 基础实例教程
  20. @keyframes花瓣动画(代码比较简单,实现炫酷特效)

热门文章

  1. html语言制作表格模板,十个最简单实用的Table设计模板
  2. CMake的使用例子
  3. PLC实训 —系统电路及设备认识
  4. Toontrack EZDrummer for Mac - 鼓音乐制作工具
  5. Inferior 1 (process 663) exited with code 0177
  6. 评《设计模式之禅》一书
  7. Python数据分析与机器学习47-维基百科词条EDA
  8. C语言输出所有水仙花数字
  9. 分享一个强大的数据可视化低代码开发平台
  10. Unity之UGUI-特效遮挡问题2.0