
答案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()
.