Python办公自动化-Excel合并同类项内容

阅读本文大约需要2分钟

Python办公自动化-Excel合并同类项内容

Officetouch:办公如此轻松
主要内容:Excel办公自动化
【Python办公自动化-Excel合并同类项内容】适用人群:Python初学者,办公室人员,或有志从事数据分析工作的人员
准备内容:Anaconda
Python办公自动化-Excel合并同类项内容

摘要

今天Officetouch为大家带来关于Python办公自动化入门的知识 。不知大家有没有遇到过这样的问题:需要把Excel同类项的内容进行合并(比如上图左边“工号”相同的角色合并成右边这样用逗号隔开),我们可以在Excel上安装Power Query/Power Pivot插件来解决,但是操作有点繁琐,安装一个不常用的插件不说,还不太好理解 , 大家可以看下这种方式:

方案1、用Power Query的方式:(想用Python自动化解决方法,直接跳到方案3)

步骤1、安装Power Query插件;

步骤2、点击数据 — 自表格/区域,上传到PQ界面;

(如果上传后数据格式不是文本,需要先改一下数据类型)
Python办公自动化-Excel合并同类项内容

步骤3、主页 — 分组依据,分组依据如图所示;


Python办公自动化-Excel合并同类项内容

步骤4、将List.Sum([Invoice])改为Text.Combine([Invoice] 。

点击确定后,可以看到发票一列显示Error,因为文本格式是无法求和的 。改公式,将List.Sum([Invoice])改为Text.Combine([Invoice], "/"),然后按回车 。
Python办公自动化-Excel合并同类项内容



方案2、在Excel上用VB编程的方式:(想用Python自动化解决方法,直接跳到方案3)

原始数据如下,A列包含重复的姓名,B列是对应的不同数量或者说型号 。需要将A列数据去除重复值 , 并且将B列的同一个人的数量合并在一个单元格里并用逗号分开 。
Python办公自动化-Excel合并同类项内容

步骤1、将AB列的抬头,复制到CD列;


Python办公自动化-Excel合并同类项内容

步骤2、按Alt F11进入VBE界面;


Python办公自动化-Excel合并同类项内容

步骤3、选择【插入】-【模块】插入一个模块;


Python办公自动化-Excel合并同类项内容

Python办公自动化-Excel合并同类项内容



步骤4、在模块空白处粘贴下列代码:

Sub yy()Dim Arr, i&, d, Myr&Set d = CreateObject("Scripting.Dictionary")[c2:d65535].ClearMyr = [a65536].End(xlUp).RowArr = Range("a1:c" & Myr)For i = 2 To UBound(Arr)If Not d.exists(Arr(i, 1)) Thend(Arr(i, 1)) = Arr(i, 2)Elsed(Arr(i, 1)) = d(Arr(i, 1)) & "," & Arr(i, 2)End IfNextk = d.keyst = d.items[c2].Resize(d.Count, 1) = Application.Transpose(k)[d2].Resize(d.Count, 1) = Application.Transpose(t)End Su
Python办公自动化-Excel合并同类项内容



步骤5、返回excel界面,点击【开发工具】,插入一个按钮;


Python办公自动化-Excel合并同类项内容

步骤6、用鼠标左键在工作表中画出一个按钮 , 并指定宏至刚才插入的宏;


Python办公自动化-Excel合并同类项内容

Python办公自动化-Excel合并同类项内容



方案3、Python办公自动化的方式:

Officetouch今天为大家分享一个最简易的方法,从这个合并同类项内容开始,我们逐步学习办公自动化 。原表(person_role.xlsx)如下:
Python办公自动化-Excel合并同类项内容

步骤1、打开Anaconda-Spyder,粘贴如下代码,运行后打开“test.xlsx”就可以看到效果了:
import pandas as pddf = pd.read_excel("person_role.xlsx")df["角色"]=df["角色"].astype(str) #这一步在pycharm中是必要的df1=df.groupby(["工号","姓名"]).apply(lambda x:[",".join(x["角色"])])col1 = ["角色"]df2 = pd.DataFrame(df1,columns=col1)df2.to_excel("test.xlsx",sheet_name="sheet2")
Python办公自动化-Excel合并同类项内容

是不是很神奇?1个步骤就搞定了,用Python办公自动化确实提高了效率!
Python办公自动化-Excel合并同类项内容

结尾语

好了,今天大家学会如何用Python实现Excel合并同类项内容了吗?是不是激起了大家学习Python办公自动化的兴趣和斗志,Officetouch相信只要大家抱着解决工作和生活问题的决心,不久后我们就能成为职场高手 。
如果觉得有用的话,请帮忙点赞、关注、收藏哦,Officetouch感谢您的支持!

相关经验推荐