|
part98老师不是用reduce就可以解决此问题,还要套其它函数才行,
- =DROP(REDUCE(“”,A1:A3,LAMBDA(x,y,VSTACK(x,TEXTSPLIT(y,“-”)))),1)
复制代码
真麻烦,还是用自定义函数解决比较快
- Function mapsplit(rng As Range, delimiter As String) As Variant
- Dim cell As Range
- Dim output() As Variant
- Dim arr() As String
- Dim i As Integer, j As Integer
- Dim outputRow As Integer
- Dim maxCols As Integer
- maxCols = 0
- For Each cell In rng
- If cell.Value <> "" Then
- arr = Split(cell.Value, delimiter)
- If UBound(arr) + 1 > maxCols Then
- maxCols = UBound(arr) + 1
- End If
- End If
- Next cell
- ReDim output(1 To rng.Cells.Count, 1 To maxCols)
- outputRow = 1
- For Each cell In rng
- If cell.Value <> "" Then
- arr = Split(cell.Value, delimiter)
- For i = 0 To UBound(arr)
- output(outputRow, i + 1) = arr(i)
- Next i
- For i = UBound(arr) + 2 To maxCols
- output(outputRow, i) = ""
- Next i
- Else
- For i = 1 To maxCols
- output(outputRow, i) = ""
- Next i
- End If
- outputRow = outputRow + 1
- Next cell
- mapsplit = output
- End Function
复制代码
|
评分
-
1
查看全部评分
-
|