谢邀,这是个非常常见的需求,解决起来也非常容易。下面用分别用excel和python演示一下如何操作。
先建立了一个和题主工作簿类似的甲乙两个excel文件,每个文件包含3个sheet,其实不管几个文件,几个sheet,操作都是一样的。
先看下用excel怎么做
新建一个文件,依次选择“数据”-“新建查询”- “从文件”-“从文件夹”,然后选择待合并的文件所在文件夹。
在弹出话框中依次点击“合并”和“合并和编辑”,然后点击“示例文件参数1”-“确定”
按住CTRL同时选中Source.Name与Data这两列,删除其他列。
然后将数据展开。
因为题主的表第一行都有个标题,所以要除第一行。跳出对话框中输入1,按确定。
再将第一行用作标题。
点击序号边的筛选按钮,筛选掉重复的标题行。
给显示“甲”、“乙”这列改个名,比如“来源”。
加载为连接。至此,拼合多张表的工作已经完成。接下来统计各课程数量。
依次点击“插入”-“数据透视表”,然后选择刚刚加载的查询,“打开”并“确定”。
依次把字段“微课类型”、“来源”、“课件数量”拖放至“行”“列”“值”便轻松得到统计结果。
python做起来会更容易一点
十来行代码就可以出结果了。代码如下
import pandas as pd
from pathlib import Path
def read_sheet(file, sheet):
df = pd.read_excel(file, sheet, skiprows=1)
df[‘来源’] = file.name
return df
path = Path(‘f:/workbooks’)
df = pd.concat((
read_sheet(file, sheet)\
for file in path.iterdir()\
for sheet in range(3)\
))
df.pivot_table(values=’课件数量’, index=’微课类型’, columns=’来源’, aggfunc=sum)
希望可以帮助到你。