伊利西亚
发表于 2021-11-17 22:17:52
Power Query 简称PQ
乱世心经
发表于 2021-11-19 05:30:28
我知道,就是里面具体哪个功能是分组依据,还是拆分列
王磊杰
发表于 2021-11-24 14:12:34
可以啦!谢谢!
张青健
发表于 2021-11-25 10:28:57
我流大佬的VBA学的真快,还会PQ,哇塞,真牛
谭睿
发表于 2021-11-25 19:00:48
嗯,不错,继续保持这种简便的写法....录入人方便了.现在知道数据不好弄了.,,要不把当时录入的人又叫来处理你要的数据吧.
王海燕
发表于 2021-11-30 21:17:39
扁他。。。。。。
用户吕小金
发表于 2021-12-4 09:21:56
PQ (Excel2016及以上自带) 解法
正本清源
发表于 2021-12-5 21:04:06
展开论坛挺常见的,也好处理。前两天遇到一个合并的,比较麻烦
模拟数据,还有两种不同长度的号码。尾号位数还有2位和3位。
幸好你没模拟,同一个单元格里,不同前缀的发票号。
公式太复杂了,估计得分步骤完成,写个代码给你吧,代码审核,先发个图
萌萌静
发表于 2021-12-8 01:48:08
Sub Main()
Dim ar(), a, br(), b
Dim x1 As Variant, x2 As Variant
Dim s$, n&, i&
Rem 指定数据源b3:b7
ar = Range("b3:b7").Value
ReDim br(1 To 1)
For Each x1 In ar
a = Split(x1, "/")
s = Split(a(0), "-")(0)
For Each x2 In a
If InStr(x2, "-") = 0 Then
n = n + 1
ReDim Preserve br(1 To n)
If Len(x2) = Len(s) Then
br(n) = x2
Else
br(n) = Left(s, Len(s) - Len(x2)) & x2
End If
Else
b = Split(x2, "-")
If Len(b(0)) < Len(s) Then
b(0) = Left(s, Len(s) - Len(b(0))) & b(0)
End If
If Len(b(1)) < Len(s) Then
b(1) = Left(s, Len(s) - Len(b(1))) & b(1)
End If
For i = CLng(b(0)) To CLng(b(1))
n = n + 1
ReDim Preserve br(1 To n)
br(n) = Format(i, String(Len(s), "0"))
Next
End If
s = br(n)
Next
Next
Rem 指定输出第一个单元格 H3
With Range("h3").Resize(n)
.NumberFormatLocal = "@"
.Value = Application.Transpose(br)
End With
End Sub
益伟
发表于 2021-12-14 00:18:45
嗯,不错,继续保持这种简便的写法....录入人方便了.现在知道数据不好弄了.,,要不把当时录入的人又叫来处理你要的数据吧.