ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何依缺陷描述进行缺陷数量重分类?

如何依缺陷描述进行缺陷数量重分类?

作者:绿色风 分类: 时间:2022-08-17 浏览:123
楼主
liuguansky
Q: 如何依缺陷描述进行缺陷数量重分类?
A: 如下代码可以实现:
  1. Sub JustTest()
  2.     Dim Arr, d As New Dictionary, ArrR(), BadN%, i&, Ar, j As Byte, St1$, St2$
  3.     Arr = Range("l1:l" & Cells(Rows.Count, "l").End(3).Row).Value
  4.     With CreateObject("vbscript.regexp")
  5.         .Global = True
  6.         .MultiLine = True
  7.         For i = 2 To UBound(Arr, 1)
  8.             If Len(Arr(i, 1)) Then
  9.                 If UBound(Split(Arr(i, 1), "/")) >= UBound(Split(Arr(i, 1), ";")) Then
  10.                     Ar = Split(Arr(i, 1), "/")
  11.                 Else
  12.                     Ar = Split(Arr(i, 1), ";")
  13.                 End If
  14.                 For j = 0 To UBound(Ar)
  15.                     .Pattern = "(.*[^\d])(\d+)$"
  16.                     If .test(Ar(j)) Then
  17.                         St1 = .Execute(Ar(j))(0).submatches(0)
  18.                         St2 = .Execute(Ar(j))(0).submatches(1)
  19.                         .Pattern = "[;/::]"
  20.                         If .test(St1) Then St1 = .Replace(St1, "")
  21.                         If Not d.Exists(St1) Then
  22.                             BadN = BadN + 1
  23.                             d.Add St1, BadN
  24.                             ReDim Preserve ArrR(1 To UBound(Arr, 1), 1 To BadN)
  25.                             ArrR(1, BadN) = St1
  26.                         End If
  27.                         ArrR(i, d(St1)) = St2
  28.                     End If
  29.                 Next j
  30.             End If
  31.         Next i
  32.     End With
  33.     [n1].Resize(Rows.Count, Columns.Count - 14).Clear
  34.     [n1].Resize(UBound(ArrR, 1), BadN) = ArrR
  35. End Sub
具体实例如下:
1.rar
2楼
gouweicao78
“l疑难千寻千解”丛书之《Excel2010函数与公式》疑难132有此解法。在N2单元格输入公式向右向下复制
  1. :=SUBSTITUTE(VLOOKUP(N$1&"*",TRIM(MID(SUBSTITUTE($L2&"/"&N$1&":","/",REPT(" ",50)),{0;1;2;3;4}*50+1,50)),1,0),N$1&":",)
参考:【公式解析系列】之单元格内多字段对应数据分离查询http://www.exceltip.net/thread-7117-1-1.html
3楼
JOYARK1958
謝謝提供學習下載中

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap