Excel - 从单元格中拆分字符串

时间:2017-04-05 02:48:42

标签: excel excel-formula

我有一个大型CSV,其中有几列包含数百行的HTML。我需要将某些部分分成新的列。例如,单元格可以包含:

<style>.some-class{property:value;}</style><div class="title">This is a title</div><div class="description">This is a description></div>

我想将标题和说明的内容移到单独的列中,同时删除所有标记。

有没有办法使用公式而不是宏或VBA?

由于

2 个答案:

答案 0 :(得分:1)

要防止超长公式,可能更容易将公式分割为两列并根据需要隐藏列。例如,如果text是A列,则将这些公式放在以下单元格中: 进入B1:

=RIGHT(A1,LEN(A1)-FIND("class=""title"">",A1)-13)

进入C1:

=LEFT(B1,FIND("</div",B1)-1)

进入D1:

=RIGHT(A1,LEN(A1)-FIND("class=""description"">",A1)-19)

进入E1:

=LEFT(D1,FIND("</div",D1)-1)

然后复制\填写。

答案 1 :(得分:0)

  

对于描述:(输出:这是描述)

=REPLACE(REPLACE(REPLACE(F9,FIND("This is a title",F9,1),LEN("This is a title"),""),1,LEN(".some-class{property:value;}"),""),LEN(REPLACE(REPLACE(F9,FIND("Thisis a title",F9,1),LEN("This is a title"),""),1,LEN(".some-class{property:value;}"),"")),1,"")
     

标题:(输出:这是标题)

=REPLACE(REPLACE(REPLACE(F9,FIND("This is a description",F9,1),LEN("This is a description"),""),1,LEN(".some-class{property:value;}"),""),LEN(REPLACE(REPLACE(F9,FIND("This is a description",F9,1),LEN("This is a description"),""),1,LEN(".some-class{property:value;}"),"")),1,"")

这不是解决方案,但您可以考虑将内部字符串更改为公式以获取所需的字符串。如果你仍然无法找到最佳解决方案,它可以做到(虽然很费时)。