![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Excel+Python
文章平均质量分 66
cyber_1987
专注数据的数据分析师,以Python、VBA、Power query为主
展开
-
【Python】通报和点评自动化
这次自动化需求,主要是需要点评,用Excel很难办到,SQL和VBA都可以,但要写很多很多脚本,所以思前想后还是用Python吧。原创 2022-06-03 22:20:20 · 689 阅读 · 3 评论 -
利用Python做excel文本合并(根据左侧单元格,快速合并右侧单元格内容)
前言:昨天获得一个数据处理的小需求,比较简单,用VBA也能做,不过最近Python用的比较多,所以用Python写了,效率也很快。需求:有一张总表,如下图所示需要根据左侧的工号和姓名,合并右侧获奖情况,结果如下图解决思路:其实比较简单,在leetcode里应该是最简单的初级题目,但是考虑到时间复杂度,如果用两层循环遍历的话,数据量大起来效率会很低,所以我使用了Pandas里面的筛选功能,基本在4秒内就完成了整个数据处理工作(数据量1700条)代码:import pandas as pdi原创 2021-06-11 09:54:08 · 1252 阅读 · 2 评论 -
Pandas:将钉钉的日报清单进行提取和整理
前言:虽然大家一直诟病钉钉,但不可否认钉钉这个软件本身还是很强大的,日报也是与微信相比比较突出的一个功能。通过PC端钉钉,可以把一段时间内的日报批量导出,但是因为是清单格式,所以看起来并不是特别方便,所以我就想把它改成类似于下面的形式:姓名3月1日3月2日3月3日张三未交日报内容1日报内容2李四日报内容3日报内容4未交本来以为会很复杂,但是Pan...原创 2020-03-24 14:07:58 · 1690 阅读 · 0 评论 -
Pandas:用Python做日报(重构)
之前的日报是通过Python+VBA+Power BI三者结合做出来的,有人提出来是否可以全部用Python来实现。所以尝试了两天,理论上是可以实现的,但是结合在一起会比较累,而且Power Query虽然用起来会有点卡,但是可视化拖曳操作真心方便,维护也简单,所以做了一半放弃了。目前已实现功能:1、单份清单的数据处理(merge、昨日数据提取、pivot_table等);2、门店维度的日...原创 2019-11-20 09:22:14 · 2216 阅读 · 4 评论 -
Python:小试牛刀,用Pandas做日报
前言:之前一直用PQ和VBA来做日报,最近学了pandas,想试试看用pandas来做需要多久。花了一整个白天,才把大概的日报写完了(用pq的话大概只要1-2个小时,又一次证明了pq是多么伟大的发明啊!),本来以为要很多代码行,但实际操作下来还好,出去注释不超过150行,当然还有很多地方需要优化,总代码量应该能保持在300行以内。数据源:报表结果:具体代码:import pandas...原创 2019-04-28 21:20:50 · 1368 阅读 · 7 评论 -
Python:根据起始序号和步长(终止序号)复制多个单元格内容
前言:有一个蛮好玩的需求,根据起始序号和步长(终止序号)复制多个单元格内容,并保存为新的Sheet原始表:结果表:实现起来很容易,2个遍历循环,如果不考虑复杂因素的话,vba 20行内解决,Python也差不多,正好我对类一直比较陌生,所以就用这个小脚本练练手~全部代码如下:from win32com.client import Dispatchfrom os import pat...原创 2019-03-26 12:35:00 · 621 阅读 · 0 评论 -
Python:自动获得排名第一和最后一名的门店/代理商/分局名称并组合成邮件正文
领导觉得我发的邮件太过苍白,缺少总结,希望能像下面这样:但我Excel里的内容是这样的:让我一个个看?不存在的,眼睛看瞎了不说,还可能会看错。还是用Python来解决吧!(PS:其实用Excel辅助sheet用vloopup也可以解决,但是我还是喜欢Python啦~~)from win32com.client import Dispatchfrom os import pathimp...原创 2019-03-12 09:46:08 · 319 阅读 · 0 评论 -
Python:pywintypes.com_error: -2147221021,'操作无法使用'的解决办法
之前用win32com.client一直很正常,但是昨天下午突然崩了,一直提示:pywintypes.com_error: <-2147221021,'操作无法使用’的解决办法。往下看,发现错误代码进一步为:pywintypes.com_error: <=2147221164, ‘没有注册类’网上找了一下解决办法,基本都只说了一部分,我归纳总结一下:1、不是64、32位的问题,因...原创 2019-03-20 10:14:52 · 23870 阅读 · 1 评论 -
Python:通过API获得2019年节假日并自动排班
前言:翻到了一位大神做的节假日api,https://blog.csdn.net/xinit1/article/details/72833988 作者:xinit1获取指定日期的节假日信息1、接口地址:http://api.goseek.cn/Tools/holiday?date=数字日期2、返回数据:正常工作日对应结果为 0, 法定节假日对应结果为 1, 节假日调休补班对应的结果为 2,...原创 2019-03-14 10:38:07 · 7800 阅读 · 5 评论 -
Python:根据一定的规则随机抽取一定的人参加考试
前言:同事给了我一个看起来并不简单的活,根据一定的规则随机抽取一定数量的人参加下次考试,为什么我觉得不容易呢?规则如下:60-69分:该人员继续参加下月考试;70-79分:无;80-89分:该人员下月免试;90分以上:该人员所在门店下月免试(若当月同门店有其他参考人员且分数低于70分,该人员免试但取消该门店免试资格)。直接用excel公式几乎不可能,条件太多了;我又想用VBA来做(虽然...原创 2019-02-16 09:21:06 · 2559 阅读 · 0 评论 -
Python:通过地址获得经纬度并判断离得最近的门店
前言:代码部分其实不难,短短80行左右的代码就能完成,甚至还可以进一步简化。真正的难点在于标准化地址的获得(也就是数据清洗),只要有一些误差就会千差万别。import requestsimport openpyxlfrom math import radians, cos, sin, asin, sqrtdef getjwd(address): '''根据地址获得经纬度'''...原创 2019-01-24 10:31:04 · 2359 阅读 · 0 评论 -
关于双重for循环在列表和字符串中运用的一些案例思考
案例一:有一个excel中有一列有很多行,另外有一个列表,要判断列表中的元素在这么多行中出现的次数,可以用下面的方法:# coding=gbkimport openpyxldef counttime(action): time = 0 #这边time是内循环,且用函数封装了,保证了每次重新调用time都会是从零开始 for i in range(2, maxrow + 1)...原创 2019-01-03 21:48:44 · 502 阅读 · 1 评论 -
通过VBA和Python把excel的结果数据转化成word点评
前言:我有一项月度工作,需要对代理商进行指标分析,有十几个指标,每个指标有一定的比例,最后得出每个代理商的分数和排名。成品的样子是这样的:但是到这里仅仅是excel,领导觉得还不够,需要转化为word的点评,成本是这样的:如果光靠手动写的话,不仅需要很长时间,而且还很容易出错,所以我第一步做了一个辅助sheet,使得结果能够根据标准得出具体的文字:其中C1的数值是做了有效性,可以根据筛...原创 2018-11-25 10:34:41 · 2034 阅读 · 1 评论 -
通过读取excel文件挑选多个文件夹中的照片并集中
一个小程序,就不用自定义函数了,难看就难看点吧import osfrom win32com.client import Dispatchfrom shutil import copyfile#获取路径this_path = os.path.abspath('.')excel_path = this_path + '\上海电信通讯录.xlsx'pic_path = this_path...原创 2018-11-22 21:16:44 · 1306 阅读 · 0 评论 -
【Python】一键完成报表制作、报表发送、清单发送和微信通报
import smtplib #邮件from email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.base import MIMEBase #附件from email import encoders #转码from datetime import date...原创 2018-11-15 10:33:44 · 4023 阅读 · 0 评论 -
如何通过python结合excel中的VBA和PQ做日报
vba是excel的老牌工具,PQ(power query)则是2013以来excel最伟大的更新,可以说100万以下的数据,用PQ&amp;amp;amp;amp;amp;gt;vba=Python(100万以上当然是Python+mysql了)PQ的使用核心在于通过外部链接数据源,用“全部刷新”,进而获得最新的数据而刷新完成后,可以结合VBA(也就是宏),把后续的工作一步完成但是全部刷新的动作属于后台操作,而且不同的电脑、不同...原创 2018-11-13 22:17:39 · 4149 阅读 · 0 评论