excel表格中如何把大表内的内容按班级拆分到另一个表格75

鱼鱼_306 |浏览654次
收藏|2021/11/25 21:17

满意回答

2021/11/25 21:35

教你个笨办法,不算快速,但很有效。1、将“大表”移动到最后2、选择“大表”,复制,放在最后面再见着选择“大表”及其后面的所有表,如上操作,进行复制,如此反复,直到复制数量等于所有班级的个数为止。3、重命名复制的表为:××学校××班4、在“××学校××班”的表中,建立自动筛选,在A列筛选“××学校”,在B列筛选“××班”。(完毕)

突突兔2019

其他回答(2)
  • 按你文字表达的意思: 使用筛选--复制--黏贴是最简单的方法如果要使用函数,那么需要你提供更加多地信息 最好是截图表达
    回答于 2021/11/25 22:03
  • 用VBA可以实现,为了方便请先把大表按“学校名称”“班级”排下序。(不排序的话,每分一个表就要查找十万行,会加大工作量,这里默认排好序)问题中所贴图没单元格的行和列的坐标,现假设如下:大表第一行为标题行,第2行开始为表格数据。A列为"序号",B列为"学校名称",C列为"班级",D列为"姓名",E列为"身份证号"准备工作完成,把下面VBA程序复制过去,当前工作表为大表中的数表据时,执行即可。'-----------------------------分隔线----------------------------Sub 按学校班级分类()Dim 原表 As Worksheet, 新建表 As WorksheetDim 学校 As String, 班级 As StringDim A As Long, B As LongSet 原表 = ActiveSheetOn Error Resume NextA = 1: B = 1Do DoEvents A = A + 1 If Len(原表.Range("B" & A)) = 0 Then MsgBox "分类完成!", vbInformation Exit Do End If If B = 1 Then1: 学校 = 原表.Range("B" & A) 班级 = 原表.Range("C" & A) Set 新建表 = Sheets(学校 & 班级) If Err.Number <> 0 Then Err.Clear Set 新建表 = Sheets.Add(, Worksheets(Worksheets.Count)) 新建表.Name = 学校 & 班级 新建表.Range("A1") = "序号" 新建表.Range("B1") = "学校名称" 新建表.Range("C1") = "班级" 新建表.Range("D1") = "姓名" 新建表.Range("E1") = "身份证号" B = 1: GoTo 2 Else MsgBox "工作表“" & 学校 & "”“" & 班级 & "”已存在,退出运行。", vbCritical Exit Sub End If Else If Not (原表.Range("B" & A) = 学校 And 原表.Range("C" & A) = 班级) Then GoTo 12: B = B + 1 新建表.Range("A" & B) = 原表.Range("A" & A) 新建表.Range("B" & B) = 原表.Range("B" & A) 新建表.Range("C" & B) = 原表.Range("C" & A) 新建表.Range("D" & B) = 原表.Range("D" & A) 新建表.Range("E" & B) = 原表.Range("E" & A) End IfLoopEnd Sub
    回答于 2021/11/25 21:54
0人关注该问题
+1

 加载中...