Страницы: 1
RSS
Извлечение числа из текста с сохранением знака минус перед самим числом
 
Здравствуйте.
Подскажите пожалуйста, при скачивании из программы данных они копируются вместе с ненужными буквами.
Вопрос - как извлечь число из текста, но при этом сохранить знак минус перед самим числом.
Вставляю формулу, но минус тоже исчезает!
 
Код
=--
ЕСЛИОШИБКА(
ПСТР(ПОДСТАВИТЬ(КОДИР.URL(D3);"%2C";",");1;НАЙТИ("%";ПОДСТАВИТЬ(КОДИР.URL(D3);"%2C";","))-1);
D3)
 
вариант, формула в Е3, далее протянуть
Код
=--ПСТР(D3;1;1+СУММ(--ЕЧИСЛО((--ПСТР(D3;{1;2;3;4;5;6;7;8;9};1)))))
Изменено: ВоваВова - 26.08.2026 09:31:02
познакомился с Excel
 
ВовавВова, Небольшая ошибка в -0405 млн, можно попробовать ещё так (массивная):
Код
=--ПСТР(D4;1;МАКС(ЕЧИСЛО(--ПСТР(D4;СТРОКА($1:$10);1))*СТРОКА($1:$10)))

хотя вариант Тимофеев, мне очень понравился, недавно работал с xml там вспоминал про КОДИР.URL
Изменено: Msi2102 - 26.08.2026 09:57:45
 
По мотивам формулы от Тимофеев и 'недавно работал с xml'
Код
=ФИЛЬТР.XML("<l><i>"&ПОДСТАВИТЬ(ПОДСТАВИТЬ(КОДИР.URL(D3);"%2C";",");"%";"</i><i>")&"</i></l>";"//i[1]")
Согласие есть продукт при полном непротивлении сторон
 
Цитата
написал:
Небольшая ошибка в -0405 млн
Спасибо
Попробую понять причину.
Ага...запятая то не посчитана
Тогда так
Код
=--ПСТР(D3;1;ЕЧИСЛО(ПОИСК(",";D3;1))+ЕЧИСЛО(ПОИСК("-";D3;1))+СУММ(--ЕЧИСЛО((--ПСТР(D3;{1;2;3;4;5;6;7;8;9};1)))))
Изменено: ВоваВова - 26.08.2026 10:44:49
познакомился с Excel
 
Всем спасибо большое за помощь. Все получилось.  
 
=--ЛЕВБ(D3;ПОИСКПОЗ(9^9;-ЛЕВБ(D3;{1;2;3;4;5;6;7;8;9})))
или
=--ЛЕВБ(D3;ПОИСКПОЗ(9^9;-ЛЕВБ(D3;ПОСЛЕД(ДЛСТР(D3)))))
 
а если больше 9 знаков то обрежем?
 
Цитата
Тимофеев:   9 знаков то обрежем?
) можно и не обрезать
=--ЛЕВБ(D3;ПОИСКПОЗ(1;-ПСТР(D3;СТРОКА(A$1:ИНДЕКС(A:A;ДЛСТР(D3)));1)))
=--ЛЕВБ(D3;ПОИСКПОЗ(1;-ПСТР(D3;ПОСЛЕД(ДЛСТР(D3));1)))
 
вообще советую всем на вооружение взять мгновенное заполнение если строчек много
1. в E3 ручками забиваем -605, в E4 ручками забиваем 1,164
2. Становимся на ячейку Е4 и Ctrl+E
удобная вещь это Ctrl+E - реально машинное обучение помогло Excel
 
Почти то же самое:
=LOOKUP(9^99;--LEFTB(D3;ROW(A$1:INDEX(A:A;LEN(D3)))))
 
365
Код
=REGEXEXTRACT(D3, "[-,.0-9]+")
Изменено: AlienSx - 26.08.2026 19:40:18
Пришелец-прораб.
Страницы: 1
Читают тему
Наверх