1

Ячейки A1, A2, A3 и т.д. Содержат строки, подобные следующим ...

1 x Product A [SG014] 1 x Product B [SG026] 1 x Product C [SG023]

Каждая ячейка в столбце A может содержать строку из 20 различных продуктов и связанных с ними кодов (например, SG014 и т.д.).

В столбце B я хочу формулу, которая возвращает первый код. В столбце C я хочу формулу, которая возвращает второй код .... и так далее ...

Может кто-нибудь показать мне, как это сделать?

2 ответа2

3

Синтаксический анализ текста может быть довольно сложным с несколькими разделителями (например, [и]). Это может быть случай, когда грубая деформация текста с большим количеством пробелов, затем извлечение желаемого содержимого и восстановление его с помощью TRIM может работать лучше всего.

    Грубая деформация текста

Формула в B1 имеет вид

=TRIM(MID(REPT(" ", 999)&SUBSTITUTE(SUBSTITUTE($A1, "[", REPT(" ", 999)), "]", REPT(" ", 999)), COLUMN(A:A)*1999, 999))

Заполните правильно при необходимости. Отпишитесь, если найдете предел связанных кодов, которые вы можете потянуть до того, как это испортилось; Мне было бы интересно узнать. Если вы обнаружите, что этого недостаточно для большого количества возвращаемых текстов, поднимите число 999 до 9999 или выше во всех 5 местах (999 И 1999). Некоторые быстрые математические вычисления говорят мне, что вы должны быть в безопасности для 20 продуктов.

2

Если все коды продуктов состоят из 5 символов, как в вашем примере, вы можете использовать эту формулу в B1, скопированном через

=IFERROR(MID($A1,FIND("^",SUBSTITUTE($A1,"[","^",COLUMNS($B1:B1)))+1,5),"")

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