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

Дан массив из артикулов (которых может быть тысячи), в которых нужно ввести определенное количество пробелов, но для наглядности использую "-".
Количество пробелов ("-") зависит от длины строки и должны ставиться после 10 символов продолжив текст.
Например:
1) дан номер: 111222333455 нужно поставить два пробела справа после символа "4" (с этим справился формулой =ЕСЛИ(ДЛСТР(A2:A37)=10;A2;ПСТР(A2;1;10)&"--"&ПСТР(A2;11;99)) ) получаем 1112223334--55

Но как быть, если есть еще условия, если:
2) 11122233345555 то нужно получить 1112223334----5555
3) 1112223334556666 то нужно получить 1112223334--556666
4) при этом игнорировать, если первый символ "буква"

Голову сломал уже((
Изменено: Константин - 18.11.2023 11:26:27
 
Лучше к вопросу добавлять пример.
Код
=ПСТР(A2;1+ЕТЕКСТ(A2);10)&ПОВТОР("-";18-ДЛСТР(A2)+ЕТЕКСТ(A2))&ПСТР(A2;11+ЕТЕКСТ(A2);10)
Алексей М.
 
в одной формуле не получиться? в массиве из тысяч номеров индивидуально вставлять формулы проблематично.
 
Константин, Все в одной формуле.
Если не правильно вас понял, покажите пример с 20-50 строками
Формула вставляется одна, а потом протягивается по диапазону.
Изменено: АlехМ - 18.11.2023 12:08:20
Алексей М.
 
Дополнил файл пример исходных данных и того что хочу получить.
Не 20-30 конечно, но думаю если на них сработает то и на 20-30 тоже пойдет.
 
=IF(ISNUMBER(--LEFT(A7))*(LEN(A7)>10);REPLACE(A7;11;;"--");A7)
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
=IF(ISNUMBER(--LEFT(A7))*(LEN(A7)>10);REPLACE(A7;11;;"--");A7)
К сожалению, в строке 13 вставляются только 2 пропуска вместо 4-х,
000015150098750000151500----98750000151500--9875
 
Константин, если вы поясните от чего зависит количество, тогда можно будет что-то придумывать. Пока я логику не улавливаю.
По вопросам из тем форума, личку не читаю.
 
если после первых 10 цыфр есть еще 2, то 2 пробела (после 10 цыфр)
если после 10 цыфр есть еще 4 цыфры то 4 пробела (после 10 цыфр)
если после первых 10 цыфр есть еще 6, то 2 пробела (после 10 цыфр)
Изменено: Константин - 18.11.2023 15:25:14
 
=REPLACE(A7;11;;REPT("-";ISNUMBER(-A7)*LOOKUP(LEN(A7);{0;11;14;15};{0;2;4;2})))
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
=REPLACE(A7;11;;REPT("-";ISNUMBER(--A7)*LOOKUP(LEN(A7);{0;11;14;15};{0;2;4;2})))
Спасибо большое, а можно такой же вариант формулы только без проверки на "букву"?

Заранее благодарен.
 
Эту часть ISNUMBER(--A7)* убрать и все.
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Эту часть ISNUMBER(--A7)* убрать и все.
спасибо тебе огромное, выпью чарку за твое здоровье! =)
 
Цитата
Константин написал:
выпью чарку за твое здоровье! =)
с этим я тоже справляюсь самостоятельно  :D
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх