Вот выдержка из моей таблицы:

Обратите внимание: это просто упрощенный пример. В моей полной электронной таблице много столбцов и более 10000 строк.

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

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

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


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

В настоящее время я использую страницы Apple. Но я счастлив попробовать Google Docs или Open office, если это возможно, или другой пакет.

1 ответ1

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .