从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 的最简单方法是啥? [关闭]

MySQL:从 MySQL TABLE 中删除重复行的最安全方法是啥?

C# 中从字符串中修剪换行符的最简单方法是啥?