2015-03-10 2 views
0

Я искал Google для некоторой помощи в этой проблеме Excel, но безрезультатно.Excel проверяет диапазон для нескольких значений

У меня есть четыре ячейки ввода A1: A4 и одна выходная ячейка A5. Если ячейка A1 содержит слово «красный», я хочу, чтобы выходная ячейка была изменена с «Нет» (или пустой) на «Да». Если ячейки A2: A4 содержат слова «зеленый» или «синий», я хочу, чтобы выходная ячейка A5 была изменена с «Нет» (или пустой) на «Да». Если содержимое ячеек A1: A4 изменится на любое другое значение или пустое, я хочу, чтобы выходная ячейка A5 была изменена на пустую или «Нет».

После завершения решения будет скопировано несколько последующих строк, поэтому мне нужно будет его динамически обновлять, когда он копирует или когда он выполняется, чтобы гарантировать, что он ссылается в правильной строке.

До сих пор у меня есть следующая формула, встроенная в Cell A5, и она работает нормально.

= IF (ISNUMBER (MATCH ("Красный", $ A1: $ ± 1,0)), "Да", "Нет")

Я изо всех сил, чтобы включить условия, мне нужно для ячеек A2: A4.

Я пробовал условное форматирование, модули VBA и формулы, непосредственно встроенные в ячейки, но мне не очень повезло.

Любая помощь была бы принята с благодарностью.

-Michael

+0

Вот довольно уродливая формула который должен вас запустить: '= IF (ISNUMBER (MATCH (« Красный », $ A1: $ A1,0)),« Да », IF (COUNTIF (A2: A4,« зеленый »)> 0,« Да », ЕСЛИ (СЧЁТЕСЛИ (A2: A4, "синий")> 0, "Да", "Нет"))) ' –

ответ

0

Я использовал ответ предоставленный Portland Runner:

= IF (IsNumber (MATCH ("Red", $ A1: $ ± 1,0)), "Да", IF (COUNTIF (A2: A4, «зеленый»)> 0, «Да», IF (COUNTIF (A2: A4, «синий»)> 0, «Да», «Нет»)))

0

Вот UDF, который будет работать для вашей конкретной ситуации. Скопируйте этот код в модуль и введите «= RngVal()» в A5, и он будет заполняться «Да» или «Нет» на основе ваших критериев.

Function RngVal() as String 
Dim flg as Boolean 
Dim c as Range 
If Range("A1") = "red" Then 
RngVal = "Yes" 
Else 
For Each c in Range("A2:A4") 
    If c = "blue" or c = "green" Then 
    flg = true 
    Exit For 
    End If 
Next c 
If flg = True 
RngVal = "Yes" 
Else 
RngVal = "No" 
End If 
End Function 
Смежные вопросы