2013-12-11 2 views
1

Ok так,Excel извлекая точную строку из клеток со случайной структурой

В колонке А в основном каждая клетка имеет другой состав и не имеет ту же строку до и после значения мы хотим, чтобы извлечь. Например:

ODODODODEFGH4OGOGOG

LALALALALABCDE12-1ALALALALA

IRIRIRIRIJKLMNOROROR

И мне нужно, чтобы извлечь следующие строки, которые расположены в другом листе ((его информационное объединение текста ы и номера с переменной длиной) из колонки A и перечислить его в столбце B рядом с ним

ABCDE12-1

EFGH4

IJKLMN

Я попытался находку, функции Mid, поиск, индекс, но не могу найти решение. Любая помощь очень ценится!

+1

Каковы критерии для поиска SKU?Я имею в виду, как бы код идентифицировал 'EFGH4' в' ODODODODEFGH4OGOGOG'. Каковы критерии? Это похоже на поиск 'Needle' в' Haystack' 'HAYNEEDLESTACK': | –

+0

Если вы не можете объяснить словами, что отличает бит, который вы хотите от бит, который вам не нужен, никто не сможет помочь вам с вашим решением. Это «бит строки, который не является двумя повторяющимися символами в начале или конце»? Даже это неверно, так как у вас есть 'A' в' ABC' после 'LALALALAL' ... – Floris

+0

Я не вижу шаблона при определении SKU, который вы показываете в качестве результатов из исходной строки. Если ABCDE12-1 является опечаткой и должен быть BCDE12-1, тогда мы можем найти образец. Без заметного и описываемого шаблона, как писали другие, единственное другое решение состоит в том, что у вас есть отдельный список действительных SKU, которые можно использовать в качестве справочной таблицы. –

ответ

1

Предположим, что ваши Sheet1 и Sheet2 выглядят так.

enter image description here

Положите эту формулу в ячейки B1 из Sheet1 и тянуть его вниз.

=IF(SUMPRODUCT(COUNTIF(A1,"*"&Sheet2!$A$1:$A$3&"*")),INDEX(Sheet2!A:A,SUMPRODUCT(COUNTIF(A1,"*"&Sheet2!$A$1:$A$3&"*")*ROW(Sheet2!$A$1:$A$3))),"")

enter image description here

+0

эй большое спасибо, это отлично работает, но как только я измените $ A $ 3 на большее значение, чем $ A $ 3000, он больше не работает, он возвращает значение 0 (я не определил точное значение, из которого оно не работает, но я знаю, что до примерно 3000 работает, и если я ввожу, например, $ A $ 4000, он больше не работает. Поскольку у меня есть около 5000 значений, возможно, есть настройка? Если нет работы arround, я думаю, я могу разбить список на две части. –

+0

Какова точная формула, которую вы используете для 4000 строк? –

+0

= IF (SUMPRODUCT (COUNTIF (A1, "*" & Sheet2! $ A $ 1: $ A $ 4000 & "*")), INDEX (Sheet2! A: A , SUMPRODUCT (COUNTIF (A1, "*" & Sheet2! $ A $ 1: $ A $ 4000 & "*") * ROW (Sheet2! $ A $ 1: $ A $ 4000))), "") –

0

ОК, теперь, когда мы знаем, у вас есть таблица поиска, установить следующее:

На некотором листе перечислите Ваш действительный SKU-й в вертикальном именованном диапазоне. например: ValidSKU относится к: Лист2 $ A $ 2: $ A $ 100

Затем с тарабарском строки на некотором листе в A1, чтобы вернуть правильный SKU из строки:

B1: =INDEX(ValidSKU,LOOKUP(9E+307,FIND(ValidSKU,A1),ROW(INDIRECT("1:10000")))) 

"10000" аргумент в приведенной выше формуле должен быть числом, которое, по крайней мере, будет таким же большим, как количество SKU в вашем списке. Поэтому, если у вас 5000 действительных SKU, используйте некоторое число, большее этого.

Затем заполните, насколько необходимо.

У этого метода недостатка. Если имеются перекрывающиеся SKU, он будет возвращать самый низкий, который соответствует. Поэтому было бы лучше, если бы ваш самый длинный SKU был внизу списка.

Другими словами, если у вас есть два ABCDE12-1 и ABCDE12 SKU, оба из них находятся в вашей второй строке. В зависимости от того, что находится последним в списке ValidSKU, он будет возвращен. Я не знаю никого (кроме позиции), чтобы различать эти две возможности.

+0

Как-то это всегда возвращает 0. Длина строки на самом деле легко сортировать с помощью функции LEN. –

+0

Единственный способ получить нули в результате - если ValidSKU ссылается на пустой диапазон. Я попытаюсь отредактировать свой ответ, чтобы показать изображения –

+0

Невозможно добавить изображение сейчас. Предложите вам скопировать и вставить точную копию используемой вами формулы, а также «Refres To» для validSKU и обеспечить наличие достоверных данных в этом диапазоне. –

Смежные вопросы