Таблиця: Розділіть стовпець, якщо він містить певний рядок


0

Ось витяг з моєї таблиці: enter image description here

Зверніть увагу: це лише спрощений приклад. Повна таблиця має багато стовпців і більше 10 000 рядків.

У моїй таблиці у мене часто є рядки з текстом у квадратних дужках LIT: (Як на зображенні).

Чи можна автоматично витягти цей текст і помістити його в окрему колонку таблиці?

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

Примітка: Як показано в прикладі, не кожен рядок має [Lit:] приклад.

Зараз я використовую сторінки Apple. Але я радий спробувати Документи Google або Відкрити офіс, якщо він може це зробити, або інший пакет.

Відповіді:


1

Ваші приклади суперечать про те, чи починається потрібний рядок [LIT: або [Lit:. Я припустив, що верхній корпус [LIT:.

У LibreOffice (і, можливо, інші еквіваленти Excel, хоча я не маю уявлення про Apple Pages або Документи Google), 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().


Спасибі, що працює блискуче. За винятком, вона залишає рядок LIT у вихідному стовпці. Я сподівався розділити його, тому рядок видаляється з початкового стовпця (і відбувається тільки в новому стовпці). Чи можна це зробити? Ще раз спасибі за вашу допомогу, я дуже вдячний, що Ви знайшли час, щоб допомогти мені!
big_smile

1
Це не було ясно з вашого питання. Ви не можете видалити текст з вихідного стовпця без сценаріїв. Ви можете створити новий стовпець, який містить відредагований текст, а потім приховати початковий стовпець.
AFH

Дякую! Чи можна використовувати оператор NOT (наприклад, знайти все, що не є [LIT:] і весь вміст квадратних дужок. Таким чином, я можу приховати початковий стовпець, а потім створити два нових стовпця. текст (як ви показали у вашій формулі), а потім той, який містить всі тексти NOT LIT.
big_smile

1
Було б добре, але єдиний спосіб, яким я знаю - це знайти початок [LIT: і виводять символи ліворуч від цього, зчеплені з символами праворуч від наступного ], з будь-якою помилкою, що генерує вихідний рядок.
AFH

1
Я думав, що відповідь - це розробка пошуків і підрядки (які я, хоча ви повинні бути в змозі розробити), але потім я пам'ятаю функцію, яка забезпечує більш елегантний відповідь, тому я оновив свою відповідь, щоб використовувати це.
AFH
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.