精华内容
下载资源
问答
  • 在做报表过程中,有时候会遇到同一个工作簿含有多张工作问题,比如有80张工作,要进行汇总和统计,需要引用每张工作数据。如果逐一进行复制粘贴,那是不可能的,时间不允许,怎么办呢?1、需要解决的...

    在做报表过程中,有时候会遇到同一个工作簿含有多张工作表问题,比如有80张工作表,要对它进行汇总和统计,需要引用每张工作表的数据。如果逐一进行复制粘贴,那是不可能的,时间不允许,怎么办呢?

    1、需要解决的问题。在这里为了方便起见,我提供一个比较简单的工作簿,来说明问题。这个工作簿记录了一家电器销售商店某个月5个分店的三种电器销售量。现在要对它们进行汇总,评定各分店业绩。打开工作簿文件,可以看到第一张工作表记录的第一分店的销售情况。

    2、插入一张新工作表。单击插入菜单,选择工作表。在底下的标签马上显示第六张工作表SHEET6,等一下我要把汇总情况放在这张表上。

    3、编辑新工作表。输入必要的内容,如下图所示。接下来,我要把每个点的销售数据汇总到这张表上,你可能会问,这有什么难度,复制粘贴就好了。好了,我给你100张工作表,让你去复制吧。我们做事要讲究效率。

    4、调用函数进行汇总。单击B2单元格,输入公式=INDIRECT("Sheet"&ROW(B1)&"!B2"),这个函数里嵌套一个行号函数ROW,"Sheet"&ROW(B1)相当于Sheet1,,括号内的字符串表示引用第一张工作表的B2单元格数据。输入好公式后按回车键确定。这时显示数据32。注意ROW(B1)=1。

    5、用填充柄向下复制公式,可以看到第二行的公式是=INDIRECT("Sheet"&ROW(B2)&"!B2"),就是说,在目标处,放入第二张表格的B2单元格数据,依此类推。注意ROW(B2)=2。

    6、洗衣机的列也一样,使用填充柄,由B2向右复制,然后把公式中的B2改成C2,row括号里的单元格自动改成了C1。按回车键确认。

    7、再次使用填充柄向下复制公式。最后一列的做法也一样。向右复制公式,把C2改变为D2即可。

    8、汇总结果。然后用填充柄向下复制公式。这是最后得到的汇总表。如果我们要对每一类电器销售量进行合计,可使用求和函数。

    9、分类合计。调用求和函数,选择好求和区域,按回车键。

    10、使用填充柄向右填充。

    11、对不同工作表数据求和。有时候我们不需要汇总表格所有数据,只需要了解某一电气的总销售量,怎么办呢?如图,单击B2单元格,输入公式=SUM(Sheet1:Sheet5!B2),意思是对第一张到第五张表格的B2单元格数据求和。按回车键。

    12、然后使用填充柄向右复制公式,可得其他电器销售总量。通过本例的操作,你一定了解了如何对不在同意工作表的数据进行调用和计算的方法。excel函数功能很强大,系统提供的示例往往比较简单,难以应付各种复杂的情况。所以把这个问题提出来,对大家很有帮助。

    相关推荐:

    展开全文
  • 目标是将所有表格内容相同表头内容统计到一个表内。由于Excel表格内容数据量巨大,如果使用人力的手段,工作量巨大,并且容易出错(预估工作量3天)。所以决定使用PythonExcel进行自动处理,实现一键导出目标Excel的...

    最近的工作遇到一个需求,整理多个相同格式但是不标准的Excel表格,最终汇总成一个Excel表格,并进行数据透视分析。

    表格内涉及到合并的单元格,不同表格表头位置有偏差等问题。目标是将所有表格内容相同表头内容统计到一个表内。由于Excel表格内容数据量巨大,如果使用人力的手段,工作量巨大,并且容易出错(预估工作量3天)。所以决定使用Python对Excel进行自动处理,实现一键导出目标Excel的目的。

    大致步骤:Python学习交流群:1004391443

    1.安装Python3,pip工具环境

    2.安装xlrd和xlwt

    3.读取所有源Excel文件

    4.将读取到的Excel信息组织到新的Excel对象中

    5.数据缓存和分析

    6.向新Excel对象中追加分析结果

    7.将新Excel对象保存为目标输出文件(最终想要的文件)

    1.对于Python环境的安装本文不做说明。

    2.安装Python扩展包有不同的方式,这里使用pip命令安装xlrd和xlwt。

    在Windows下,打开命令提示符(控制台),cd python的安装路径下Scripts文件夹下(在这里有pip命令执行工具)。或者将该路径添加到系统环境变量。

    xlrd:读取Excel的扩展包

    执行:pip install xlrd

    xlwt:写入Excel的扩展包

    执行:pip install xlwt

    随便写一个py文件写入import xlrd, xlwt 执行该文件不出错说明安装成功。

    或者打开python自带的编辑器进行输入测试。

    3.具体代码如下# -*- coding: utf-8 -*-import xlrdimport xlwtimport sys

    def read(file_list):

    # 创建新的workbook out_work_book = xlwt.Workbook(encoding = 'utf-8') # 为了将多个文件的相同表头的sheet和并到一个sheet内,定义新sheet写入的行号位置 out_work_book_rows = [0,0]

    # 取得传入的文件列表 (第一个参数为脚本名字) for file_name in file_list[1:]: # 打开文件 workbook = xlrd.open_workbook(file_name) # 取得当前文档的sheet列表 sheet_names = workbook.sheet_names()

    for sheet_idx in range(len(sheet_names)): sheet_name = sheet_names[sheet_idx] # sheet = workbook.sheet_by_index(sheet_idx) sheet = workbook.sheet_by_name(sheet_name)

    # sheet.row_values(n) 获取整行数据 # sheet.col_values(n) 获取整列数据

    # 获取行数 rows_count = sheet.nrows # 获取列数 cols_count = sheet.ncols # 存储写入的列数 write_col_count

    # 创建新的sheet if len(out_work_book_sheet) <= sheet_idx: out_work_book_sheet[sheet_idx] = out_work_book.add_sheet('sheet' sheet_idx)

    # 写入sheet for curr_col_num in range(cols_count) # 当前列的内容 col = sheet.col_values(curr_col_num) # 遍历当前列的所有选项 for index in range(len(col)) # 当前列第index的内容 value = col[index] # 在写入的sheet的行号上,加入上一个表写到的位置行号,继续向后追加内容 out_work_book_sheet[sheet_idx].write(out_work_book_rows[sheet_idx] index, write_col_count, value) write_col_count out_work_book_rows[sheet_idx] = cols_count # 输出目标文件 out_work_book.save('out.xls')if __name__ == "__main__": read(sys.argv)

    4.针对合并的单元格,上述代码会出现合并单元格只有一个格子有内容其余为空的情况。这种情形,现将当前sheet表格内所有合并单元格数据保存下来,当遇到属于合并单元格的部分,则默认选取该合并单元格的第一个格子的数值即可。代码如下:def get_merged_cells_value(sheet, row_index, col_index):

    # 获得当前sheet的所有合并单元格数据 merged = sheet.merged_cells # 判断给定的单元格,是否属于合并单元格,如果是合并单元格,就返回合并单元格的内容 for (rlow, rhigh, clow, chigh) in merged: if (row_index >= rlow and row_index < rhigh): if (col_index >= clow and col_index < chigh): cell_value = sheet.cell_value(rlow, clow) return cell_value return None

    5.数据缓存可以利用python中的容器,和对象结构,将Excel中的数据对象化,在读取时候进行实例化然后进行保存。在需要进行数据分析的时候利用。

    6.在遇到特殊的表格格式的时候,读取的内容可能在转存的时候出现类型错误,导致无法识别。例如时间类型,正确显示需要按特定格式进行读取并且转换。

    表格类型说明: table.ctype

    0 empty

    1 string

    2 number

    3 date

    4 boolean

    5 error

    代码如下:from datetime import datetime,date

    def get_merged_cells_value(workbook, sheet, row_index, col_index):

    # 获得当前sheet的所有合并单元格数据 merged = sheet.merged_cells # 判断给定的单元格,是否属于合并单元格,如果是合并单元格,就返回合并单元格的内容 for (rlow, rhigh, clow, chigh) in merged: if (row_index >= rlow and row_index < rhigh): if (col_index >= clow and col_index < chigh):

    if sheet.cell(rlow, clow).ctype == 3: date_value = xlrd.xldate_as_tuple(sheet.cell(rlow, clow), workbook.datemode) # 转换显示格式为2019/05/05 cell_value = date(*date_value[:3]).strftime('%Y/%m/%d') else: cell_value = sheet.cell_value(rlow, clow) return cell_value return None

    7.最终,我们写一个windows下的bat批处理文件或者在linux下写一个shell,将文档名字作为参数传入执行即可。

    到此我利用程序完成了几天的工作,还可以在以后相同的使用环境下更快速的完成工作。

    展开全文
  •  是一个直接读取Excel文件,通过简单配置自动将多Excel文件、多工作合并汇总到数据库;   是一个基于Excel的自定义管理软件平台;   是一个工作流系统,可以让孤立的业务单据以多用户协同的方式流转起来;...
  • excel快速合并,多表一次搞定

    热门讨论 2010-09-27 11:06:10
    参加汇总的工作可以在一个Excel文件中,也可以在不同Excel文件中。您不需要编写任何Excel公式就能实现Excel表格数据的快速高效汇总,尤其适合参加合并的Excel文件数目不定,不便使用公式的情况。 2)从格式相同的...
  • 相信大家在进行数据汇总的时候,对一份工作簿中的多工作...我们需要在汇总中将对应人员5数据进行汇总求和。这里就涉及到对5工作的引用。下面我们就来学习Indirect函数3种不同工作名称下的引用操作。案...

    d29cc119e6d93df825ff6e209b50c557.gif

    相信大家在进行数据汇总的时候,对一份工作簿中的多个工作表数据进行多表汇总,相信这个问题绝大多数人都碰到过。对于多工作表数据的引用,许多同学还是不知道如何操作。

    cd92a4a9196c53a4ef29978218937095.gif

    如上图所示,表格中有1-5月5个月的工资数据,每个工作表里面的人数是不固定的。我们需要在汇总表中将对应人员5个月数据进行汇总求和。这里就涉及到对5个工作表的引用。下面我们就来学习Indirect函数3种不同工作表名称下的引用操作。

    案例一:Indirect函数对以数字命名的工作表进行多表引用

    1e5cf7d94d6e5ef7c0e475d173fb0d3e.png

    案例说明:对1-5月5个工作表的数据进行求和

    函数公式:

    =SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$5)&"!A:A"),B6,INDIRECT(ROW($1:$5)&"!c:c")))

    函数解析:

    1、在进行多工作表数据条件求和的时候,我们需要用到Indirect函数进行多表引用,sumif函数进行条件求和,sumproduct函数进行数组求和。也就是三个函数进行嵌套运用;

    2、Indirect函数进行以数字命名的多表引用时,利用INDIRECT(ROW($1:$5)&"!A:A")可以直接调用1-5个工作表中的A列数据。

    案例二:Indirect函数对数字+文本命名的多工作表进行数据求和

    cac4cff32d5e9f5647145b47dd922f3f.png

    案例说明:工作表名称为分别为1月、2月、3月、4月、5月,以数字+文本的形式组成。

    函数公式:

    =SUMPRODUCT(SUMIF(INDIRECT((ROW($1:$5)&"月")&"!A:A"),B3,INDIRECT((ROW($1:$5)&"月")&"!c:c")))

    函数解析:

    1、在这种数字+文本形式的多工作表引用中,Indirect函数引用时需要将数字和文本分别。ROW函数只引用数字,然后用&符号进行连接对于的文字即可实现多表引用。

    现在你学会如何利用Indirect函数进行多工作表数据引用了吗?

    精彩内容推荐
    推荐文章

    两份Word文档内容差异核对,你加班2小时同事只需五秒钟

    推荐文章

    Excel三步搞定蓝底证件照,证件照颜色任意切换,不用担心不会PS了

    推荐文章

    条件判断还用IF函数就out了,Text这两组函数公式简单更易懂

    推荐文章

    Excel按文件名制作目录,你复制粘贴花两小时,同事十秒搞定

    62de13347f56317106f3360ea5aa61a1.png

    展开全文
  • 真正能用的EXCEL汇总专家4.1绿色版

    热门讨论 2011-01-25 08:43:48
    参加汇总的工作可以在一个Excel文件中,也可以在不同Excel文件中。您不需要编写任何Excel公式就能实现Excel表格数据的快速高效汇总,尤其适合参加合并的Excel文件数目不定,不便使用公式的情况。 2)从格式相同的...
  • 数据如下:成绩表一:成绩表二:成绩表三:要把所有科目的成绩合并到一个表,如下:要如何做呢?注意到各个表格的姓名栏顺序未必是一致的,不能简单的把各表的数据直接复制到汇总表。看代码:var app = GetObject(''...

    上一篇文章介绍了如何对多个表格进行纵向合并(各表格栏目相同),本篇文章介绍如何快速进行横向合并(各表格栏目不同)。

    数据如下:

    成绩表一:

    87859cd96a897d7855995cb58646da73.png

    成绩表二:

    78deb2f743885d4155277bba7b9afd3c.png

    成绩表三:

    87eebea1abdd3854399a4f22d8cb998a.png

    要把所有科目的成绩合并到一个表,如下:

    02f6a374075bed4e9b736a288f533681.png

    要如何做呢?注意到各个表格的姓名栏顺序未必是一致的,不能简单的把各表的数据直接复制到汇总表。

    看代码:

    2848a863af9b5bfe0368be8c4443df34.png

    var app = GetObject('', 'KET.Application')

    var sheets = app.ActiveWorkbook.Sheets

    var arr = {}; //arr用于保存合并的数据

    var range = sheets(1).UsedRange; //取得第一个表的数据区

    var titles = range.Rows(1).Value.toArray(); //将第一个表的所有标题保存到titles数组

    for (var row = 2; row <= range.Rows.Count; row++) {

    //将第二行起的数据以姓名为key保存到一个对象得到

    arr[range.Cells(row, 1).Value] = range.Rows(row).Value.toArray();

    }

    /*arr = {

    name1: [name1, 分数1, 分数2, ...],

    name2: [name2, 分数1, 分数2, ...],

    }

    */

    for (var i = 2; i <= sheets.Count - 1; i++) {

    range = sheets(i).UsedRange;

    //把其余各表标题栏追加到titles

    titles = titles.concat(range.Rows(1).Value.toArray().slice(1));

    for (var row = 2; row <= range.Rows.Count; row++) {

    //把其余各表的数据追加到arr, 每行的第1格不追加

    arr[range.Cells(row, 1).Value] = arr[range.Cells(row, 1).Value].concat(range.Rows(row).Value.toArray().slice(1));

    }

    }

    var sheet = sheets("汇总表");

    //设置表头

    sheet.Range(sheet.Cells(1, 1), sheet.Cells(1, titles.length)).Value = arrayToSafeArray(titles);

    var row = 2;

    //根据姓名,逐行增加成绩

    arr.keys().forEach(function(key) {

    sheet.Range(sheet.Cells(row, 1), sheet.Cells(row, titles.length)).Value = arrayToSafeArray(arr[key]);

    row++;

    })

    把脚本在万能脚本工具中打开执行即可得到

    241e16f7f04ad44c1d387ea3eaee49ae.png
    展开全文
  • 智能提示,自动输入父节点,自动输入日期时间,自动计算公式,自动换行,自定义活动单元格移动解决方案,保证了您在录入数据时的畅通无阻,您再也不需要通过一个对话框来编辑数据,也不会再有Excel中的不方便的换行...
  • 目标是将所有表格内容相同表头内容统计到一个表内。由于Excel表格内容数据量巨大,如果使用人力的手段,工作量巨大,并且容易出错(预估工作量3天)。所以决定使用PythonExcel进行自动处理,实现一键导出目标Excel...
  • 目标是将所有表格内容相同表头内容统计到一个表内。由于Excel表格内容数据量巨大,如果使用人力的手段,工作量巨大,并且容易出错(预估工作量3天)。所以决定使用PythonExcel进行自动处理,实现一键导出目标Ex...
  • 技巧107 合并单元格数据进行排序 技巧108 快速删除空行 技巧109 快速制作工资条 技巧110 次性删除所有的重复数据 第四篇 数据查询 第12章 自动筛选 技巧111 数据列表的局部启用自动筛选 技巧...
  • 目标是将所有表格内容相同表头内容统计到一个表内。由于Excel表格内容数据量巨大,如果使用人力的手段,工作量巨大,并且容易出错(预估工作量3天)。所以决定使用PythonExcel进行自动处理,实现一键导出目标Excel...
  • 表格数据汇总、全自动检索录入、数据采集大师、批量改图片大小、批量图片导入、批量图片导出、批量导图入批注、图片查询、截长图与分页截图、批量图片排序大师、批量图片格式转换、批量文字水印与Logo水印、批量取...
  • 目标是将所有表格内容相同表头内容统计到一个表内。由于Excel表格内容数据量巨大,如果使用人力的手段,工作量巨大,并且容易出错(预估工作量3天)。所以决定使用PythonExcel进行自动处理,实现一键导出目标Ex...
  • 目标是将所有表格内容相同表头内容统计到一个表内。由于Excel表格内容数据量巨大,如果使用人力的手段,工作量巨大,并且容易出错(预估工作量3天)。所以决定使用PythonExcel进行自动处理,实现一键导出目标Excel的...
  • 目标是将所有表格内容相同表头内容统计到一个表内。由于Excel表格内容数据量巨大,如果使用人力的手段,工作量巨大,并且容易出错(预估工作量3天)。所以决定使用PythonExcel进行自动处理,实现一键导出目标Excel的...
  • 表格数据汇总、全自动检索录入、数据采集大师、批量改图片大小、批量图片导入、批量图片导出、批量导图入批注、图片查询、截长图与分页截图、批量图片排序大师、批量图片格式转换、批量文字水印与Logo水印、批量取...
  •  实例107 使用哈希表对XML文件进行查询 127  实例108 计算两个矩形矩阵的乘积 129  第5章 面向对象编程技术 131 5.1 属性和方法 132  实例109 使用属性存储用户编号和姓名 132  实例110 通过定义方法求...
  • 7、支持同一文档多种版面格式打印(类似于Word中的节的功能):同一份文档,不同的页面可以设置不同的格式(纸张大小、纸张方向、页边距),只需要在新增页时在NewPage方法中指定要使用的页面格式即可,使用非常...
  • Excel新增工具集

    2011-12-20 09:30:27
    执行此命令能够为某一列的重复数据(包含汉字同音)染色,并且不同的重复数据不同颜色,还可以把这些重复数据导出到一个新的工作中。例如:可以将重名学生染同色,并可以导出到新的工作中保存。 2、某列重复...
  • 用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格中的组合 求拆解合并公式 如何把字母和数字分开? 把...
  • 实例114 将多个Excel文件汇总到一个Excel文件 第2篇 ASP.NET数据库应用篇 第5章 ADO.NET数据库操作技术 5.1 一切从我开始:建立Connection数据库连接 实例115 建立Access数据库连接 实例116 与加密后的Access...
  • 实例244 ListBox控件中的数据进行排序 实例245 在ListBox控件中查找指定项 实例246 将数据库数据添加组合框中 实例247 在ListBox控件间交换数据 实例248 借助绑定控件实现数据选择录入 11.6 ListView控件...
  • 实例244 ListBox控件中的数据进行排序 实例245 在ListBox控件中查找指定项 实例246 将数据库数据添加组合框中 实例247 在ListBox控件间交换数据 实例248 借助绑定控件实现数据选择录入 11.6 ListView控件...
  • 实例244 ListBox控件中的数据进行排序 实例245 在ListBox控件中查找指定项 实例246 将数据库数据添加组合框中 实例247 在ListBox控件间交换数据 实例248 借助绑定控件实现数据选择录入 11.6 ListView控件...
  • 《C#开发实例大全(基础卷)》筛选、汇集了C#开发从基础知识高级应用各个层面约600实例及源代码,每实例都按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析解读。全书分6篇共25章,主要...
  • EXCEL函数公式集

    热门讨论 2010-03-16 03:26:38
    用连字符“&”来合并文本怎样把不同格式不同位置的内容合并到一个单元格内 把不同单元格的内容合到一个单元格里 合并与拆分 合并不同单元格的内容 关于文字在表格中的组合 求拆解合并公式 如何把字母和数字分开? 把...
  • 18、类似EXCEL,提供自动合计功能,可以选择一个范围或几个离散的单元格,状态栏将显示合计数 19、类似EXCEL,提供强大的查找功能,可以设置查询范围、匹配条件、搜索方向、区分大小写等 20、可以将凭证、账簿等...
  • 实例156 向数据表中插入数据的方法 实例157 数据修改的方法 实例158 数据删除的方法 实例159 数据分页的方法 实例160 结果集进行分页的方法 实例161 关闭数据库的方法 实例162 数据库事务处理的方法 实例...

空空如也

空空如也

1 2 3 4
收藏数 80
精华内容 32
关键字:

对不同表格数据进行汇总到一个表