Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Удалить в конце текстовой строки число
 
Добрый день, очень прошу помочь.

есть таблица
Стол1
Стол 2
Стол
Белый 2 стол100
Белый 6 стол 200
и т.д.

Необходимо найти строки, которые заканчиваются на цифру. И удалить эту последнюю цифру каждой строки.
Стол
Стол
Стол
Белый 2 стол
Белый 6 стол
и т.д.
   
 
Anton2000, Удалить последнюю цифру, значит получить "Белый 2 стол10". 100 это число.  
 
Да надо удалить полностью числа, ошибся
 
Конечно задача скорее для UDF, сейчас проснуться макрушники и все сделают.
Массивная
=TRIM(LEFT(TRIM(A1);LEN(TRIM(A1))-LEN(IFERROR(LARGE(IF(TRIM(ROW($A$1:$A$1001)-1)=RIGHT(TRIM(A1);LEN(ROW($A$1:$A$1001)-1));ROW($A$1:$A$1001)-1);1);""))))
в примере расчет на то, что последее число не более 1000, если что заменить $A$1001 до $A$1048576 :-), но грустно считать будет.

Похоже загрузка файлов сломалась.
Изменено: БМВ - 17 Мар 2018 08:54:21
 
Вашу формулу вставил в ячейку B1  выходить #ИМЯ?,  
ячейка A1 Стол1
 
Просто все формулы вам нужны русскоязычные, а я неуч, так их и не выучил. Файл прикрепить не могу, сбоит форум..

попробуйте так
=СЖПРОБЕЛЫ(ЛЕВСИМВ(СЖПРОБЕЛЫ(A1);ДЛСТР(СЖПРОБЕЛЫ(A1))-ДЛСТР(ЕСЛИОШИБКА(НАИБОЛЬШИЙ(ЕСЛИ(СЖПРОБЕЛЫ(СТРОКА($A$1:$A$1001)-1)=ПРАВСИМВ(СЖПРОБЕЛЫ(A1);ДЛСТР(СТРОКА($A$1:$A$1001)-1));СТРОКА($A$1:$A$1001)-1);1);""))))
Изменено: БМВ - 17 Мар 2018 14:51:03
 
Спасибо большое получилось
 
=СЖПРОБЕЛЫ(ЛЕВБ(A1;ДЛСТР(A1)-ДЛСТР(1/ПРОСМОТР(9^9;1/ПРАВБ(A1&1;СТРОКА($1:$19))))+1))
Алексей М.
 
формула массива
Код
=ЛЕВСИМВ(A1;ДЛСТР(A1)-МАКС(ЕСЛИ(ЕЧИСЛО(--ПРАВСИМВ(A1;СТРОКА($1:$20)));СТРОКА($1:$20);"")))
 
V, еще сжать пробелы нужно.
Алексей М.
 
АlехМ, Я  знал, я знал :-) что придет он и все порежет.
но есть нюанс "Белый 6 стол,200"
Изменено: БМВ - 17 Мар 2018 09:29:05
 
АlехМ, а смысл все равно текст остается и пробел не мешает, как по мне. :)
 
V, Снимаю шляпу. Однако просто интересно, если более 20 цифирок, понятно что надумано, но скорее вопрос технологии. И совсем бред ,когда стоит дробное число.
последовательно результаты по мере появления формул.                      
Белый 6   стол,200 |   Белый 6 стол,|   Белый 6 стол,200|   Белый 6 стол
Изменено: БМВ - 17 Мар 2018 09:51:13
 
Супер Всем спасибо
 
БМВ, Да, для такого варианта нужна функция подставить, меняющая запятую на пусто.
Алексей М.
 
АlехМ,  Если она конечно не нужна ;-) .
 
БМВ, 20 ввел чисто если нужна будет проверка формулы (в "вычислить формулу"). А так можно поменять на большее, с запасом.
 
Цитата
БМВ написал:
когда стоит дробное число.
ну здесь можно придумывать что угодно. ТС виднее что у него там.
 
V, так ваш вариант как раз с дробным справляется на ура.
 
И от меня вариант:
=ЛЕВСИМВ(A1;ДЛСТР(A1)-(ПОИСКПОЗ(;--ЕЧИСЛО(--ПСТР(A1;ДЛСТР(A1)-СТРОКА($1:$10)+1;1));)-1))
или чуть короче (решение V натолкнуло на мысль )
=ЛЕВСИМВ(A1;ДЛСТР(A1)-ПОИСКПОЗ(;--ЕЧИСЛО(--ПРАВСИМВ(A1;СТРОКА($1:$10)));)+1)
Изменено: Bema - 17 Мар 2018 11:12:05
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Цитата
Anton2000 написал: вставил... выходить #ИМЯ?,
Надо ПОКАЗЫВАТЬ в файле, как и пример данных, на котором помогающие могут писать формулы

Цитата
БМВ написал: есть нюанс "Белый 6 стол,200"
Нюансов море, даже китайский иероглиф можно вставить. Или  "стол 2/10" (а 2/10 по задаче может оказаться числом). Автор ведь не показал, что там у него в рукаве спрятано. Даешь унисуперформулу?
 
Цитата
vikttur написал: Надо ПОКАЗЫВАТЬ в файле
у ТС алиби, на тот момент файлы не загружались. Да и сейчас не грузятся. Ваше проклятье на 245кб картинки таки дошло до битрикс :-)

Запятая или точка, как десятичный разделитель,  - и +  присоединяются к числу. :-) надеюсь иероглиф  - нет.  Когда про дробные писал, думал написать что простые дроби не в счет, но с телефона было неудобно :-)
 
Пойдем дальше - FA7B тоже число :)
 
off тут трудно сказать, для некоторых это цифра :-).    
 
Цифра - это число с одним разрядом (или наоборот?) )
 
вариант UDF в столбце D
Код
Function bbb$(text)
With CreateObject("VBScript.RegExp"): .Pattern = "\d+$": bbb = Trim(.Replace(text, ""))
End With
End Function
Изменено: кузя1972 - 17 Мар 2018 23:07:54
 
Еще формула
=ЛЕВБ(A1;ПРОСМОТР(2;1/(ПСТР(A1;СТРОКА($1:$99);1)>"9");СТРОКА($1:$99)))
Алексей М.
 
Доброй ночи!
Не уверен, загрузится файл или нет, но формула побеждает "1/2", "июн.18", ",100", и "2Е4". И Никак не реагирует на Число Vikttur'a
=ЛЕВБ(A6;ДЛСТР(A6)-МАКС(ПОИСКПОЗ("";Т(-ПРАВБ(A6;СТРОКА($1:$30)));{0;1})))
 
вариант UDF для файл-примера типа #28,на Лист2 столбец G

 
Код
Function bbb$(text)
With CreateObject("VBScript.RegExp"): .Pattern = ",?\.?(?:\d+E)?(?:\d+/)?(?: ?\d+/d+)?\d+$": bbb = Trim(.Replace(text, ""))
End With
End Function
Изменено: кузя1972 - 18 Мар 2018 10:18:21
 
Akropochev, Почему не так?
=ЛЕВБ(A1;ДЛСТР(A1)-ПОИСКПОЗ("";Т(-ПРАВБ(A1;СТРОКА($1:$30)))))
или
=ЛЕВБ(A1;ДЛСТР(A1)-ПОИСКПОЗ(;-ПРАВБ(A1;СТРОКА($1:$30))))
Недостаток вашей и этих двух формул в том, что возвращают Н/Д на значение "Стол "
Изменено: АlехМ - 18 Мар 2018 21:18:14
Алексей М.
Страницы: 1
Читают тему (гостей: 1)