excel高手请进,从shet1自动到sheet2,如何实现!
发布网友
发布时间:2023-08-14 00:16
我来回答
共5个回答
热心网友
时间:2023-08-15 23:06
难点在设备编号处理,详细步骤:
1、只选中这三列“国别”、“名称”、“规格”
复制到sheet2
然后点击“数据”→“删除重复项”
2、在sheet2中,假设“国别”在A列,
D列标题填“数量”,E列标题填“编号”,F列标题填“记录数”
3、在sheet2的D2单元格输入公式,得到“数量”:
=SUMIFS(sheet1!D:D,sheet1!A:A,A2,sheet1!B:B,B2,sheet1!C:C,C2)
公式往下拉即可。
在sheet2的F2单元格输入公式,得到“记录数”:
=COUNTIFS(sheet1!D:D,sheet1!A:A,A2,sheet1!B:B,B2,sheet1!C:C,C2)
公式往下拉即可。
在sheet2的E2单元格输入“56221/56224-56225”
4、在sheet2的E3单元格输入公式,得到“编号”:
=IF(INDIRECT("sheet1!E"&(SUM(F$2:F2)+1))+F3-1=INDIRECT("sheet1!E"&(SUM(F$2:F3)+1)),INDIRECT("sheet1!E"&(SUM(F$2:F2)+1))&"-"&INDIRECT("sheet1!E"&(SUM(F$2:F3)+1)),"需手动更改编号,注意首尾编号有"&(INDIRECT("sheet1!E"&(SUM(F$2:F3)+1))-INDIRECT("sheet1!E"&(SUM(F$2:F2)+1))+1-F3)&"个间断号")
5、把sheet2的E列,有下列文字提示的单元格手动更改。
"需手动更改编号,注意首尾编号有n个间断号"
热心网友
时间:2023-08-15 23:06
难点是在编号,前面的用数组公式很容易实现的,前三项相同,而编号不同的最多会有多少个,
这里按5个做的,数组公式较多,如果数据量大,还是用VBA吧。
热心网友
时间:2023-08-15 23:07
Alt+F11打开VBE编辑器,插入模块,复制粘贴下面的代码。
编号连接的部分还没弄好,先看看效果
Sub ConTotal()
Dim FCol As Range, LCol As Range, NewFCol As Range
Dim myDic As Object, myKey, myItem
Dim myVal, myVal2, myVal3
Dim i As Long
Set FCol = ActiveSheet.UsedRange.Cells(1)
Set LCol = FCol.End(xlToRight)
Set NewFCol = LCol.Offset(0, 2)
Set myDic = CreateObject("Scripting.Dictionary")
Range(FCol, LCol).Copy NewFCol
myVal = Range(FCol.Offset(1, 0), Cells(Rows.Count, FCol.Column).End(xlUp)).Resize(, 5).Value
For i = 1 To UBound(myVal, 1)
myVal2 = myVal(i, 1) & "_" & myVal(i, 2) & "_" & myVal(i, 3)
If Not myVal2 = "_" Then
If Not myDic.exists(myVal2) Then
myDic.Add myVal2, myVal(i, 4)
Else
myDic(myVal2) = myDic(myVal2) + myVal(i, 4)
End If
End If
Next
myKey = myDic.keys
myItem = myDic.items
For i = 0 To UBound(myKey)
myVal3 = Split(myKey(i), "_")
Cells(i + FCol.Row + 1, NewFCol.Column).Value = myVal3(0)
Cells(i + FCol.Row + 1, NewFCol.Column + 1).Value = myVal3(1)
Cells(i + FCol.Row + 1, NewFCol.Column + 2).Value = myVal3(2)
Cells(i + FCol.Row + 1, NewFCol.Column + 3).Value = myItem(i)
Next
Set myDic = Nothing
End Sub
追问嗯 可以,编号尽快搞定,谢谢!
追答编号的部分没研究出来,考虑其他办法解决吧
热心网友
时间:2023-08-15 23:08
sheet2前三个字段可以根据sheet1名称删除重复项得到,数量可以用SUMIFS求得,编号只能手动了。追问手动的话就不问您了
追答又不要分类汇总,还不要手动, 我觉得你让别人给你做就可以了。
热心网友
时间:2023-08-15 23:08
全选数据,分类汇总,分类方式勾选:国别,名称,规格;汇总方式:求和;汇总列:数量,得出的分类汇总就是表2了
,你点击录制宏,然后手工分类汇总一次,然后停止录制,下次直接执行宏就行了