Ваши примеры противоречат, начинается ли строка, которую вы хотите, [LIT:
или [Lit:
. Я предположил, что в верхнем регистре [LIT:
.
В LibreOffice (и, вероятно, других эквивалентах Excel, хотя я не имею представления об Apple Pages или Google Docs), FIND()
функция позволяет вам найти подстроку в текстовом поле, но она возвращает ошибку, если подстрока не найдена, поэтому вам нужно используйте IFERROR()
также.
Сначала я рассмотрю простой пример, в котором любое [LIT:
поле всегда находится в конце строки с ]
последним символом. Если данные в столбце A
, начиная с A1
, то следующая формула будет делать то, что вы хотите:
=IFERROR(MID(A1,FIND("[LIT:",A1),LEN(A1)),"")
Здесь if FIND()
возвращает значение, тогда возвращается подстрока от этой позиции до конца строки; в противном случае FIND()
и, следовательно MID()
, сгенерирует ошибку, и будет возвращена пустая строка.
В более сложном случае, когда [LIT:
поле может находиться в середине строки, должна быть разработана формула:
=IFERROR(MID(A1,FIND("[LIT:",A1),FIND("]",MID(A1,FIND("[LIT:",A1),LEN(A1)))),"")
В этом случае [LIT:
найдена подстрока до конца строки, но количество символов, сгенерированных из исходной ячейки, ограничено положением ]
внутри подстроки; опять же, любая ошибка будет генерировать пустую строку.
Какую бы формулу вы не использовали, вы копируете ячейку, в которой она находится, и вставляете ее в оставшуюся часть столбца. Если вам нужно обработать либо [LIT:
или [Lit:
, то заменить FIND("[LIT:",A1)
на SEARCH("\[L[Ii][Tt]:",A1)
:, тогда как FIND()
ищет буквальное, чувствительное к регистру совпадение, SEARCH()
использует сопоставление с регулярным выражением.
Если вам нужно удалить [LIT:
подстроку из исходного столбца A
, поместите извлеченное [LIT:
поле в столбец C
и поместите в B1
:
=SUBSTITUTE(A1,C1,"",1)
Теперь скопируйте это вниз остальную часть столбца B
и скрыть столбец A
. Конечно, можно использовать любые столбцы и начальные строки; для моих примеров я использовал смежные столбцы без строк заголовка.
Обратите внимание, что =SUBSTITUTE()
не генерирует ошибок, поэтому нет необходимости использовать IFERROR()
.