Страницы: 1
RSS
Оставить последнее значение в ячейке, но по условию, Оставить последнее значение в ячейке, но по условию
 
Добрый день! Я только раздираюсь с Еxcel, прошу помощи
Необходимо в ячейке (Инвентарный номер) оставить последнее значение. Но есть и еще условие если последнее значение в скобка и начинается на букву В Пример (В...), то надо оставить и предыдущее и это значение в скобках. Они как бы идут в связке  номер нашего предприятия, а в скобках филиала

Как это реализовать с помощью макроса, не знаю. А каждый раз вычищать три тысячи значений тяжело.
 
А как понять, что начался новый инвентарный номер? Похоже, что он не всегда начинается с 318 и перед ним стоит неизвестное число пробелов...
Я не волшебник, я только учусь.
 
Цитата
EVaGuseva написал:
Я только раздираюсь с Еxcel
Ща раздерем.:-)

EVaGuseva, Вам надо разово преобразовать эту колонку?  Формульный вариант с последующим ручным копированием значений рассматриваете или нужна волшебная  кнопка с макросом?

=TRIM(RIGHT(SUBSTITUTE(D2;"  ";REPT(" ";Len(D2)));len(d2)))
Изменено: БМВ - 25.07.2018 12:03:56
По вопросам из тем форума, личку не читаю.
 
Очень нужен макрос, так как таблица в таком виде может приходить по два три раза на неделе
 
Анализирую таблицу. Начинаться может с разных цифр, есть ещё и буквы. В ячейках вообще нет пробелов
 
Формула не работает
 
Цитата
EVaGuseva написал:
Формула не работает
Вопрос спорный, скорее всего надо локализовать а не просто вставлять
Цитата
EVaGuseva написал:
В ячейках вообще нет пробелов
тогда надо смотреть реальные данные. Что формула что макрос не обладают даром предвидения.
По вопросам из тем форума, личку не читаю.
 
А можно показать, что должно получиться?
 
=ПОДСТАВИТЬ(ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(D2);" изм";"\\изм");" (В";СИМВОЛ(10)&"(В");" ";ПОВТОР(" ";99));99);"\\";" ")
=СЖПРОБЕЛЫ(ПОДСТАВИТЬ(ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(СЖПРОБЕЛЫ(D2);" изм";"\\изм");" (В";СИМВОЛ(10)&"(В");" ";ПОВТОР(" ";99));99);"\\";" "))
Изменено: Catboyun - 25.07.2018 12:59:34
 
Цитата
EVaGuseva написал:
Как это реализовать с помощью макроса,
примерно так:
Код
Sub t()
    Dim a, Ивент_№$
    a = Split(ActiveCell.Value, "  ")
    Ивент_№ = a(UBound(a))
End Sub

(в кавычках два пробела)
Изменено: Михаил С. - 25.07.2018 13:14:18 (орфографическая ошибка)
 
Или формулой:
=СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(RC[-3];" ";ПОВТОР(" ";100));100))
Изменено: Михаил С. - 25.07.2018 13:28:58
 
Спасибо за помощь. Ничего не помогло. Формулы и макрос не работают.  
 
Значит ваш пример далек от достоверных данных.
 
Михаил С., :-)
Цитата
БМВ написал:
=TRIM(RIGHT(SUBSTITUTE(D2;"  ";REPT(" ";Len(D2)));len(d2)))

EVaGuseva,
Цитата
БМВ написал:
тогда надо смотреть реальные данные. Что формула что макрос не обладают даром предвидения.
По вопросам из тем форума, личку не читаю.
 
Друзья, помогите разобраться.
Во вложении пример с конкретными данными
Что есть в ячейке Е и что в результате необходимо получить в ячейке F
 
=ПОДСТАВИТЬ(СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ЕСЛИ(ПРАВБ(E4)=СИМВОЛ(10);ПОДСТАВИТЬ(E4;СИМВОЛ(10);;ДЛСТР(E4)-ДЛСТР(ПОДСТАВИТЬ(E4;СИМВОЛ(10);)));E4);СИМВОЛ(10)&"(";" (");СИМВОЛ(10);ПОВТОР(" ";99));99));" (";СИМВОЛ(10)&"(")
Изменено: Catboyun - 25.07.2018 16:53:15
 
=TRIM(RIGHT(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(IF(RIGHT(E4;1)=CHAR(10);LEFT(E4;LEN(E4)-1);E4);CHAR(10)&"(";CHAR(7));CHAR(10);REPT(" ";LEN(E4)));CHAR(7);CHAR(10)&"(");LEN(E4)))
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх