如何从Excel中的单元格中提取中间字符

时间:2018-11-18 20:07:26

标签: excel vba excel-vba function excel-formula

我需要一个Excel功能代码,该代码可以使我在单元格的中间提取某些字符。

所以在A74单元格中是:

ds.a.add(ds.b).astype(str).str.replace(' - ', '').str.strip('[]').str.get_dummies(sep=', ')

    item1    item2  item3    item4
0   1        1      1        0
1   1        0      1        1

所以我需要将“ auths_ol_mart”提取到单独的列中

我已经尝试过了:

1625362674848-cdpresent-auths_ol_mart-auths1837372

现在的问题是,这只会得到“ cdpresent”。我不太确定如何做到这一点。

更多示例包括:

=MID(A2, SEARCH("-",A2) + 1, SEARCH("-",A2,SEARCH("-",A2)+1) - SEARCH("-",A2) - 1)

我想要“ avaya_op_history”

3837463747-cdpresent-avaya_op_history-clm1827489

我想要“ uk_score_app”

谢谢大家

2 个答案:

答案 0 :(得分:2)

您可以使用以下工作表公式:

=LEFT(MID(A1,FIND("-",A1,FIND("-",A1)+1)+1,99),FIND("-",MID(A1,FIND("-",A1,FIND("-",A1)+1)+1,99))-1)

如果使用“公式评估”工具,您将能够看到其工作原理。

如果您喜欢UDF,可以使用:

Function betweenDashes(S As String) As String
    betweenDashes = Split(S, "-")(2)
End Function

答案 1 :(得分:0)

公式的另一种方法是使用连字符(-)作为分隔符的Text to Columns。您会在第三栏中找到所需的内容:

text to columns