Как извлечь строку, разделенную скобками в конце ячейки, если присутствуют две или более строк в скобках - PullRequest
0 голосов
/ 14 января 2019

Мне нужно разделить строки в электронной таблице Google. Цель извлечения - это строка в скобках [] в конце ячейки. Строка в скобках [] в начале или в середине ячейки должна игнорироваться. Есть ли возможность атаковать клетки с правой стороны?

Извлечение с помощью RegexExtract как

=IFERROR(REGEXEXTRACT(A1;"\[(.*?)\]");"")

работает только для ячеек с одной скобкой и копирует содержимое скобок, я хочу выделить это.

В противном случае, например

=SPLIT(CHANGE(A1;"[";"^");"^")

не игнорирует несоответствующие скобки.

Пример

Исходное содержимое ячейки:

[не имеет значения] Lore [не имеет значения] Ipsum 123 [соответствующая строка]

Я хочу иметь одну ячейку с:

[не имеет значения] Lore [не имеет значения] Ipsum 123

И еще одна ячейка с:

[соответствующая строка]

Ответы [ 2 ]

0 голосов
/ 14 января 2019

Не проверено, но также попробуйте

=regexextract(A1, "(.+?)(\[[^\[]+$)")
0 голосов
/ 14 января 2019

Вы можете попробовать это для второй ячейки:

=IFERROR(REGEXEXTRACT(A1;"[(.*?)]$");"")

Для первой ячейки:

=LEFT(A1, LEN(A1) - LEN(<second cell reference>))

Источник: Таблица Google: разбить строку и получить последний элемент

UPD:

Также существует возможность получить последний случай чего-либо, если вы можете получить только первый случай:

  1. Перевернуть строку
  2. Найти первое вхождение в обратной строке
...