Условное форматирование с VLOOKUP на листах, где значение равно Да - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь выделить несколько ячеек на основе таблицы на другом листе.

У меня есть ряд имен в ячейках A1, A2, A3 и т. Д. На листе 1. На листе 2 у меня естьтаблица, в которой есть столбец (A) с такими же именами и другой столбец (B) со значением «Да» или «Нет».

Я пытаюсь получить имена на листе 1, чтобы выделить ихесли значение рядом с эквивалентным именем на листе 2 имеет рядом с ним значение «да».

Я пробовал это:

=VLOOKUP(A$1,'Sheet2'!$A$1:$B$26,2,0)="Yes"

Но ему почему-то не нравится.Нет ошибки, просто не работает.Любые идеи были бы так полезны!

Спасибо за ваше время!

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

Попробуйте это в Условное форматирование> Новое правило> Используйте формулу, чтобы определить ...:

=VLOOKUP($A1,'Sheet2'!$A$1:$B$26,2,0)="Yes"

И потяните вниз, чтобы скопировать только форматирование или изменить «Относится к» в меню «Условное форматирование».

Проблема была в том, что вы исправили строку, а не столбец.

0 голосов
/ 13 июня 2018

Вы не можете выделить ячейки на основе формулы.(Технически вы можете создать правило со скрытым столбцом, но все же ...).

Вероятно, проще сделать это с помощью vba

Private Sub highlight_names()

    Dim ws As Worksheet: Set ws1 = Sheets("Sheet1")
    Dim ws2 As Worksheet: Set ws2 = Sheets("Sheet2")

    Dim lr As Long, lr2 As Long
    lr = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
    lr2 = ws2.Cells(ws2.Rows.Count, 1).End(xlUp).Row

    Dim rng As Range: Set rng = ws.Range(Cells(1, 1), Cells(lr, 1))
    Dim rng2 As Range: Set rng2 = ws2.Range(Cells(1, 1), Cells(lr2, 1))

    For Each cell In rng
        For Each Name In rng2

            If (cell = Name And Name.Offset(0, 1) = "Yes") Then
                cell.Interior.Color = vbYellow
            End If

        Next Name
    Next cell


End Sub
...