如何将一个单元格里面的内容按照一定规律拆分出来并且按照实际需求分类汇总好?


数据——分裂分隔符号下一步其他顿号下一步常规完成


右键——选择性粘贴——转置将横向的数据文本转置粘贴为纵向

CTRL+C选中A5:A8Ctrl+V

=CONCAT(IFERROR(--MID(B5,ROW($1:$10),1),""))Ctrl+SHIFT+ENTER

MID函数数组ROW($1:$10)分别提取出来--将汉字转换为错误值#VALUE!将错误值转化为空值CONCAT函数数字结合
ALT+F11插入-模块
Sub 拆分()
Dim i, irow, x, xrow As Integer
Dim arr
Dim cel As Range
Dim regexp As Object
irow = Sheet30.[a1].CurrentRegion.Rows.Count '获得源数据的行数
Sheet31.Range("a:b").Delete '语句循环时避免覆盖数据,sheet31为拆分后最终数据所在的工作表,大家以实际操作需求为准
For i = 1 To irow
arr = Split(Sheet30.Range("b" & i), "、") '将源数据b列每个有内容的单元格按照顿号拆分成一个从0开始的一堆数组
For x = 0 To UBound(arr) '数组的上标
xrow = Sheet31.Cells(Rows.Count, 2).End(xlUp).Row '结果工作表已使用单元格的行数
Sheet31.Cells(xrow, 2).Offset(1, 0) = arr(x) '把数组的值循环取出并赋值
Sheet31.Cells(xrow, 2).Offset(1, -1) = Sheet30.Cells(i, 1) '赋值套餐名称
Next
Next
Set regexp = CreateObject("vbscript.regexp") '创建一个正则表达式
With regexp
.Global = True
.Pattern = "[^0-9]" '匹配除数字以外的其他字符
For Each cel In Sheet31.Range("b2:b" & Sheet31.Cells(Rows.Count, 2).End(xlUp).Row)
cel.Offset(0, 1) = .Replace(cel, "") '遍历赋值
Next
End With
With Sheet31 '增加标题字段、居中对齐和自适应列宽
.[a1] = "套餐"
.[b1] = "菜名"
.[c1] = "价格"
.[a1].CurrentRegion.HorizontalAlignment = xlCenter
.Range("b1").EntireColumn.AutoFit
End With
End Sub

以上就是小包为大家总结的关于“将一个单元格里面的内容按照一定规律取出来并且按照要求分类汇总”的两个主要方法,关注小包,后面持续为小伙伴们分享更多的实用职场操作技巧。