電子表格:如果列包含特定字串,則拆分該列

電子表格:如果列包含特定字串,則拆分該列

這是我的電子表格的摘錄: 在此輸入影像描述

請注意:這只是一個簡化的範例。我的完整電子表格有很多列和超過 10,000 行。

在我的電子表格中,我經常有一些行的文字位於以LIT:(如圖所示)開頭的方括號中。

是否可以自動提取此文字並將其放入電子表格的單獨列中?

(例如,在上面的範例中,[Lit: Next of hotel]將進入單獨的列,但仍保留在同一行中)。 


注意:如範例所示,並非每一行都有 [Lit:] 範例。

我目前正在使用 Apple 頁面。但我很樂意嘗試 Google Docs 或 Open Office(如果可以的話)或其他軟體包。

答案1

您的範例對於您想要的字串是否以[LIT:或開頭存在衝突[Lit:。我假設大寫的[LIT:.

在 LibreOffice(大概還有其他 Excel 等效項,儘管我不知道 Apple Pages 或 Google Docs)中,該FIND()函數允許您在文字欄位中定位子字串,但如果未找到子字串,它會返回錯誤,因此您需要IFERROR()也。

我將首先考慮一個簡單的範例,其中任何[LIT:欄位始終位於字串的末尾,並]作為最後一個字元。如果資料位於 列 中A,從 開始A1,則下列公式將滿足您的要求:

=IFERROR(MID(A1,FIND("[LIT:",A1),LEN(A1)),"")

這裡如果FIND()傳回一個值,則傳回從該位置到字串末尾的子字串;否則,將產生錯誤,FIND()MID()傳回空字串。

在更複雜的情況下,[LIT:欄位可能出現在字串的中間,必須詳細說明公式:

=IFERROR(MID(A1,FIND("[LIT:",A1),FIND("]",MID(A1,FIND("[LIT:",A1),LEN(A1)))),"")

在這種情況下,找到了到字串末尾的子字串[LIT:,但從原始單元格產生的字元數受到]子字串內的位置的限制;同樣,任何錯誤都會產生一個空白字串。

無論您使用哪種公式,都可以複製其所在的儲存格並將其貼上到該列的其餘部分。如果您需要處理[LIT:or [Lit:,則替換FIND("[LIT:",A1)SEARCH("\[L[Ii][Tt]:",A1): 而FIND()尋找文字、區分大小寫的匹配,SEARCH()則使用正規表示式匹配。

如果需要[LIT:從原始列中刪除子字串A,則將提取的[LIT:欄位放入列中C,然後放入B1

=SUBSTITUTE(A1,C1,"",1)

現在將其複製到column的其餘部分B並隱藏column A。當然,可以使用任何列和起始行;對於我的範例,我使用了沒有標題行的相鄰列。

請注意,這=SUBSTITUTE()不會產生錯誤,因此無需使用IFERROR().

相關內容