阅读本文大约需要2分钟
Officetouch:办公如此轻松
主要内容:Excel办公自动化
适用人群:Python初学者,办公室人员,或有志从事数据分析工作的人员
准备内容:Anaconda
今天Officetouch为大家带来关于Python办公自动化入门的知识。不知大家有没有遇到过这样的问题:需要把Excel同类项的内容进行合并(比如上图左边“工号”相同的角色合并成右边这样用逗号隔开),我们可以在Excel上安装Power Query/Power Pivot插件来解决,但是操作有点繁琐,安装一个不常用的插件不说,还不太好理解,大家可以看下这种方式:
(如果上传后数据格式不是文本,需要先改一下数据类型)
点击确定后,可以看到发票一列显示Error,因为文本格式是无法求和的。改公式,将List.Sum([Invoice])改为Text.Combine([Invoice], "/"),然后按回车。
原始数据如下,A列包含重复的姓名,B列是对应的不同数量或者说型号。需要将A列数据去除重复值,并且将B列的同一个人的数量合并在一个单元格里并用逗号分开。
Sub yy()\n Dim Arr, i&, d, Myr&\n Set d = CreateObject("Scripting.Dictionary")\n [c2:d65535].Clear\n Myr = [a65536].End(xlUp).Row\n Arr = Range("a1:c" & Myr)\n For i = 2 To UBound(Arr)\n If Not d.exists(Arr(i, 1)) Then\n d(Arr(i, 1)) = Arr(i, 2)\n Else\n d(Arr(i, 1)) = d(Arr(i, 1)) & "," & Arr(i, 2)\n End If\n Next\n\n\n k = d.keys\n t = d.items\n\n\n [c2].Resize(d.Count, 1) = Application.Transpose(k)\n [d2].Resize(d.Count, 1) = Application.Transpose(t)\nEnd Su
Officetouch今天为大家分享一个最简易的方法,从这个合并同类项内容开始,我们逐步学习办公自动化。原表(person_role.xlsx)如下:
步骤1、打开Anaconda-Spyder,粘贴如下代码,运行后打开“test.xlsx”就可以看到效果了:
import pandas as pd\n\n\ndf = pd.read_excel("person_role.xlsx")\ndf["角色"]=df["角色"].astype(str) #这一步在pycharm中是必要的\ndf1=df.groupby(["工号","姓名"]).apply(lambda x:[",".join(x["角色"])])\ncol1 = ["角色"]\ndf2 = pd.DataFrame(df1,columns=col1)\ndf2.to_excel("test.xlsx",sheet_name="sheet2")
是不是很神奇?1个步骤就搞定了,用Python办公自动化确实提高了效率!
好了,今天大家学会如何用Python实现Excel合并同类项内容了吗?是不是激起了大家学习Python办公自动化的兴趣和斗志,Officetouch相信只要大家抱着解决工作和生活问题的决心,不久后我们就能成为职场高手。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。