Электронная таблица: разделение столбца, если он содержит определенную строку

Электронная таблица: разделение столбца, если он содержит определенную строку

Вот выдержка из моей таблицы: введите описание изображения здесь

Обратите внимание: это всего лишь упрощенный пример. Моя полная таблица содержит много столбцов и более 10 000 строк.

В моей электронной таблице часто встречаются строки с текстом в квадратных скобках, начинающимся с LIT:(как на изображении).

Можно ли автоматически извлечь этот текст и поместить его в отдельный столбец электронной таблицы?

(Например, в приведенном выше примере это [Lit: Next of hotel]будет помещено в отдельный столбец, но все равно останется в той же строке). 


Примечание: Как показано в примере, не в каждой строке есть пример [Lit:].

В настоящее время я использую Apple Pages. Но я с удовольствием попробую 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:, [Lit:то замените FIND("[LIT:",A1)на SEARCH("\[L[Ii][Tt]:",A1): тогда как FIND()ищет буквальное, чувствительное к регистру совпадение, SEARCH()использует сопоставление с регулярным выражением.

Если вам нужно удалить [LIT:подстроку из исходного столбца A, то поместите извлеченное [LIT:поле в столбец C, а затем в B1:

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

Теперь скопируйте это вниз по оставшейся части столбца Bи скройте столбец A. Конечно, можно использовать любые столбцы и начальные строки; для своих примеров я использовал смежные столбцы без строк заголовков.

Обратите внимание, что это =SUBSTITUTE()не приводит к ошибкам, поэтому нет необходимости использовать IFERROR().

Связанный контент