Страницы: 1
RSS
Вставить артикул после определенного значения в соседний столбец
 
Приветствую.
Есть таблица, в которой есть название товара
Мне необходимо найти артикул в этом названии (он всегда стоит после слова Makita)
Например Makita 123456, артикул здесь 123456, его мне нужно вставить в соседний столбец.
Спасибо вам заранее.
Изменено: atyurkov - 09.04.2020 15:21:07
 
Цитата
atyurkov написал:
он всегда стоит после слова Makita
а BOSH потом не появится в ваших списках
Лень двигатель прогресса, доказано!!!
 
Там много чего появится. Champion, Bosch, DeWalt и т.д.
 
1 артикул всегда в конце?
2 в конце тире и цифра не нужны?
Лень двигатель прогресса, доказано!!!
 
Нужны все значения после слова "Makita", Они именно в конце. Нужны и цифры и тире. Если еще можно будет в этих значениях удалить пробелы, то вообще будет огонь!
Они именно в конце.
Изменено: atyurkov - 09.04.2020 15:44:36
 
так
Код
=СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(A5;" ";ПОВТОР(" ";50));20))
Лень двигатель прогресса, доказано!!!
 
А что писать в кавычки?
 
Цитата
atyurkov написал:
А что писать в кавычки?
8-0  вам готовая формула дана ни в какие кавычки ни чего писать не надо
Лень двигатель прогресса, доказано!!!
 
Цитата
Сергей написал:
=СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(A5;" ";ПОВТОР(" ";50));20))
Он не вставляет таким макаром данные, в которых есть пробелы.
Например Makita BWR 124 Z, по формуле, которую Вы написали, он подставит только "Z" :( А нужно "BWR 124 Z"
Изменено: atyurkov - 09.04.2020 15:52:07
 
какой пример предоставили такое и решение покажите больше различных вариантов данных в примере  
Лень двигатель прогресса, доказано!!!
 
А можете помочь с решением моего коммента?
Цитата
atyurkov написал:
Например Makita BWR 124 Z, по формуле, которую Вы написали, он подставит только "Z"  А нужно "BWR 124 Z"

У меня завал, 150000 строк. Я неделю мышкой копировать буду сидеть :(
 
Код
Sub Дрель()
    Dim d As Object
    Set d = CreateObject("Scripting.Dictionary")
    d.CompareMode = 1
    d.Add "Makita", 0
    d.Add "Champion", 0
    d.Add "Bosch", 0
    d.Add "DeWalt ", 0
    
    Dim y As Long
    y = Cells(Rows.Count, 1).End(xlUp).Row
    If y = 1 Then y = 2
    Dim a As Variant
    Dim b As Variant
    a = Cells(1, 1).Resize(y)
    b = Cells(1, 2).Resize(y)
    
    Dim c As Variant
    Dim v As Variant
    Dim x As Long
    Dim s As String
    
    For y = 1 To UBound(a, 1)
        For Each v In d.keys
            x = InStr(LCase(a(y, 1)), LCase(v))
            If x > 0 Then
                s = Mid(a(y, 1), x)
                c = Split(s)
                If UBound(c) > 0 Then b(y, 1) = c(1)
            End If
        Next
    Next
    Cells(1, 2).Resize(UBound(b, 1)) = b
End Sub
 
Очень крутые символы, а как ими пользоваться?
Цитата
МатросНаЗебре написал:
12345678910111213141516171819202122232425262728293031323334S­ub Дрель()    Dim d As Object    Set d = CreateObject("Scripting.Dictionary")    d.CompareMode = 1    d.Add "Makita", 0    d.Add "Champion", 0    d.Add "Bosch", 0    d.Add "DeWalt ", 0         Dim y As Long    y = Cells(Rows.Count, 1).End(xlUp).Row    If y = 1 Then y = 2    Dim a As Variant    Dim b As Variant    a = Cells(1, 1).Resize(y)    b = Cells(1, 2).Resize(y)         Dim c As Variant    Dim v As Variant    Dim x As Long    Dim s As String         For y = 1 To UBound(a, 1)        For Each v In d.keys            x = InStr(LCase(a(y, 1)), LCase(v))            If x > 0 Then                s = Mid(a(y, 1), x)                c = Split(s)                If UBound© > 0 Then b(y, 1) = c(1)            End If        Next    Next    Cells(1, 2).Resize(UBound(b, 1)) = bEnd Sub
 
Цитата
atyurkov написал:
а как ими пользоваться
читать вслух перед сном
а по делу если вы не потрудитесь составить нормальный пример то так и будете бегать с постоянным а тут не работает а там не так вытаскивает
Лень двигатель прогресса, доказано!!!
 
Alt+F11
Правой кнопкой на папке Modules (слева)
Insert - Module
Вставить код с форума.
Запустить макрос.
Или F5 если мышь на тексте макроса.
Или вернуться в Excel Alt+F8
Выполнить.
Изменено: МатросНаЗебре - 09.04.2020 16:13:04
Страницы: 1
Наверх