Страницы: 1
RSS
Подсветить повторы в столбце по двум условиям
 
Добрый день.
Подскажите пожалуйста
Имеется таблица к примеру
     А              В
1  Год     № документа
2  2018       и123
3  2019       и123
4  2019       и123

Нужно подсветить повторы № документов за 2019 год, т.е. чтобы подсвечивалась только ячейка В4 (ну и В3 наверное), а В2 не подсвечивалась, т.е. как знак того, что в 2019 году какому-то документу ошибочно присвоили повторный номер.  Вариант отфильтровать по 2019 году и по условному форматированию подсветить повторяющийся значения не подходит. Спасибо заранее, если кто-то что-то подскажет
Изменено: hlm - 19.01.2020 17:46:57 (ошибка в тексте)
 
Огласите, пожалуйста, весь список документов. Повторы идут друг за другом или могут быть в разных местах?
 
Скажем между 2м и 3м повтором может несколько строк или несколько десятков строк. Но отследить надо именно дубль документа за 2019 год
 
hlm, вам как сделать? как здесь?
 
Нет это немного не то. Мне нужно, чтобы при вводе номера документа в ячейку, если такой номер уже есть в столбце, то ячейка бы окрасилась цветом. Конечно я пробовала это сделать через Условное формативание, но дело в том, что списке идут документы и за 2018 год, а он окрашивает и их, а мне так не надо.
 
Цитата
hlm написал:
Нет это немного не то
а вот так то?
    А              В
1  Год     № документа
2  2018       и123
3  2019       и123
4  2019       и123
 
Да, именно так и нужно
 
hlm,пользуйтесь
 
Спасибо, а чем пользоваться то?)
 
Код
=СЧЁТЕСЛИМН($A$1:A1;A2;$B$1:B1;B2)=0
В С2 и протянуть.
 
Код
Sub ПодсветитьПовторы()
    With ActiveSheet
        .Columns(2).Font.ColorIndex = xlAutomatic
        Dim a As Variant
        a = .Range(.Cells(1, 1), .Cells(.Rows.Count, 2).End(xlUp))
        Dim dic As Object
        Set dic = CreateObject("Scripting.Dictionary")
        Dim y As Long
        Dim s As String
        For y = 2 To UBound(a, 1)
            s = a(y, 1) & vbTab & a(y, 2)
            If dic.Exists(s) Then
                .Cells(y, 2).Font.Color = RGB(255, 0, 0)
            Else
                dic.Item(s) = y
            End If
        Next
    End With
End Sub
 
Цитата
hlm написал:
чем пользоваться то?)
так я же вам ссылку давал. вы хотя бы пример-скриншот закинули бы в тему - я бы вам в Photoshope сделал бы. а так вы пример прям на странице темы выдали, вот и решил я прям на странице темы.
без обид конешно. а вы в правилах были? пункт 2.3 видели?
 
Вот так?
 
Код
Sub ПодсветитьПовторы2()
    With ActiveSheet
        .Columns(2).Font.ColorIndex = xlAutomatic
        Dim a As Variant
        a = .Range(.Cells(1, 1), .Cells(.Rows.Count, 5).End(xlUp))
        Dim dic As Object
        Set dic = CreateObject("Scripting.Dictionary")
        Dim y As Long
        Dim s As String
        For y = 2 To UBound(a, 1)
            s = Year(a(y, 1)) & vbTab & a(y, 5)
            If dic.Exists(s) Then
                .Cells(y, 5).Font.Color = RGB(255, 0, 0)
            Else
                dic.Item(s) = y
            End If
        Next
    End With
End Sub
 
hlm, в теме же есть решение
 
Код
=СЧЁТЕСЛИМН($A$1:A3;">="&ДАТА(ГОД(A4);1;1);$A$1:A3;"<"&ДАТА(ГОД(A4)+1;1;1);$E$1:E3;E4)>0
Если нужно сделать через условное форматирование, то можно воспользоваться этой формулой.
 
Всем спасибо за помощь
Страницы: 1
Наверх