我正在处理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中粘贴数据。请帮助我。
答案 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列中为您提供所需的结果。