Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Выборка из массива и если есть совпадение замена значения - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Выборка из массива и если есть совпадение замена значения
ches66 Дата: Понедельник, 08.10.2018, 22:13 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Всем доброго дня, просьба помочь. Нужно на листе 1 в столбце "телефон" найти номер из листа 2 и если будет совпадение то в той строке где есть совпадение заменить значение из столбца источник на значение "директ"
К сообщению приложен файл: 4645138.xls (85.5 Kb)
 
Ответить
СообщениеВсем доброго дня, просьба помочь. Нужно на листе 1 в столбце "телефон" найти номер из листа 2 и если будет совпадение то в той строке где есть совпадение заменить значение из столбца источник на значение "директ"

Автор - ches66
Дата добавления - 08.10.2018 в 22:13
ches66 Дата: Понедельник, 08.10.2018, 22:32 | Сообщение № 2
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Лучше наверное макросом
 
Ответить
СообщениеЛучше наверное макросом

Автор - ches66
Дата добавления - 08.10.2018 в 22:32
_Boroda_ Дата: Понедельник, 08.10.2018, 23:50 | Сообщение № 3
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Так нужно?
Формулой (формула массива вводится одновременным нажатием Контрл Шифт Ентер)
Код
=ЕСЛИ(СЧЁТ(ПОИСК(Лист2!A$1:A$234;B2));"директ";C2)

Макросом
[vba]
Код
Sub tt()
    With Sheets("Лист2")
        n_ = .Cells(.Rows.Count, 1).End(3).Row
        ar = .Cells(1).Resize(.Cells(.Rows.Count, 1).End(3).Row)
    End With
    d_ = "Директ"
    n1_ = Cells(Rows.Count, 2).End(3).Row - 1
    ar1 = Cells(2, 2).Resize(n1_)
    ar2 = Cells(2, 3).Resize(n1_)
    With CreateObject("Scripting.Dictionary")
    'словарь нужен, чтобы убрать множественные дубликаты в листе2. Можно без этого, но на больших объемах лучше без дублей
    'можно было удалить дубли сразу на листе 2, но можно ли там что-то менять? Не знаю
        For r = 1 To n_
            a = .Item(ar(r, 1))
        Next r
        nn_ = .Count - 1
        For i = 1 To n1_
            For j = 0 To nn_
                If ar2(i, 1) <> d_ Then
                    If InStr(ar1(i, 1), .keys()(j)) Then
                        ar2(i, 1) = d_
                    End If
                End If
            Next j
        Next i
    End With
    Cells(2, 3).Resize(n1_) = ar2
End Sub
[/vba]
К сообщению приложен файл: 4645138_1.xlsm (45.0 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТак нужно?
Формулой (формула массива вводится одновременным нажатием Контрл Шифт Ентер)
Код
=ЕСЛИ(СЧЁТ(ПОИСК(Лист2!A$1:A$234;B2));"директ";C2)

Макросом
[vba]
Код
Sub tt()
    With Sheets("Лист2")
        n_ = .Cells(.Rows.Count, 1).End(3).Row
        ar = .Cells(1).Resize(.Cells(.Rows.Count, 1).End(3).Row)
    End With
    d_ = "Директ"
    n1_ = Cells(Rows.Count, 2).End(3).Row - 1
    ar1 = Cells(2, 2).Resize(n1_)
    ar2 = Cells(2, 3).Resize(n1_)
    With CreateObject("Scripting.Dictionary")
    'словарь нужен, чтобы убрать множественные дубликаты в листе2. Можно без этого, но на больших объемах лучше без дублей
    'можно было удалить дубли сразу на листе 2, но можно ли там что-то менять? Не знаю
        For r = 1 To n_
            a = .Item(ar(r, 1))
        Next r
        nn_ = .Count - 1
        For i = 1 To n1_
            For j = 0 To nn_
                If ar2(i, 1) <> d_ Then
                    If InStr(ar1(i, 1), .keys()(j)) Then
                        ar2(i, 1) = d_
                    End If
                End If
            Next j
        Next i
    End With
    Cells(2, 3).Resize(n1_) = ar2
End Sub
[/vba]

Автор - _Boroda_
Дата добавления - 08.10.2018 в 23:50
ches66 Дата: Вторник, 09.10.2018, 07:50 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Спасибо !!! На вашем файле все сработало!!! Я добавил в файл еще строки , и перестало работать, но там есть пустые ячейки в столбце B , макрос их обработает ? Дубли конечно можно удалять. Главное сопоставить номера, и если есть то поменять в столбце C источник на "директ"
К сообщению приложен файл: 5920653.xlsm (76.5 Kb)
 
Ответить
Сообщение_Boroda_, Спасибо !!! На вашем файле все сработало!!! Я добавил в файл еще строки , и перестало работать, но там есть пустые ячейки в столбце B , макрос их обработает ? Дубли конечно можно удалять. Главное сопоставить номера, и если есть то поменять в столбце C источник на "директ"

Автор - ches66
Дата добавления - 09.10.2018 в 07:50
_Boroda_ Дата: Вторник, 09.10.2018, 09:27 | Сообщение № 5
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
и перестало работать

А поконкретнее? Что перестало, где перестало, как нужно, чтобы работало?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
и перестало работать

А поконкретнее? Что перестало, где перестало, как нужно, чтобы работало?

Автор - _Boroda_
Дата добавления - 09.10.2018 в 09:27
ches66 Дата: Вторник, 09.10.2018, 13:07 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Итак в вашем файле который вы прислали нажимашь кнопку заполнить и все прекрасно работает, в какой строчке находит телефон меняет статус на "директ", я добавил к существующим строкам строки которые мне еще нужно обработать и теперь весь файл перестал обрабатываться - полностью. Нажимаешь кнопку и ничего не происходит. Файл с новымми строками прикреплял выше. В строках которые добавил встречаются пустые ячейки с незаполненным номером. Спасибо.


Сообщение отредактировал ches66 - Вторник, 09.10.2018, 13:12
 
Ответить
Сообщение_Boroda_, Итак в вашем файле который вы прислали нажимашь кнопку заполнить и все прекрасно работает, в какой строчке находит телефон меняет статус на "директ", я добавил к существующим строкам строки которые мне еще нужно обработать и теперь весь файл перестал обрабатываться - полностью. Нажимаешь кнопку и ничего не происходит. Файл с новымми строками прикреплял выше. В строках которые добавил встречаются пустые ячейки с незаполненным номером. Спасибо.

Автор - ches66
Дата добавления - 09.10.2018 в 13:07
_Boroda_ Дата: Вторник, 09.10.2018, 14:13 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16718
Репутация: 6505 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Кнропка "Вернуть" - это не для Вас, это мне возврат нужен был для проверки. Эта кнопка да, она на конкретный диапазон была (до строки 65), чтобы не морочиться, но Вас это вообще волновать не должно
Вам нужна кнопка "Заполнить", которая работает с любыми диапазонами.
Какая КОНКРЕТНО строчка Вас не устраивает? Где не меняет?

Держите на всякий случай файл с одной кнопкой и без возврата предыдущих значений.
К сообщению приложен файл: 5920653_2.xlsm (68.4 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеКнропка "Вернуть" - это не для Вас, это мне возврат нужен был для проверки. Эта кнопка да, она на конкретный диапазон была (до строки 65), чтобы не морочиться, но Вас это вообще волновать не должно
Вам нужна кнопка "Заполнить", которая работает с любыми диапазонами.
Какая КОНКРЕТНО строчка Вас не устраивает? Где не меняет?

Держите на всякий случай файл с одной кнопкой и без возврата предыдущих значений.

Автор - _Boroda_
Дата добавления - 09.10.2018 в 14:13
ches66 Дата: Вторник, 09.10.2018, 14:25 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 5
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
_Boroda_, Все извините проверил, блин я не с тем с сравнивал ,я сравнивал уже с переделанной таблицей !!! Все работает здорово! Спасибо большое! hands
 
Ответить
Сообщение_Boroda_, Все извините проверил, блин я не с тем с сравнивал ,я сравнивал уже с переделанной таблицей !!! Все работает здорово! Спасибо большое! hands

Автор - ches66
Дата добавления - 09.10.2018 в 14:25
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!