Страницы: 1
RSS
Выделение ячеек в множественном диапазоне
 
День добрый! Прошу Вашей помощи в решении следующей задачи:
Есть определенный список значений (столбец В), надо каким-либо образом выделить в нем те значения, которые попадают в промежуток между значениями в столбцах D и E (D2:E2, D3:E3 и т.д.), не могу понять как сделать, чтобы учитывались все множество диапазонов из данных столбцов.
 
Код
C2:C685    =СУММ(F2:FE2)>0
F2:FE685    =($B2>=F$687)*($B2<=F$688)
F687:FE687    =СМЕЩ($D$2;СТОЛБЕЦ()-СТОЛБЕЦ($F:$F);0)
F688:FE688    =СМЕЩ($E$2;СТОЛБЕЦ()-СТОЛБЕЦ($F:$F);0)
В ячейку C2 вставьте формулу =СУММ(F2:FE2)>0 и протяните до C685.
 
МатросНаЗебре, спасибо большое, сейчас попробую, но для чего тут фигурируют ячейки FE?
 
Здравствуйте
?
=СЧЁТЕСЛИМН(D:D;"<="&B2;E:E;">="&B2)
 
Обе формулы отлично работают, спасибо
 
Павел \Ʌ/, а не подскажете еще, есть ли возможность в эту формулу вставить дополнительные условия, например: в строке G указаны дополнительные значения для каждого интервала и нужно, чтобы отмечались только те ячейки, которые И попадают в диапазон И удовлетворяют числовому условию из столбца G (например больше 900)?
На всякий случай приложу свой вариант решения через лютейшие костыли
 
Вариант макросом.
Код
Option Explicit

Private Const MAGIC_LIMIT = 900

Sub MarkFenced()
    MarkRange Range("B2:B685"), Range("C2"), Range("E2:G157")
End Sub

Private Sub MarkRange(dataRange As Range, targetRange As Range, condRange As Range)
    Dim drr As Variant: drr = dataRange.Value
    Dim trr As Variant: ReDim trr(1 To UBound(drr, 1), 1 To UBound(drr, 2))
    Dim crr As Variant: crr = condRange.Value
    
    Dim yd As Long
    Dim yc As Long
    For yd = 1 To UBound(drr, 1)
        trr(yd, 1) = 0
        For yc = 1 To UBound(crr, 1)
            If crr(yc, 3) > MAGIC_LIMIT Then
                If drr(yd, 1) >= crr(yc, 1) Then
                    If drr(yd, 1) <= crr(yc, 2) Then
                        trr(yd, 1) = 1
                        Exit For
                    End If
                End If
            End If
        Next
    Next
    
    targetRange.Resize(UBound(trr, 1), UBound(trr, 2)).Value = trr
End Sub
 
МатросНаЗебре, спасибо большое!
 
Цитата
MTTVBL: вставить дополнительные условия
что мешает?
=СЧЁТЕСЛИМН(E:E;"<="&B2;F:F;">="&B2;G:G;">900")
Страницы: 1
Наверх