ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 3117|回复: 11

[已解决] 多个文件夹中的同名表格统计信息

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-7-22 10:21 | 显示全部楼层 |阅读模式
如附件,从每个文件夹中的【营运中心】中的【表1】把(何飞燕)的(实发工资)金额提取出来到一张新的excel表格当中,按照月份列式,求大神帮助感激不尽。(不需要统计表2的何飞燕工资。)

需要的信息

需要的信息

模拟结果

模拟结果

工资表.zip

77.66 KB, 下载次数: 7

从工资表中提取出所需模拟结果

TA的精华主题

TA的得分主题

发表于 2018-7-22 11:37 | 显示全部楼层
同样的问题,没必要发几次贴,贪获取经验吗?打怪升级?呵呵

TA的精华主题

TA的得分主题

发表于 2018-7-22 12:29 | 显示全部楼层
windows 下路径改成"\\"
  1. import os
  2. import pandas as pd

  3. os.chdir('工资表所在绝对目录')
  4. df=pd.DataFrame()
  5. folders=os.listdir('工资表')
  6. for folder in folders:
  7.     file='工资表'+'/'+folder+'/'+'营运中心.xlsx'
  8.     data=pd.read_excel(file,sheetname='表1',skiprows=[0,1])
  9.     result=data[data['姓名']=='何飞燕'][['姓名','实发工资']]
  10.     result['文件夹名']=folder
  11.     df=pd.concat([df,result],ignore_index=True)
  12. df.sort_values('文件夹名')
  13. df.to_excel('out.xlsx',index=False)
复制代码

TA的精华主题

TA的得分主题

发表于 2018-7-22 12:30 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-22 14:49 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
sheeboard 发表于 2018-7-22 12:29
windows 下路径改成"\\"

C:\Users\staryu\Desktop变成这样了,是哪里出问题了吗
微信图片_20180722144823.png

TA的精华主题

TA的得分主题

发表于 2018-7-22 15:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
staryu840 发表于 2018-7-22 14:49
变成这样了,是哪里出问题了吗

这个是python的脚本,下一个python,装一下pandas库。windows路径是“\”,而 \ 是转义符,所以要用“\\”。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-22 15:33 | 显示全部楼层
sheeboard 发表于 2018-7-22 15:14
这个是python的脚本,下一个python,装一下pandas库。windows路径是“\”,而 \ 是转义符,所以要用“\\ ...

谢谢大神,我去试试看

TA的精华主题

TA的得分主题

发表于 2018-7-22 19:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
Sub gj23w98()
    tms = Timer
    Application.ScreenUpdating = False: Application.DisplayAlerts = False
    Dim arr(), crr(1 To 1000, 1 To 3)
    Sheet1.[a1].CurrentRegion.Offset(1).ClearContents
    mypath = ThisWorkbook.Path & "\工资表\"
    myfile = Dir(mypath, vbDirectory)
    Do While myfile <> ""
        If myfile <> "." And myfile <> ".." Then
            If (GetAttr(mypath & myfile) And vbDirectory) = vbDirectory Then
                m = m + 1
                ReDim Preserve arr(m)
                arr(m) = mypath & myfile & "\"
            End If
        End If
        myfile = Dir
    Loop
    For j = 1 To m
        myfile = Dir(arr(j) & "营运中心.xlsx")
        While myfile <> ""
            Set wb = CreateObject(arr(j) & myfile)
            With wb.Sheets(1)
                brr = .[a1].CurrentRegion
                For i = 4 To UBound(brr)
                    If InStr(brr(i, 1), "何飞燕") Then
                        n = n + 1
                        crr(n, 1) = brr(i, 1)
                        crr(n, 2) = brr(i, 21)
                        crr(n, 3) = Split(arr(j), "\")(6)
                    End If
                Next
            End With
            wb.Close
            myfile = Dir()
        Wend
    Next
    [a2].Resize(n, 3) = crr
    Set wb = Nothing
    Application.ScreenUpdating = True: Application.DisplayAlerts = True
    MsgBox Format(Timer - tms, "何飞燕实发工资并查询成,耗时:0.00秒"), 64, "温馨提示"
End Sub

TA的精华主题

TA的得分主题

发表于 2018-7-22 19:09 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
附件供测试:

0722006.rar

85.98 KB, 下载次数: 22

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-7-23 17:51 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-10 21:30 , Processed in 0.027372 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表