Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
19.04.2024, 07:08:53

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 242 Сообщений в 5 457 Тем от 6 758 Пользователей
Последний пользователь: Сергей2662
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Удаление дубликатов и поиск уникальных значений в столбцах
Страниц: [1]   Вниз
Печать
Автор Тема: Удаление дубликатов и поиск уникальных значений в столбцах  (Прочитано 5064 раз)
0 Пользователей и 1 Гость смотрят эту тему.
maaad
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 24


Просмотр профиля E-mail
« : 14.10.2016, 07:18:27 »

Добрый день!

Друзья, нужна помощь, необходим скрипт выполняющий работу: Удаление дубликатов и поиск уникальных значений в столбцах.

Описание:
Есть три столбца. Необходимо сформировать четвёртый. Третий столбец исходный. Нужно сравнить значения в 1, 2 и 3 столбцах, и если
 - значение присутствует во всех трёх столбцах, то в четвёртом это значение не нужно;
 - значение присутствует либо в первом столбце либо во втором, но его нет в третьем, то скопировать в четвёртый;
 - значение присутствует и в первом и во втором столбце, но его нет в третьем, то скопировать в четвёртый.

Пробовал сводную таблицу, удаление дубликатов, условное форматирование - Не помогло.

Заранее благодарю.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #1 : 14.10.2016, 09:02:58 »

Вы бы показали какой должен быть результат. Что означает "значение присутствует во всех столбцах"? Как при этом просматривать столбцы? Полностью или только в пределах одной строки?
Какое вообще значение нужно брать для каждой строки и как сравнивать? Ведь если брать из каждого столбца - то получится, что все значения будут присутствовать...
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
maaad
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 24


Просмотр профиля E-mail
« Ответ #2 : 14.10.2016, 10:24:28 »

The_Prist, результат приложен, выделен по цветам для понимания.
Столбцы просматривать полностью.
« Последнее редактирование: 14.10.2016, 11:36:27 от vikttur » Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #3 : 14.10.2016, 11:54:02 »

Посмотрите, эта формула подойдет?
=ИЛИ(СЧЁТЕСЛИ($H$2:$I$20;G2)>=2;(СЧЁТЕСЛИ($G$2:$G$20;G2)+СЧЁТЕСЛИ($I$2:$I$20;G2))>=2)
вписываете в столбец. Где ЛОЖЬ(FALSE) - те значения из столбца 1 можно перенести в J.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
maaad
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 24


Просмотр профиля E-mail
« Ответ #4 : 14.10.2016, 14:05:12 »

Уважаемый The_Prist мне необходимы в итоге значения в четвёртом столбце, а не Истина/Ложь.

Спасибо!
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #5 : 14.10.2016, 15:05:43 »

Ага. А потом напишите, что это нужно непременно макросом? Озвучьте сразу все условия, чтобы не отнимать чужое время. Потому как Вы упомянули в первом сообщении условное форматирование я предположил, что цель только выявить значения, но не помещать их в отдельный столбец.
Спасибо.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Perfect2You
Постоялец
***

Репутация: +12/-0
Офлайн Офлайн

Сообщений: 106


Просмотр профиля E-mail
« Ответ #6 : 14.10.2016, 17:44:41 »

Доброго времени суток.
Насколько я понял, упрощенно сформулировать Вашу проблему так: в столбец результата должны попасть значения, встречающиеся в первых двух столбцах, но не встречающиеся в третьем. Причем попасть в столбец результата единожды.
Код: (vb)
Sub NewV()
Dim CC As Range
Dim i As Long

    i = 2
    For Each CC In Range("G2:H20")
        If Application.IsError(Application.Match(CC.Value, Range("I2:I20"), 0)) And _
                Application.IsError(Application.Match(CC.Value, Range("J2:J" & i), 0)) Then
            Range("J" & i).Value = CC.Value
            i = i + 1
        End If
    Next CC
End Sub

У меня вот так получилось.
Записан
maaad
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 24


Просмотр профиля E-mail
« Ответ #7 : 17.10.2016, 06:13:26 »

2 The_Prist
Да, забыл упомянуть что необходим был макрос. В голове крутился вопрос про макрос, а написать забыл. Сорри.

2 Perfect2You
Спасибо. Проверил, ваш макрос отработал корректно.
« Последнее редактирование: 17.10.2016, 11:41:41 от vikttur » Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru