Напишите лучше повторяющуюся формулу excel

#excel #excel-formula

Вопрос:

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

=IFERROR(IF(FIND(«/»,MID(C2,25,100))>0,LEFT(MID(C2,25,100),FIND(«/»,MID(C2,25,100))-1)),MID(C2,25,100))

Примеры данных:

corp.mycompany.com/Here/Location

corp.mycompany.com/Here/Location/OtherOU

Результатом обоих этих действий будет «Местоположение».

Есть ли лучший способ написать формулу?

Комментарии:

1. если вы используете Excel 365, попробуйте ЭТУ функцию. Если вы никогда не пользовались им раньше, вы можете погуглить его. Exceljet.net есть несколько хороших примеров.

2. Используя Excel 2016, в котором, похоже, нет команды LET.

Ответ №1:

Если вы ищете строку после второй косой черты до третьей косой черты, вы можете использовать FILTERXML , а затем INDEX результат, если у вас новейшая версия Excel. Например:

 =INDEX(FILTERXML("<t><s>"amp;SUBSTITUTE(A1,"/","</s><s>")amp;"</s></t>","//s"),3)
 

Если вам нужна строка после третьей косой черты до четвертой, просто замените 3 на 4 в формуле и т. Д.

Комментарии:

1. =FILTERXML("<t><s>"amp;SUBSTITUTE(A1,"/","</s><s>")amp;"</s></t>","//s[3]") сделал бы то же самое, избегая ИНДЕКСА.

2. Хорошим методом является включение в и XML-строку, чтобы ее было проще обрабатывать. Оба решения до сих пор-это то, о чем я не думал. Сможете использовать их в других местах. Спасибо.

Ответ №2:

В1

 =TRIM(MID(SUBSTITUTE(A1,"/",REPT(" ",99)),198,99))
 

введите описание изображения здесь

Комментарии:

1. Очень творческое использование функций ЗАМЕНЫ и ПОВТОРЕНИЯ. Мне потребовалось немного поработать и протестировать, чтобы понять, как это на самом деле работает. Спасибо.