从excel中的字符串中删除单词的最简单方法是啥?
Posted
技术标签:
【中文标题】从excel中的字符串中删除单词的最简单方法是啥?【英文标题】:What is the easiest way to remove a word from a string in excel?从excel中的字符串中删除单词的最简单方法是什么? 【发布时间】:2016-12-03 18:46:31 【问题描述】:您好,我有一个 Excel,其中一张表 A 包含一个表格,其中一列具有逗号分隔值,另一张表 B 包含一些数据。 所以我需要搜索从 B 到工作表 A 逗号分隔列的数据,如果找到,则从字符串中删除该数据。在这里,我需要根据另一列处理这些列。例如:
表 A
a 栏 |逗号分隔列
一个 | 1,2,3,4
b | 1,3,5,7
c | 1,2,3,4
d | 1,3,5,7
e | 1,2,3,4
表 B
a 栏 | b列
一个 | 1
一个 | 2
b | 1
b | 3
c | 1
c | 4
d | 3
d | 7
结果:
a 栏 |逗号分隔列
一个 | 3,4
b | 5,7
c | 2,3
d | 1,5
e | 1,2,3,4
是否可以获取结果?我是 excel 和宏的新手,但尝试了可能仍然找到确切解决方案的方法。无论是使用宏公式还是excel公式,有没有最简单的方法。
【问题讨论】:
到目前为止你尝试过什么? SO 不仅仅是一个向其他用户索要代码的网站,它旨在帮助解决彼此的问题。 【参考方案1】:这对我有用。对于较大的数据集,效率可能是个问题。
Sub Main()
Dim shtAList As Range, rngA As Range
Dim shtBList As Range, rngB As Range
Set shtAList = Worksheets("A").Range("A1:A5")
Set shtBList = Worksheets("B").Range("A1:A8")
For Each rngA In shtAList
For Each rngB In shtBList
If rngB = rngA Then
rngA.Offset(0, 1) = StripString(rngA.Offset(0, 1), rngB.Offset(0, 1))
End If
Next rngB
Next rngA
End Sub
Function StripString(csv As Range, strip_string As String) As String
Dim strings() As String, i As Integer, temp As String, result As String
temp = vbNullString
strings = VBA.Split(csv, ",")
For i = 0 To UBound(strings)
If strings(i) <> strip_string Then
temp = temp & strings(i) & ","
End If
Next i
result = IIf(VBA.Right$(temp, 1) = ",", VBA.Left$(temp, Len(temp) - 1), temp)
StripString = result
End Function
Main
只是循环您的两个列表以查找匹配项。
StripString
是字符串比较和剥离发生的地方
【讨论】:
以上是关于从excel中的字符串中删除单词的最简单方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章
使用 jquery 从选择下拉列表中删除所有条目的最简单方法是啥?
从 Ruby 中确定 sizeof(double) 和 sizeof(int) 的最简单方法是啥?
将带有表格数据的 Excel 电子表格转换为 JSON 的最简单方法是啥? [关闭]