Excel:根据文本的子字符串替换文本

时间:2017-05-12 12:55:25

标签: excel

enter image description here

D列包含要查找的子字符串,它可以位于A列的搜索字段中的任何位置。列E包含用于替换A列内容的值。请参阅B列中的结果。任何人都可以帮助我吗?

After implementing suggested solution

3 个答案:

答案 0 :(得分:0)

如果你对此感到满意,我建议修改一下。

enter image description here

columns F, G and H中排列查找值,并在下一个相应行中替换值。你需要3个辅助列,(因为你有3个查找值)。 Column B, C and D是辅助列。

column BB1

中输入以下公式

=IFERROR(IF(MATCH("*"&F$1&"*",$A1,0),F$2),"")

只需将其拖动到整个范围的底部,然后将其拖到E列。

F列是您的实际输出。在F列中输入公式

=B1&C1&D1

然后将其拖下来。希望这可以帮助。如果您还有其他需要,请告诉我。

答案 1 :(得分:0)

这样可行,但不是很优雅,也不容易扩展。

REPT(Replacement,COUNTIF(Values,*Labels*)) Example Excel Formula

这是*系列。搜索周围的SharedPreferences允许它是通配符,基本上是否包含COUNTIF的标志。然后我们重复替换值countif存在的次数(在示例中将始终为1),然后连接结果。

答案 2 :(得分:0)

我已经创建了一个VB脚本来解决这个问题:

Sub DetermineFeatures()
 Dim featureLabel As String


Dim testString As String
testString = "FEAT_EMV_L4, Team_1, Team_IBM"

Dim stringValue As Variant

Dim lookupRange As Range
Set lookupRange = Worksheets("LookupTable").Range("A1:B100")
Dim outputWorksheet As Worksheet
Set outputWorksheet = Worksheets("Output")


Dim feature As String

Dim rowIndex As Long

For Each cell In Worksheets("Original").Columns("O").Cells
    rowIndex = cell.Row
    cellValue = WorksheetFunction.Trim(cell.Value)

    For Each stringValue In Split(cellValue, ",")
        If InStr(stringValue, "LABEL_") Then
            featureLabel = Trim(stringValue)

            ' Call the Vlookup function to look up the actual feature name 
for the supplied label. This
            ' returns the value from the second column of the range within 
the LookupTable worksheet.
            feature = Application.WorksheetFunction.VLookup(featureLabel, 
 lookupRange, 2, False)

            outputWorksheet.Cells(rowIndex, 1) = feature


            If Not IsEmpty(featureLabel) Then Exit For
        End If
    Next
 Next cell
End Sub