Ваші приклади суперечать про те, чи починається потрібний рядок [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()
.