Я за последние несколько недель много играл с Excel, и я хочу сделать свою жизнь проще, имея формулу одеяла, которую я могу применить в мою таблицу, чтобы извлечь все коды из поля.Разбиение строк переменной длины на коды (также переменной длины) в Excel 2016
Обычно я просто смотрю, что коды были разделены, и просто MID() с FIND() в столбце до или «_», но в этом случае все разделяется подчеркиваниями, а не только кодами, а иногда коды делятся на дефисы, поэтому соглашение об именах, к которым я не привык, вызывает у меня немало неприятностей по этому поводу.
Пример:
Предположим, у нас есть такая строка, чтобы работать с
blahblahblah_n-codeone-codetwo_codethree_blah.blah
Я хотел бы, чтобы извлекать «codeone», «CodeTwo» и «codethree», как это:
+==========================================================================================+ | INITIAL STRING | CODE_1 | CODE_2 | CODE_3 | +==========================================================================================+ | blahblah_n-codeone-codetwo_codethree_blah.blah | codeone | codetwo | codethree | +==========================================================================================+
Несколько кодов разной длины, в пределах от 5 символов до 3-х символов и в строке может быть до четырех кодов. Было бы полезно, если бы столбцы для кодов, которые не могли быть найдены, были бы пустыми. Например, если в строке есть 2 кода, то столбцы CODE_3 и CODE_4 останутся пустыми.
Формула, которую я пробовал использовать совсем недавно, приведен ниже, но она не обрабатывает разные длины кодов или даже разные номера кодов, поэтому на самом деле это не так.
UPPER(MID(B4,(FIND(LOWER(D4),B4)+6),5))
Если кто-то может предложить некоторые советы и помощь, которые были бы очень признателен.
Если фиксированный предел возвратов может быть определен до того, как формула будет обработана, можно рассмотреть формулу родного рабочего листа. Если нет, то пользовательская функция (как UDF) будет более уместной и, возможно, будет более уместной в любом случае. – Jeeped
Я не уверен, как бы я определил количество кодов, которые будут возвращены, поскольку имена файлов значительно отличаются от набора данных. Не могли бы вы предложить некоторые рекомендации о том, как писать UDF для этого? –
Более подробная информация в Именах изображений из представленного вами изображения, чем то, что вы здесь описываете. Например, на картинке все коды, как представляется, предварительно задерживаются в следующей последовательности: '_n-'. Это может быть очень полезно. Это общее правило? Также из картинки вы, кажется, игнорируете первый и последний коды ... каждый раз. Это тоже правило? –