Извлечение определенных текстовых строк из ячейки - PullRequest
0 голосов
/ 01 мая 2019

Пожалуйста, посмотрите на текст ниже:

г. Манимаран R MMTFD NL20824448862, Номер № 206

У меня около полумиллиона таких ячеек, и я хочу извлечь из этого текста идентификационный номер, используя формулу. Проблема, с которой я сталкиваюсь, заключается в том, что некоторые идентификаторы начинаются с NL, некоторые с NH, а некоторые с IN / IWA, и длина текстовой строки, содержащей идентификаторы, также отличается (13/14/15 и т. Д.). Есть ли формула, с помощью которой я могу извлечь эти идентификаторы ??

В настоящее время я использую эту формулу = MID (текст, НАЙТИ («NH», текст, 1), 15). Но мне нужно каждый раз менять его для NL / IN, а также для 14/15 и т. Д.

Ответы [ 4 ]

0 голосов
/ 01 мая 2019

Здесь я предполагаю две вещи:

  • Существует , сразу после каждого идентификатора
  • Перед каждым идентификатором есть пробел

В клетке B1:

=TRIM(RIGHT(SUBSTITUTE(LEFT(A1,SEARCH(",",A1)-1)," ",REPT(" ",100)),100))

enter image description here

0 голосов
/ 01 мая 2019

Как насчет следующего (при условии, что текст находится в ячейке C3 (в основном, с запятой и оглядываясь назад)

=right(mid(C3, find(",",C3)-16,16),len(mid(C3, find(",",C3)-16,16))-find(" ",mid(C3, find(",",C3)-16,16)))

0 голосов
/ 01 мая 2019

Вы можете использовать панд с python3, чтобы легко и быстро выполнить такую ​​задачу.

В оболочке python3

import pandas as pd
df= pd.read_excel('./your_excel_file.xlsx') ##import from excel
df['ID']=df['Data_header_name'].str.split(' ',expand=True)[4].str.split(',',expand=True)[0] ##here you can use any relevant filters to get what you want
df.to_excel('output_excel.xlsx') ## save to excel

Вам также необходимо установить openpyxl, xlrd, numpy, pandas с помощью pip

pip install openpyxl xlrd numpy pandas
0 голосов
/ 01 мая 2019

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

...