Новости:

Из правил форума: Тема должна отражать суть вопроса, топики типа "help please" будут удаляться!

Главное меню

Переопределение ячеек

Автор Евгений Владимирович, 18.03.2014, 08:58

« назад - далее »

Евгений Владимирович

Подскажите, умные люди, как решить проблему:
Столбик А содержит различные названия материалов, которые часто повторяются (отличаются между собой пробелом/запятой/точкой), столбик С содержит норму этого материала в изделии. Необходимо на новом листе сделать что то вроде переопределения, различные вариации одного материала приравнять к оригинальному названию этого материала и при запуске макроса в столбце А названия материалов изменились бы до оригинальных.
P.S. более подробное описание-в файле

kuklp

Если только
Цитироватьотличаются между собой пробелом/запятой/точкой
то можно сравнивать значения, предварительно удалив все эти знаки. Если же есть различия в написании обозначений, порядке написания, то только руками. Приводите все к единому виду. Машина не умеет абстрактно мыслить.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Евгений Владимирович

абстрактно мыслить и не нужно, можно ведь где нибудь на отдельном листе приравнять все варианты написания одного наименования к оригиналу и при запуске макроса все не оригинальные названия заменялись на оригинальное. или это из области фантастики?:)

kuklp

Не вопрос, делайте таблицу подстановки, если уверены, что все варианты косяков сможете перечислить. Тогда через ВПР или Индекс Поискпоз забирайте правильные значения.
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Евгений Владимирович

не совсем то, в прикрепленном в самом начале файле на листе "норма":
из 1С вставил нормы на изделие (A3:C33), столбец D ищет цены в материальном отчете по названию материалов и ед.изм. Ячейки A38:B43 необходимо приравнять к ячейкам D40:E40, написать макрос, который при запуске будет просматривать ячейки A3:C33 и сравнивать с ячейками A38:B43, при нахождении-заменять на ячейки D40:E40.
P.S. ед. измерения можно убрать, дабы облегчить поиск. Таких сопоставлений будет куча, но если их сделать, то можно не париться ещё пару лет, все как по маслу пойдет:)

kuklp

Вот макрос, к-рый поменяет в листе Норма наименования по таблице соответствий.
Public Sub www()
    Dim a, sh As Worksheet, i&, r As Range
    a = Sheets("Таблица_соотв").[a1].CurrentRegion
    With CreateObject("scripting.dictionary")
        For i = 1 To UBound(a)
            .Item(a(i, 1)) = a(i, 2)
        Next
        Set sh = Worksheets("Норма")
        a = sh.Range("a3:a" & [a3].End(xlDown).Row)
        For i = 1 To UBound(a)
            If .exists(a(i, 1)) Then a(i, 1) = .Item(a(i, 1))
        Next
    End With
    sh.[a3].Resize(UBound(a)) = a
End Sub

Дальше простой ВПР. Поубирал объединения ячеек на листах. Хотите нормально работать с таблицами - избегайте объединения ячеек.
Удачи!
Я, как всегда, чертовски адекватен... Email: pilipnikop@yandex.ua WM Z206653985942, R334086032478, U238399322728, E332314026771

Евгений Владимирович

Идеально) спасибо громаднейшее)