Найти позицию с совпадением разделителя в Excel - PullRequest
0 голосов
/ 08 февраля 2019

Доброе утро, я искал формулу, чтобы помочь мне с этим в Excel 2016, но у меня не получилось, у меня есть этот текст в ячейке:

CF|0101|2019-02-05|01|F007-00000018|PEN|20539043782|6|20479636304|SERVICENTRO SANTA MARIA EIRL|CARRET. JAEN SAN IGNACIO KM 25- CAS. YANUYACU- JAEN||||||||6.10|33.90|6.10|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|0.00|33.90|40.00|0.00|0.00|40.00|1000|CUARENTA CON 00/100 SOLES   |||||||M5K-788|

Я хочу извлечь текстс помощью разделителя "|"и в не очень длинной формуле, попробуйте с FIND, но формула становится очень длинной после третьего связанного поиска, есть ли способ получить позицию разделителя по числу параллелизма?, что-то вроде этого:

Поиск текста; Ячейка; Номер повторения (параллелизм символа)

= FORMULA ("|"; A1; 2)

Результат: 8

Или имитировать что-то подобное?

От уже большое спасибо.

** ОБНОВЛЕНИЕ

Я не буду использовать все тексты среди "|", поэтому мне нужно получить положениеразделители для извлечения только нужного мне текста, так как инструмент «Текст в столбцы» заставляет вас указывать позицию для всех отдельных текстов.

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Если вы действительно хотите формулу, которая разделит все на уникальные столбцы.Тогда, возможно, вам следует взглянуть на пользовательскую формулу.Вот краткий пример UDF, который может анализировать данные на основе «|»

Function SplitData(rng As String, Character As Variant, Position As Integer) As Variant

    SplitData = Split(rng, Character)(Position - 1)

End Function

После того, как эта функция была помещена в модуль VBA, вы можете вызвать ее из любой ячейки в этой книге.

Для простоты вот прорыв ...

=SplitData( <THE CELL THAT CONTAINS THE DATA YOU WISH TO PARSE>, <THE CHARACTER YOU WANT TO USE AS YOUR DELIMITER>, <POSITION IN WHICH YOU WANT TO DISPLAY THE TEXT (Valid Numbers start at 1+> )

Точка ПОЗИЦИИ используется для отображения того или иного фрагмента текста.Например, на основе предоставленного вами примера, если вы заполнили следующее ...

=SplitData(A1, "|", 1) == "CF"

Кстати, если вы не можете найти местоположение "|",тогда как насчет использования формулы =Search().Это легко поможет найти позицию символа первого «|», но немного поработав, вы сможете заставить его отображать другие локации.

0 голосов
/ 08 февраля 2019

Как указано здесь , вы можете использовать Text to Columns:

Выберите ячейку или столбец, содержащий текст, который вы хотите разделить.

ВыбратьДанные> Текст в столбцы.

В мастере преобразования текста в столбцы выберите «Разграничить»> «Далее».

Выберите разделители для своих данных.Вы хотите поместить | в область «Прочее».

Выбрать Далее.

Выберите формат данных Столбца или используйте то, что Excel выбрал для вас.

Выберите место назначения, где вы хотите, чтобы разделенные данные появлялись на вашем рабочем листе.

Выберите Готово.

Или - если вам буквально нужно все это в одной строке, без |, вы можете использовать SUBSTITUTE():

=SUBSTITUTE(A1,"|"," ")
...