首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

替代Excel Vba系列(一):用Python的pandas快速汇总

数据透视 接下来就非常简单,直接使用 pandas 做出透视表。 使用 pd.pivot_table ,即可快速生成透视表。 其中参数 index ,则是结果左边的行分类字段——[班级]。...如果你对 excel 的透视表比较熟悉就会马上学会这些。 index 相当于 excel 透视表的行区域。 values 相当于 excel 透视表的值区域。...columns 相当于 excel 透视表的字段区域。 放入 index 与 columns 的字段,一般是分类的字段,比如:班级,性别。...因此,我们可以分开两步输出。如下: 第一行代码,首先输出字段行。 第二行代码,输出值。...如下: 可以看到使用 vba 进行统计,代码很长,并且都不是给人看的。 如果原数据的字段顺序有变化,这代码立刻无效。并且代码仍然可以跑出结果,只是错误结果而已。

43640

将一个工作表拆分为多个工作表

一般这样的需求,是因为将1-12月的数据写在了一个工作表上,而现在又想将它拆分为12个单独的工作表,每个工作表单独一个月份.总结了一下,文艺青年的方法有三,普通青年请直接跳到最后一个办法 数据透视表 将你需要显示的字段放在数据透视表中...,排列成你想要显示出来的样式 将需要拆分的字段放在数据透视表字段管理器中的'筛选器'中 选择数据透视表→数据透视表工具→分析→选项→显示报表筛选页 注:数据透视表→设计中的'不显示分类汇总,对行和列禁用总计...,以表格显示显示,重复所有项目标签'这4个功能你可能在调整格式过程中需要用到 就这样,不用代码也不用函数,你就可以将你的表拆分为N多个表.接下来,就是见证奇迹的时刻: 是不是很神奇 这样操作之后,你发现那些表都是数据透视表...VBA代码 在开发工具中找到Visual Basic,点击打开的窗口叫VBE.....例如数据源D列是月份,你要按月份拆分的话,在新建的工作表中D列输入月份,像这样 然后在A1输入以下公式:假设数据表名为数据源,并且你的数据到了499行,且依据字段在D列的情况下.其他需要根据需求进行更改

4.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python替代Excel Vba系列(二):pandas分组统计与操作Excel

    但有些小伙伴看完之后有些疑惑: 那只是简单读写数据而已,但有时候我需要设置 excel 的格式。 我用透视表不用写代码,两三下也可以弄出结果来。...df['排名']=rank ,即可把排名结果放入表中新增的字段中。...df.sort_values(['班级','排名'],inplace=True) ,按先[班级]后[排名]进行排序,不是必须的,只是为了方便查看数据。...而 transform 方法的特点就是不会压缩原数据的行数,因此每组的数都是一样的平均分。 df['班级均分']=class_avg ,同样新增一列。...下一节就会对目前的数据做探索分析,敬请留意。 总结 通过本文应该可以解答之前的一些疑惑。像本次需求中的数据处理任务,即使你用透视表来解决也是不容易的,更不用说用 vba 了。

    1.7K30

    难道Power Pivot都比普通透视表强吗?那我们就要谈谈他的不足之处。

    普通的透视表能提供常用度量值的快速显示。 ? ? 3. 使用VBA上的不同 Power Pivot不能使用VBA进行创建,只能利用VBA很小的功能。 普通透视表则可以利用VBA进行灵活处理。 4....更改数据的不同 Power Pivot如果要更改数据,必须从数据源去更改 普通透视表的数据一般使用的是表,只需要在表格数据上进行更改即可。 5....透视表列名更改为其他列时的反应不同 Power Pivot把透视表列名更改为其他列后不会发生变化 ? 普通透射比把列名更改为其他列后对应数据则会相应换位 ? 6....打印功能的不同 在Power Pivot界面不能直接打印筛选的数据 在表格中则可以直接进行打印 7. 窗口的冻结的不同 在Power Pivot界面只能冻结首行,如果冻结列的话则会自动移到最左边。...在Excel中你可以冻结行和列,并且不会自动移动到最左边。 8. 报表筛选页的不同 在Power Pivot透视表中,无法使用报表筛选页。 ? 普通透视表则可以使用报表筛选页生成筛选值的工作表。 ?

    6.1K40

    那人的Excel技巧好烂,他做1个小时,别人29秒搞定

    哪怕你很精通Excel其他功能包括函数,VBA什么的。然而当你知道了“智能表格”,1s美化表格真的不是个什么事情,任何人哪怕是没有任何基础的小白都可以轻松办到。咱们接着往下看。...很多职场老鸟会选择更改数据源而得到新的结果,然而,如果每次源数据更新了都要都要去更新一次是不是很麻烦呢?如何做到当数据源变化时,数据透视表的结果也跟着变化呢?答案就是建立动态数据透视表。...特点(Features):表格通常都会有个名称,这个名称代表的选区范围自动随着数据的改动而改动 优势(Advantages):自动得到一个动态的数据源,因此利用表格创建数据透视表会自动得到动态数据透视表...特点(Features):给表格增加新的行或者列的时候,表格的格式和公式将自动应用到新增加的列或者行 优势(Advantages):给表格增加新行或者新列时不用去设置格式和公式 利益(Benefits)...特点(Features):插入表格后,表格将自动记录筛选状态,且同一张sheet的多个表格可以同时处于筛选状态而互不影响。

    2.6K50

    Python替代Excel Vba系列(三):pandas处理不规范数据

    注意:虽然本文是"Python替代Excel Vba"系列,但希望各位读者明白,工具都是各有所长,选择适合的工具,才是最好的。 ---- 案例 这次的数据是一个教师课程表。...如下是一个 DataFrame 的组成部分: 红框中的是 DataFrame 的值部分(values) 上方深蓝色框中是 DataFrame 的列索引(columns),注意,为什么方框不是一行?...我们平时操作 DataFrame 就是通过这两个玩意去定位里面的数据。 如果你熟悉 excel 中的透视表,那么完全可以把行列索引当作是透视表中的行列区域。...如下图: 不妨在 excel 的透视表上操作一下,把一个放入列区域的字段移到行区域上,就是上图的结果。 ---- ---- 回到我们的例子。...我们需要把前3列放入行索引,然后把整个列索引移到行索引上。 代码如下: .set_index(['day','apm','num']) , 把这3列放入行索引区域。

    5K30

    代替VBA!用Python轻松实现Excel编程(文末赠书)

    所谓的对照学习,不是将两种语言机械地放在一起,自说自话,而是先将两门语言的语法全部打碎,然后实现语法知识点点对点的对照、融合和重建,在自己熟悉的语境中快速理解和掌握另一门语言。...图2 创建嵌入式图表 PART 06 用VBA和Python创建Excel数据透视表 通过编程,可以使用向导和缓存两种方式创建数据透视表。...下面分别用VBA和Python,使用缓存方式创建数据透视表。Excel会为数据透视表建立一个缓存,通过该缓存,可以实现对数据源中数据的快速读取。...() shtPVT.Name = "数据透视表" '放数据透视表的位置 Set rngPVT = shtPVT.Range("A1") '创建数据透视表关联的缓存 Set PVC= ActiveWorkbook.PivotCaches.Create...图3 使用缓存创建数据透视表

    5.9K30

    对比VBA学习Python,让办公更自动化!

    所谓的对照学习,不是将两种语言机械地放在一起,自说自话,而是先将两门语言的语法全部打碎,然后实现语法知识点点对点的对照、融合和重建,在自己熟悉的语境中快速理解和掌握另一门语言。...图片 图2 创建嵌入式图表 PART 06 用VBA和Python创建Excel数据透视表 通过编程,可以使用向导和缓存两种方式创建数据透视表。...下面分别用VBA和Python,使用缓存方式创建数据透视表。Excel会为数据透视表建立一个缓存,通过该缓存,可以实现对数据源中数据的快速读取。...() shtPVT.Name = "数据透视表" '放数据透视表的位置 Set rngPVT = shtPVT.Range("A1") '创建数据透视表关联的缓存 Set PVC= ActiveWorkbook.PivotCaches.Create...图3 使用缓存创建数据透视表

    3.8K11

    学VBA还是学Python,这不是个问题!

    所谓的对照学习,不是将两种语言机械地放在一起,自说自话,而是先将两门语言的语法全部打碎,然后实现语法知识点点对点的对照、融合和重建,在自己熟悉的语境中快速理解和掌握另一门语言。...图2  创建嵌入式图表 PART 06 用VBA和Python创建Excel数据透视表 通过编程,可以使用向导和缓存两种方式创建数据透视表。...下面分别用VBA和Python,使用缓存方式创建数据透视表。Excel会为数据透视表建立一个缓存,通过该缓存,可以实现对数据源中数据的快速读取。...Set shtPVT = Worksheets.Add()shtPVT.Name = "数据透视表"'放数据透视表的位置Set rngPVT = shtPVT.Range("A1") '创建数据透视表关联的缓存...图3  使用缓存创建数据透视表 《代替VBA!

    2.7K50

    手把手教你玩转 Excel 数据透视表

    什么时候用数据透视表 找出同类数据在不同时期的某种特定关系 以简洁友好的方式,查看大量的表格数据 对数值数据快速分类汇总,按分类和子类查看数据信息 建立交叉表格,将行移动到列或将列移动到行,以查看数据源的不同汇总...数据源需要们组一定的规则才能成为一个合法的数据源,详细规则如下: 每列数据的第一行是该列的标题 数据源不能包含空行和空列 数据源不能包含空单元格 数据源中不能包含合并单元格 数据源中不能包含同类字段...其中,绿色区域为合并单元格,黄色为空白单元格,蓝色为同类字段,均不符合对标准数据源的要求。 4-2 透视表刷新 透视表刷新粉两种方式,手动刷新和自动刷新。...手动刷新下,也分为两种情况,分别是数据源区域未改变及数据源区域发生改变。如果只是单元格数值发生变化,可以选中透视表区域右键刷新或者在透视表分析面板中点击刷新。...而如果对数据源进行了删除或新增,则需要手动的去更改数据源。 自动刷新可以在数据透视表选项面板中选择打开文件时刷新数据或使用VBA自动刷新数据表。 5.

    2.6K20

    学VBA还是学Python,这不是个问题!

    所谓的对照学习,不是将两种语言机械地放在一起,自说自话,而是先将两门语言的语法全部打碎,然后实现语法知识点点对点的对照、融合和重建,在自己熟悉的语境中快速理解和掌握另一门语言。...图2 创建嵌入式图表 PART 06 用VBA和Python创建Excel数据透视表 通过编程,可以使用向导和缓存两种方式创建数据透视表。...下面分别用VBA和Python,使用缓存方式创建数据透视表。Excel会为数据透视表建立一个缓存,通过该缓存,可以实现对数据源中数据的快速读取。...() shtPVT.Name = "数据透视表" '放数据透视表的位置 Set rngPVT = shtPVT.Range("A1") '创建数据透视表关联的缓存 Set PVC= ActiveWorkbook.PivotCaches.Create...图3 使用缓存创建数据透视表 《代替VBA!

    2.9K40

    《Python for Excel》读书笔记连载1:为什么为Excel选择Python?

    执行这种嵌套函数调用与其他编程语言的工作方式没有什么不同,只是在单元格中编写代码,而不是在文本文件中编写代码。...这样,这些电子表格工具经常在同一张表上混合输入、计算和输出,它们可能需要执行不明显的步骤才能正常工作,并且在没有任何安全保护的情况下完成关键内容修改。...没有重复的代码意味着更少的代码行和更少的错误,这使得代码更易于维护。 如果编写VBA,最常见的可重用代码是函数。例如,通过函数可以从多个宏访问同一代码块。...例如,你可以将一列拆分为两列,合并两个表,或者对数据进行筛选和分组。自Excel2016以来,PowerQuery不再是外接程序,而是可以在功能区数据选项卡上通过“获取数据”按钮直接访问。...可以将其视为传统的透视表,与PowerQuery一样,它可以处理大型数据集。PowerPivot允许你定义具有关系和层次结构的正式数据模型,并且你可以通过DAX公式语言添加计算列。

    5.3K20

    简单的Excel VBA编程问题解答——完美Excel第183周小结

    Next循环中放入多少条Exit For语句? 没有限制。 12.Function过程与Sub过程有何不同? Function过程会向程序返回一个值,而Sub过程则不会。...没有限制,但是良好的编程习惯规定过程不应太长,最多30至40行代码是合理的。 14.如何将数组作为参数传递给过程? 数组名后加上空括号。 15.如何指定函数要返回的值? 通过将值赋给函数名称。...19.哪两个函数用于搜索文本(在另一个字符串中查找一个字符串)? InStr函数和InStrRev函数。 20.如何转换字符串,以使每个单词的首字母大写,而所有其他字母小写?...不是。同一字母的大写和小写具有不同的ASCII值。 22.如何从字符串开头提取一定数量的字符? 使用Left函数。 23.在VBA程序中使用哪个Excel对象引用的工作表单元格区域?...Excel公式技巧64:为重复值构造包含唯一值的辅助列 Excel小技巧67:列出工作表中所有定义的名称 完美Excel社群本周内容 本周完美Excel社群内容更新不是很多,仍然是《Excel编程周末速成班

    6.6K20

    使用VBA自动化处理表的代码大全1

    标签:VBA 表是Excel最强大的功能之一。使用VBA控制表提供了一种强大的自动化方法。 在Excel中,将数据存储在表中为数据处理提供了极大的方便。...表有一些基本的结构规则,例如表的标题必须是唯一的,只允许一个标题行,这使得表与更复杂的工具能够兼容,例如,Power Query、数据透视表和SharePoint使用表作为数据源或输出方式。...但在VBA中,文档对象模型(DOM)没有随着升级后的功能而更改。因此,尽管在Excel中使用术语“表”,但在VBA中仍被称为ListObjects。...表的结构 在讲解处理表的VBA代码之前,理解表的结构是非常有用的。 表区域&表数据体区域 表区域是表的整个区域,如下图1所示。 图1 表数据体区域仅包括数据行,不包括标题和汇总行,如下图2所示。...图2 标题和汇总行 标题行区域是包含列标题的表顶部行,如下图3所示。 图3 汇总行区域(如果显示)是位于表底部的计算结果行,如下图4所示。 图4 表列和表行 单独的列被称作表列,如下图5所示。

    33020

    Excel动画图表示例:Excel也可以创建可视化的随时间而变化的排名

    准备 本文列出的创建动画图表的步骤并不是孤立地考虑的,必须考虑整个过程。需要什么原始数据?如何将其聚合以显示想要什么?在绘制图表之前,是否需要对聚合数据进行进一步处理?使用哪种类型的图表?...下图2是将每周数据输入表格的情况。 图2 创建数据透视表 数据透视表非常适合此情况,它可以按照图表中需要的方式对数据进行汇总。...为了创建所需的数据,创建了一个表,该表使用GETPIVOTDATA从数据透视表中获取值。在这个阶段,表仍然是按俱乐部名称的字母顺序排列的。...为了将所选周的数据输入到表中,从而绘制到图表中,代码会更改透视表上的筛选器。此筛选器是工作表中单元格I1中的值。 因此,数据透视表中的数据流入计算表,计算表依次输入排序表。...但应用于条形的格式仍保留在该条形上,它不会仅仅因为球队的位置改变而改变。 使用排序表,代码知道该表中最顶层的球队是图表中的顶层球队。表中第二队在图表中排名第二,等等。

    7.4K70

    Excel省市交叉销售地图

    步骤二:准备相应素材 2.1准备原始数据表:将原始数据用数据透视表处理成如下格式 ---- ---- ---- 注: 1)行字段是经销商所在城市,列字段是客户所在城市; 2)行和列均有总计,目的是后期计算省外的交叉销售数值...; 3)为后期作图美观,行和列城市一致时将其值设置为0; 2.2利用原始图复制粘贴,分别制作各省市射线图和气泡图,并在填充了省市底图后,记录下该省内各城市XY坐标: ---- 注: 1)省份,城市...---- ---- 2.3组合散点图和气泡图:新建一张新的工作表,命名为“省市交叉销售”,进行两者的组合。...3)在切换省份后,城市清单表有更新,故需更新其透视表以及其切片器。...Sheets("各省射线图").PivotTables("数据透视表1").PivotCache.Refresh ActiveWorkbook.SlicerCaches("切片器_城市").PivotTables

    5.6K10

    你可能从来没用透视表干过这件事,太有意思了!

    话说,数据透视表是Excel里超级好用的数据分析功能!君不见,前天我发文章《别傻了!PQ都没学会,VBA都学不来,你能学好Python处理Excel?》...其实啊,这个真是好简单,月历就是个透视表嘛! 小勤:怎么会…… 大海:你看啊,月历里每一列是不是就是星期几? 小勤:这个我懂啊。...大海:那你看每一行,其实就是第几周啊,然后交叉(值)其实就是第几周的星期几是哪一天(日)。 小勤:对啊,但用数据透视表具体怎么做?感觉还是有点儿抽象。 大海:其实非常简单。...我们先做个所需要范围的日历表,就是每天一行的那种,比如我们做个2018年的,然后把用函数把年(YEAR)、月(MONTH)、日(DAY)、星期(WEEKDAY或TEXT)、周(WEEKNUM)等列生成出来...大海:然后就可以数据透视了,把“星期”放到列,把“月”、“周”放到行,把“日”放到值,然后取消分类统计、总计,如下图所示: 小勤:这操作,简直…… 大海:你理解了这个月历的数据结构,其实就非常简单。

    48650

    数据透视表入门

    今天跟大家分享有关数据透视表入门的技巧! 数据透视表是excel附带功能中为数不多的学习成本低、投资回报率高、门槛低上手快的良心技能!...对于日程的排序、汇总、转换、提取等,他都可用统统拿下,替代了很多需要使用复杂函数嵌套、高级筛选甚至VBA才能完成的高级数据处理技巧!...此时你选定的透视表存放单元格会出现透视表的 布局标志,同时在软件右侧出现数据透视表字段菜单,顶部菜单栏也会自动出现数据透视表工具菜单。...一共四个位置:筛选器存放的字段属于全局层面的筛选,列字段和行字段大多适用于分类或者数量变量值,而值字段则更多存放数值型变量。...此时透视表会输出行变量为地区,列表变量为产品,值为销量的结果。 默认的标签名为行标签、列标签,我们可以通过双击标签单元格更改名称。 ? 如果不想要汇总项的话,可以通过菜单设置取消汇总项。

    3.6K60

    懂Excel轻松入门Python数据分析包pandas(二十一):透视表

    后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas 前言 本系列上一节文章最后我随手使用了 pandas 中的透视表操作,之后有些小伙伴询问我相关的问题。...,以方便那些不熟悉透视表的小伙伴: - 3步完成 分析目标涉及的维度: - 性别 - 生还率 这些维度用于分类依据,放入透视表的行或列标签: - 把 sex 字段拖入 行标签,survived...字段拖入 列标签 - 还需要统计人数,人名总是有的,因此把 name 字段拖入 数值区域 - 透视表立刻出结果,行标签 放入的字段的唯一值,被显示在透视表左侧。...列标签 放入的字段的唯一值,被显示在透视表的上方 只看数值看不出门路,设置百分比吧: - 点中透视表任意一格,鼠标右键 - 按上图指示完成 - 女性 生还率远高于 男性!!...案例3:小伙伴结伴同游,更安全 以前我发布过一篇文章,曾经使用 power bi 对这个数据进行初步分析,文中发现,里面有些人是一起登记上船的,而结伴上船的人有更高的生还率。

    1.7K20
    领券