Проверка, находится ли каждое число в списке между несколькими диапазонами - PullRequest
0 голосов
/ 03 октября 2019

У меня есть список номеров (которые будут меняться еженедельно), а также у меня есть список диапазонов (которые также меняются еженедельно). Мне нужно проверить, попадает ли каждое число между каждым диапазоном.

Например. Мой список чисел слева и мой список диапазонов справа.

    4               1   3
   10              67   99
   54             120  122
  155

Итак, мне нужно вернуть значение, если 4 находится между 1-3, а затем проверить, находится ли оно между 67-99 и тд. Затем верните значение, если 10 падает между 1-3 или 67-99 и т. Д.

Я пробовал array и vba, но я noob, и я не могу найти много примеров этой проблемы. Я имел успех со следующим вложенным если;

=IF(OR(AND(G2>$L$2,G2<$M$2),AND(G2>$L$3,G2<$M$3),AND(G2>$L$4,G2<$M$4),G2,"")
=IF(OR(AND(G3>$L$2,G3<$M$2),AND(G3>$L$3,G3<$M$3),AND(G3>$L$4,G3<$M$4),G3,"")

Однако, как только мое количество диапазонов становится больше определенного числа, оно говорит, что у меня слишком много символов.

Любая помощь будет принята.

С уважением, Уилл.

Ответы [ 2 ]

0 голосов
/ 04 октября 2019

Спасибо, Сиддарт. Это работает, но число строк будет меняться еженедельно, и ваш метод будет слишком утомительным, чтобы делать еженедельно.

Закончил работу над этим самостоятельно. Довольно просто, но забрал меня навсегда!

Sub Subtract_Start()

Set rng1 = Range(Range("G2"), Range("G2").End(xlDown))
Set rng2 = Range(Range("L2"), Range("L2").End(xlDown))


For i = 2 To rng1.Rows.count
For j = 2 To rng2.Rows.count

If Cells(i, "G").Value > Cells(j, "L").Value Then
If Cells(i, "G").Value < Cells(j, "M").Value Then


Cells(i, "G").Copy Cells(i, "J")


End If
End If

Next j

Next i


End Sub
0 голосов
/ 03 октября 2019

Итак, мне нужно вернуть значение, если 4 находится между 1-3, а затем проверить, находится ли оно между 67-99 и т. Д. . Затем возвращает значение, если 10 находится между 1-3 или 67-99 и т. Д.

Если вы хотите сопоставить каждое значение в столбце G со списком в L и M затем переставьте значения столбца G в строке, как показано ниже, чтобы вы могли получить весь вид за один раз .

enter image description here

Поместите эту формулу =(AND($N$1>L2,$N$1<M2)) в N2 и перетащите ее вниз. Аналогичным образом вставьте формулу =(AND($O$1>L2,$O$1<M2)) в O2, потяните вниз и так далее ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...