我得到了一个带有数据源表的 excel 文件。为了能够在下一步解析数据,我需要为每个值添加 1 并将其放入新工作表中。问题是,每个单元格有多个值,每个值用逗号分隔,并且这个数字不是静态的。遗憾的是,稍后添加 +1 不是一个选项,因此我需要在 excel 中执行此操作。
Source sheet Prepared data sheet
| MyValues | | MyValues + 1 |
|------------| |--------------|
| 0,1,2,3 | | 1,2,3,4 |
| 3 | -----> | 4 |
| 2,4,6 | | 3,5,7 |
| 1 | | 2 |
这是执行此操作的一种方法(假设 Excel 2016 为TEXTJOIN()
):
公式B1
:
=IFERROR(TRIM(MID(SUBSTITUTE($A1,",",REPT(" ",LEN($A1))),(COLUMN()-2)*LEN($A1)+1,LEN($A1)))+1,"")
公式G1
:
=TEXTJOIN(",",TRUE,B1:E1)
您不需要 VBA 解决方案,但在您的情况下,UDF 也可能是执行此操作的好方法,例如:
Function AddVal(RNG As Range, VAL As Double) As String
Dim ARR1() As String, ARR2() As String, X As Double
If RNG.Cells.Count = 1 Then
ARR = Split(RNG.Value, ",")
For X = LBound(ARR) To UBound(ARR)
ReDim Preserve ARR2(X)
ARR2(X) = ARR(X) + VAL
Next X
If IsEmpty(ARR2) Then
AddVal = "No hits"
Else
AddVal = Join(ARR2, ",")
End If
Else
AddVal = "No valid range"
End If
End Function
通过呼叫 =AddVal(A1;1)
1
如果您想添加的不仅仅是 1,您可以更改另一个数字。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句