2017-04-05 248 views
0

我有一個很大的CSV與包含數百行的HTML幾列。我需要將某些部分分成新列。例如,一個單元格可以包含:Excel - 從單元格拆分字符串

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

我想標題和描述的內容移動到單獨的列,同時刪除所有標記。

有沒有辦法使用公式而不是宏或VBA來做到這一點?

由於

+0

您是否嘗試過在'= MID()'函數中使用'FIND()'函數?另外檢查'SUBSTITUTE()'函數來替換\刪除html的位,如果有幫助的話。 – rayzinnz

+0

謝謝,我已經看過這些,但挑戰是我不知道他們會在任何給定單元格中有多少個字符。 FIND返回位置,MID需要您指定字符數。如果有一個文本到列的分隔符可以是一個字符串而不是單個字符,那將是完美的 – Kevmon

回答

1

若要防止超長公式,可能更容易將公式分成兩列,並在需要時隱藏列。例如,如果你文本是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) 

然後複製\填寫下來。

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,"") 

這不是很好的解決方案,但你可以考慮改變裏面的字符串到公式來獲得你想要的字符串。如果仍然無法找到最佳解決方案,它可以做到(雖然很耗時)。

相關問題