excel,两张完全一样格式的A、B工作簿(里有多张工作表,只有数据不一致),如何做批量减法?
发布网友
发布时间:2022-04-26 02:52
我来回答
共5个回答
热心网友
时间:2023-10-05 09:15
你这个问题适合使用Power Query来解决,Power Query是Excel2016之后版本中的一个插件:
你之所以觉得无法下手,是因为你的数据需要做降维处理,变成三列,我想你的数据前面应该还有对应的一列,如果没有那就是两列,一列年龄段,一列数值,这些在Power Query中叫做逆透视,每个表都做这样的逆透视之后,使用合并查询,通过年龄段作为索引,把所有数据合并到一种表中,然后添加一列,直接用各个数据之间相减就可以了。
Power Query处理之后的数据可以直接加载到Excel表中
热心网友
时间:2023-10-05 09:15
Sub 同格式不同工作簿的工作表相减()
'首先每个表的数据要规则:如全部B列为开始数据,全部第1行为表头,且不得有空值(用0代替)
'运行前把两个工作簿全部打开
'把代码放在“模块”里
ThisWorkbook.Activate
Dim wkbA As Workbook, wkbB As Workbook, rngCLA As Range
Dim i&, rowStartA&, rowEndA&, colStartA&, colEndA&
rowStartA = 2 '每2行开始为数据区,第1行为表头
colStartA = 2 '第2列开始为数据区
Set wkbA = Workbooks("工作簿A.xlsx") '替换为实际名称,注意扩展名
Set wkbB = Workbooks("工作簿B.xlsx") '替换为实际名称,注意扩展名
For i = 1 To wkbA.Sheets.Count
rowEndA = wkbA.Sheets(i).Cells(Rows.Count, colStartA).End(xlUp).Row
colEndA = wkbA.Sheets(i).Cells(colStartA, Columns.Count).End(xlToLeft).Column
For Each rngCLA In Range(wkbA.Sheets(i).Cells(rowStartA, colStartA), wkbA.Sheets(i).Cells(rowEndA, colEndA))
rngCLA.Value = wkbB.Sheets(i).Cells(rngCLA.Row, rngCLA.Column).Value - rngCLA.Value
Next
Next
Set wkbA = Nothing
Set wkbB = Nothing
Set rngCLA = Nothing
End Sub
热心网友
时间:2023-10-05 09:16
excel的算法操作应该是只能在同一个工作薄里面操作的,在一个sheet里面,先进行一个减操作,然后选中得到结果的单元格右下角的小点,双击,可以把这个操作批量复制给这一行下面的所有同类型的数据。
热心网友
时间:2023-10-05 09:16
减法,是指想要计算什么的减法,无法理解你的涵义,不懂所以无法给出具体办法,请补充具体点的想法
热心网友
时间:2023-10-05 09:17
不大明白,把问题作为内容(游舰主题一定要包含“excel”,本人以此为依据辨别非垃圾游舰,以免误删),excel样表文件(尽量详细说明现状和目标效果)作为附件发到一流3油香:yqch134帮你看下