我正在尝试让Excel列出某个值的每个变体。
如果A1 = ABC1904 &安培; A2 = ABC1910
我希望列B列出。
ABC1904
ABC1905
ABC1906
ABC1907
ABC1908
ABC1909
ABC1910
答案 0 :(得分:0)
这是我能做的最好的纯粹的配方解决方案:
=LEFT(A$1,3) & MID(A$1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A$1&"0123456789")),LEN(A$1))+MIN(RIGHT($A$2,1)+0,ROWS(A$1:A1)-1)
它有点令人满意,因为如果将公式拖得太远,你会有一堆重复。
如果您不反对VBA解决方案,可以试一试:
Sub VariationOfValue()
Dim startNumber As Long, _
endNumber As Long, _
counter As Long
Dim leadingString As String
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
End With
counter = 1
With Sheet1
leadingString = Left(Sheet1.Range("A1").Value, 3)
startNumber = Evaluate("=MID(A$1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A$1&""0123456789"")),LEN(A$1))") + 0
endNumber = Evaluate("=MID(A$2,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A$2&""0123456789"")),LEN(A$2))") + 0
Do While startNumber <= endNumber
.Range("B" & counter).Value = leadingString & startNumber
counter = counter + 1
startNumber = startNumber + 1
Loop
End With
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
基本上是相同的,但只到达最后一个数字。无论哪种方式,希望其中一个或两个有所帮助。
答案 1 :(得分:0)
如果你愿意有几个专栏来实现这一目标,那真的不是很困难。
Col A是您的起始数据。 [ABC1904和ABC1910}
Col B包含equation = VALUE(RIGHT(A1,LEN(A1)-3)),它给出了字符串的数字部分。 [1904年和1910年]
Col C包含方程= IF(OR(C2 = B $ 2,C2 =“”),“”,C2 + 1) - 除了C1,它只是= b1 - 这给出了你想要的一系列数字{1904到1910]
Col D包含方程= IF(C1 =“”,“”,LEFT(A $ 1,3)&amp; C1) - 这会将文本放回数字[ABC1904至ABC1910]
的前面..截图时会更清楚但我显然没有足够的声誉来发布一个