Страницы: 1
RSS
заменить список кодов на список слов и наоборот
 
Добрый день,
помогите пожалуйста, сделать такую задачку.
Есть таблица из 4000 строк, в ней есть колонка №1 - товары, и колонка №2 - списки кодов групп, к которым относятся товары (кодов - 50 видов, они могут быть двузначными и трехзначными). Каждому коду соответствует название группы товаров в виде слова или словосочетания (соответствие указано в таблице соответствий). Так как товар может относится к нескольким группам, то каждому товару соответствует список кодов, в списке коды перечислены через запятую.

Задача 1: Нужно массово заменить список кодов на список групп и вставить эти замены по каждому товару в колонку №3.
Задача 2: Похожа на задачу1, разница только в том, что в колонке №2 перечислены группы товаров, и
нужно массово заменить список групп на список кодов и вставить эти замены по каждому товару в колонку №3.
Пример в файле во вложении
 
Можно написать одну несложную UDF, на обе задачи.
Но Вы ведь не знаете, что это такое?
Если не знаете - применять будет затруднительно...
Я в файле сейчас показать не смогу.
 
Код
Function KodiGruppi(tabl, prov As String)
    Dim i&, el, out$
    tabl = tabl.Value

    With CreateObject("Scripting.Dictionary"): .comparemode = 1
        For i = 1 To UBound(tabl)
            .Item(Trim(tabl(i, 1))) = Trim(tabl(i, 2))
            .Item(Trim(tabl(i, 2))) = Trim(tabl(i, 1))
        Next

        For Each el In Split(prov, ",")
            If .exists(Trim(el)) Then out = out & ", " & .Item(Trim(el))
        Next
    End With

    KodiGruppi = Mid(out, 3)
End Function
 
Всегда читаю ваши ответы, Игорь! Просто и красиво.
 
Добавил UDF в файл.
 
спасибо большое!
 
Как вариант.
 
В С11 и протянуть:
=ВПР(--ПСТР(B11;1;ПОИСК(",";B11)-1);$A$4:$B$7;2  ;)  &", "&ВПР(--ПСТР(B11;ПОИСК(",";B11)+1;3);$A$4:$B$7;2  ;)  
=ВПР(--ПСТР(RC[-1];1;ПОИСК(",";RC[-1] ;) -1);R4C1:R7C2;2  ;)  &", "&ВПР(--ПСТР(RC[-1];ПОИСК(",";RC[-1] ;) +1;3);R4C1:R7C2;2  ;)  


Похожее для обратного преобразования (применение ИНДЕКС()+ПОИСКПОЗ())
 
спасибо всем за помощь!
 
Добрый день,
я попробовал применить предложенную формулу:
В С11 и протянуть:
=ВПР(--ПСТР(B11;1;ПОИСК(",";B11)-1);$A$4:$B$7;2 ;) &", "&ВПР(--ПСТР(B11;ПОИСК(",";B11)+1;3);$A$4:$B$7;2 ;)

к другому файлу - во вложении - формула вставлена в ячейку С141.

почему-то формула не работает - результат-  #Н/Д
не подскажите почему?
Изменено: veda108 - 03.12.2013 18:17:45 (по просьбе модератора)
 
Вы издеваетесь?
Зачем повтор вопроса, повтор ответа? сообщение на 1,5 экрана!
Зайдите и отредактируйте сообщение. Замечание модератора можно удалить.
Страницы: 1
Читают тему
Наверх