Excel中。列出值范围的每个变体

时间:2014-08-25 00:58:33

标签: excel excel-formula

我正在尝试让Excel列出某个值的每个变体。

如果A1 = ABC1904 &安培; A2 = ABC1910

我希望列B列出。

ABC1904
ABC1905
ABC1906
ABC1907
ABC1908
ABC1909
ABC1910

2 个答案:

答案 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]

的前面

..截图时会更清楚但我显然没有足够的声誉来发布一个