在列中查找字符串并将其替换为上限值

时间:2014-08-22 14:10:33

标签: excel

我正在处理excel工作表。我需要在列中找到一个值,然后从上面的所有列值(逗号分隔)中替换它,其中字符串上次出现。 这是我需要的图像(第2栏)。

col1    col2
12      12
34      34
45      45
65      65
FALSE   12,34,45,65
78      78
97      97
36      36
8       8
76      76
98      98
FALSE   78,97,36,8,76,98
6       6
980     980
3467    3467
FALSE   6,98,03,467

我不知道如何上传excel文件以便从excel中粘贴数据。请帮助我。

2 个答案:

答案 0 :(得分:0)

试试这个小宏:

Sub FillCol()
    Dim col1 As String, col2 As String, msg As String, _
        i As Long, N As Long
    col1 = "A"
    col2 = "B"
    msg = ""
    N = Cells(Rows.Count, col1).End(xlUp).Row
    For i = 1 To N
        If Cells(i, col1).Value = "False" Then
            Cells(i, col2).Value = Left(msg, Len(msg) - 1)
            msg = ""
        Else
        Cells(i, col2).Value = Cells(i, col1).Value
        msg = msg & Cells(i, col1).Value & ","
        End If
    Next i
End Sub

已针对列 A &的

答案 1 :(得分:0)

如果你想使用公式,那么应该有一个2列的解决方案。

为此,col1 = A列,col2 = B列.A列具有原始数据。 B列将以您想要的结果结束。只要A列中存在“FALSE”值,C列'构建'要在B列中使用的字符串。

在单元格B1中,使用以下公式:

=IF(A1=FALSE,"",A1)

在单元格B2中,使用此公式,然后复制&贴在底部:

=IF(A2=FALSE,IF(LEFT(C1,2)=" ,",SUBSTITUTE(C1," ,","",1),C1),A2)

在单元格C1中,使用以下公式:

=IF(A1=FALSE,"",A1)

在单元格C2中,使用此公式,然后复制&贴在底部:

=IF(A2=FALSE,"",C1&" ,"&A2)

这应该会在B列中为您提供所需的结果。