Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2010, 10:40   #1
zinovevaon
Новичок
Джуниор
 
Регистрация: 13.12.2010
Сообщений: 6
По умолчанию Пересечение столбцов

Здравствуйте! Подскажите пож-та, требуется решить след. задачу в екселе.
На одном листе в екселе в столбцах есть цифры. Необходимо закрасить в красный все ячейки, значения которых встречаются в других столбцах. То есть берем значение из ячейки A1 сравниваем его со столбцами В, С, D и тд, если в столбцах найдено такое же значение, то закрашиваем обе ячейки в красный. Берем след. ячейку A2 и сравниваем ее со столбцами B, C, D и тд. Так сравниваем все ячейки со столбца А. Затем берем ячейку B1 и сравниваем ее со столбцами A, C, D и др. при нахождении совпадающей ячейки закрашиваем в красный цвет и так просматриваем все ячейки до конца.
Решила эту задачу с помощью Условного форматирования, но надо универсальный макрос, который можно использовать постоянно.
zinovevaon вне форума Ответить с цитированием
Старый 13.12.2010, 11:15   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

1.был уверен до сегодня, что столбцы не пересекаются...
2.Вам нужен макрос или Вам надо закрасить в столбцах А,В,С,Д одинаковые значения, если они там встречаются?
закрасить - типичная задача для условного форматирования и формула элементарная... см.вложение
Вложения
Тип файла: rar Книга493.rar (3.2 Кб, 19 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 13.12.2010, 11:23   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
1.был уверен до сегодня, что столбцы не пересекаются...
Да... Я их пытался "искривить", но...

Можно и макросом. К тому же, можно разные значения окрасить разным цветом. Например, так:
Код:
Sub Main()
    Dim i As Long, j As Integer: Cells.Interior.ColorIndex = xlNone
    With Application
        .FindFormat.Clear: .ReplaceFormat.Clear: .ScreenUpdating = False: j = 2
        For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
            If Cells(i, 1) <> "" Then
                If Application.CountIf(Intersect(ActiveSheet.UsedRange, [B:IV]), Cells(i, 1)) > 0 Then
                    If j > 18 Then j = 3 Else j = j + 1
                    .ReplaceFormat.Interior.ColorIndex = j
                    .ActiveSheet.UsedRange.Replace Cells(i, 1), Cells(i, 1), xlWhole, , , , , True
    End If: End If: Next: .ScreenUpdating = True: End With
End Sub
Пример во вложении. Откройте файл и запустите макрос "Main".
Вложения
Тип файла: rar Книга1.rar (8.0 Кб, 25 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 13.12.2010 в 11:40.
SAS888 вне форума Ответить с цитированием
Старый 13.12.2010, 11:30   #4
zinovevaon
Новичок
Джуниор
 
Регистрация: 13.12.2010
Сообщений: 6
По умолчанию

Если можно легко и быстро сделать универсально для всех столбцов через условное форматирование то я ЗА, но я только как-то сложно придумала. получается надо задать условие для одной ячейки и скопировать на весь лист. но тут возникают проблемы: если значения одинаковые в ячейках А10 и D15, то их надо закрашивать, а если значения одинаковые в B10 и B25, то их закрашивать не надо, поэтому условие >1 не подходит...
я почему-то считала что столбцы оч легко можно пересечь)))
zinovevaon вне форума Ответить с цитированием
Старый 13.12.2010, 11:31   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

А мой вариант пробовали? В нем такого нет.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.12.2010, 11:42   #6
zinovevaon
Новичок
Джуниор
 
Регистрация: 13.12.2010
Сообщений: 6
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
А мой вариант пробовали? В нем такого нет.
Попробовала! Красиво получается, только у вас сравниваются значения с первого столбца со всеми остальными столбцами и все, а мне надо чтоб и дальше шло сравнение, то есть теперь значения из столбца B сравнивались со столбцами A, C D и тд. затем столбец C сравнивался со столбцами A,B,D и тд.
zinovevaon вне форума Ответить с цитированием
Старый 13.12.2010, 11:45   #7
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
...у вас сравниваются значения с первого столбца со всеми остальными столбцами и все, а мне надо чтоб и дальше шло сравнение...
И что при этом окрашивать? По-моему, "каша" получится...
Прикрепите файл с данными, окрашенными так, как Вам требуется.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.12.2010, 13:06   #8
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Может zinovevaon хочет подсвечивать дубликаты активной ячейки?
ZORRO2005 вне форума Ответить с цитированием
Старый 13.12.2010, 13:14   #9
zinovevaon
Новичок
Джуниор
 
Регистрация: 13.12.2010
Сообщений: 6
По умолчанию

Мне надо, примерно следующее. делала через условное форматированние, но что-то уж очень сложно получилось
Вложения
Тип файла: rar таблица.rar (3.1 Кб, 14 просмотров)
zinovevaon вне форума Ответить с цитированием
Старый 13.12.2010, 14:22   #10
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

я взял Ваши данные, вставил в книгу493 как значения (не копированием, а спец.вставка "значения").
что называется - найдите 10 отличий...
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
пересечение массивов на С++ drakon803 Помощь студентам 4 09.12.2012 10:29
Дан двухмерный массив из 20 столбцов. Вставить в него столбец из чисел 10 после всех четных столбцов. Дмитрий142 Помощь студентам 9 07.06.2012 19:32
Пересечение дат Sanprof Общие вопросы Delphi 1 02.06.2010 18:16
Пересечение отрезков Пaвeл Помощь студентам 1 30.04.2010 05:46
Пересечение графиков Foxx Microsoft Office Excel 5 01.04.2010 22:38