Я не уверен, как озаглавить этот вопрос.

У меня сложная задача, которую я не знаю, как подойти в Excel.

У меня есть столбец с длинными строками переменной длины, пример

c68d7a51-5cef-4a5c-b417-b2751fe9754b  
c68d7a51-5cef-4a5c-b417-b2751fe9754b-0  
c68d7a51-5cef-4a5c-b417-b2751fe9754b-1
09573f-1780c84f-e5ff-85821a-6236e0399d
09573f-1780c84f-e5ff-85821a-6236e0399d-10
09573f-1780c84f-e5ff-85821a-6236e0399d-123

Где для тех, которые заканчиваются на «- ***», мне нужно иметь новый столбец, который возвращает строку без этой конечной подстроки RIGHT иначе null. Конечная подстрока имеет длину от 1 до 3 символов после символа «-». Я также должен отметить, основываясь на комментариях, что я не могу работать слева, потому что строки меняются по длине и в расположении "-". Единственная константа состоит в том, что некоторые из этих строк имеют значения дочерних подстрок от 1 до 3 цифр после последнего «-».

То, что я до сих пор для контура выглядит так

=IF(RIGHT(A1,4) contains "-", RIGHT(A1, LEN(A1) - number_of_chars_to_remove), else null. 

Если вы не возражаете, как мне это сделать?

Я ценю вашу помощь, спасибо!

2 ответа2

1

Использовать этот:

=IF(ISNUMBER(FIND("-",RIGHT(A1,4))),LEFT(A1,FIND("}}}",SUBSTITUTE(A1,"-","}}}",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))-1),"")

Сначала он проверяет, есть ли - в последних четырех, если так, то находит это последнее - и изменяет его на }}} . Тогда он находит это и делает это концом ЛЕВОГО уравнения.

0

Мне кажется, исходя из ваших примеров данных, что вы можете посчитать строку и, если она имеет 5 штрихов, вернуть первые 38 символов, в противном случае вернуть NULL. Это было бы намного проще. 38 имеет значение, поскольку его длина строки до пятого тире.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .