Страницы: 1 2 След.
RSS
Отбор интервала чисел в другом числовом диапазоне
 
Добрый день!

Подскажите пожалуйста, есть ли возможность представления интервала чисел в виде диаграммы (графика) в другом диапАзоне и вывода результата остатка в виде массива
Например есть основной интервал чисел от 0 до 100, и есть диапозон чисел входящих в этот диапозон, например 1..5, 7..10, 20..35, 90..100
 
Morphеus, уточните, что является исходными данными и в какой форме хотите результат
Соблюдение правил форума не освобождает от модераторского произвола
 
есть основной диапазон чисел, допустим от 0 до 100 (0..100)
и отдельно есть диапазон входящий в основной, например: 5,7,8,9,10 (5..10);   50,21,52,53 (51..53) и тд
можно ли вывести результат не задействованного диапазона в виде массива, в этом примере это: 0..5; 10..50; 53..100
Изменено: Morphеus - 10.07.2020 14:55:20 (100)
 
В каком виде массив? Виртуальный или в ячейках?
Если в ячейках, то такой массивной формулой можно:
=НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ((СТРОКА($1:$100)>=ТРАНСП(A$11:A$14))*(СТРОКА($1:$100)<=ТРАНСП(B$11:B$14));A$11:A$14^0)=0;СТРОКА($1:$100));СТРОКА(A1))
Файл перезалил.
Изменено: Светлый - 10.07.2020 15:12:00
 
Светлый, и виртуальный и в ячейках! А как быть если есть наложение, например: 1..20, 15..25, как исправить чтоб в массиве на выходе были так же 0  
 
Цитата
Morphеus написал:
на выходе были так же 0
При наложении 0?
 
Светлый, при наложении диапазонов  
 
Тогда такую формулу можно использовать:
=Ч(СУММПРОИЗВ((F5>=A$11:A$14)*(F5<=B$11:B$14))=1)
*А для виртуального массива такая:
=ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ((СТРОКА($1:$100)>=ТРАНСП(A$11:A$14))*(СТРОКА($1:$100)<=ТРАНСП(B$11:B$14));A$11:A$14^0)<>1;СТРОКА($1:$100));СТРОКА($1:$90));"")
Изменено: Светлый - 10.07.2020 15:34:26
 
Светлый, вроде бы всё , но нет. Почему то не получается, посмотрите пожалуйста вложение, выделил красным. в выделенных ячейках тоже должен быть результат "1"
Изменено: Morphеus - 10.07.2020 15:37:27
 
Цитата
Morphеus написал:
вроде бы всё , но нет
Всё правильно. При пересечении диапазонов получается 0.
Меньший диапазон внутри большего - пересечение.
 
Светлый, диапазон чисел от 7 до 10 (7..10) входит в диапазон чисел между 1..12, то есть наложение, как исключить такой момент, чтоб в столбце G напротив чисел от 1 до 12 были "1".  
так же с числами от 33..35
и в дополнение как сделать виртуальный массив с шагом 0,25?
Изменено: Morphеus - 10.07.2020 16:32:59
 
Цитата
Morphеus написал:
как исправить чтоб в массиве на выходе были так же 0
Всё таки не 0, а 1:
=Ч(СУММПРОИЗВ((F5>=A$11:A$14)*(F5<=B$11:B$14))>0)
 
Светлый, Спасибо большое!
еще подскажите пожалуйста, как сделать виртуальный массив с шагом например 0,25
=НАИМЕНЬШИЙ(ЕСЛИ(МУМНОЖ((СТРОКА($1:$500)>=ТРАНСП(A$11:A$14))*(СТРОКА($1:$500)<=ТРАНСП(B$11:B$14));A$11:A$14^0)=0;СТРОКА($1:$500));СТРОКА(A1))
Изменено: Morphеus - 10.07.2020 16:47:13
 
Цитата
Morphеus написал:
с шагом например 0,25
Фрагменты формулы:
СТРОКА($1:$500)
заменить на:
СТРОКА($1:$500)/4
 
=SMALL(IF(COUNTIFS($A$11:$A$14;"<="&ROW($A$1:$A$500);$B$11:$B$14;">="&ROW($A$1:$A$500))=0;ROW($A$1:$A$500));ROW(A1))
=SMALL(IF(COUNTIFS($A$11:$A$14;"<="&ROW($A$1:$A$500);$B$11:$B$14;">="&ROW($A$1:$A$500))=0;ROW($A$1:$A$500));ROW($A$1:$A$500))
Думаю будет шустрее
По вопросам из тем форума, личку не читаю.
 
БМВ, Работает намного шустрее, но когда начинаешь работать с большим количеством значений (10 - 20 диапазонов) и еще увеличил основной диапазон, то начинает так же подвисать,
=НАИМЕНЬШИЙ(ЕСЛИ(СЧЁТЕСЛИМН($A$8:$A$20;"<="&СТРОКА($A$1:$A$15000)/100;$B$8:$B$20;">="&СТРОКА($A$1:$A$15000)/100)=0;СТРОКА($A$1:$A$15000)/100);СТРОКА(A1))
ещё шаг уменьшил до сотых
Изменено: Morphеus - 12.07.2020 18:13:09 (формула цвет)
 
давайте тогда определятся, что нужно. И Светлый и я каждый раз просчитываем , хоть и разным методом. весь объем и определять наименьший из тысяч тысячи раз - печалька. но ведь это не требуется. Можно еще на подлете исключать те значения, что уже определены. на предыдущем шаге.
=MIN(IF(COUNTIFS($A$11:$A$14;"<="&ROW(INDEX(A:A;J5+1):$A$500);$B$11:$B$14;">="&ROW(INDEX(A:A;J5+1):$A$500))=0;ROW(INDEX(A:A;J5+1):$A$500)))
А может даже так
=MATCH(1=1;COUNTIFS($A$11:$A$14;"<="&ROW(INDEX(A:A;K4+1):$A$500);$B$11:$B$14;">="&ROW(INDEX(A:A;K4+1):$A$500))=0;)+K4
Изменено: БМВ - 12.07.2020 19:48:07
По вопросам из тем форума, личку не читаю.
 
БМВ, Светлый, Спасибо, что помогли. Но данные формулы всё равно тяжело справляются с большим количеством значений.
 
жмите кнопку во вложении
1. диапазоны не обязательно указывать по порядку
2. среди диапазонов могут быть как угодно пересекающиеся (накладывающиеся) диапазоны
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, ввожу шаг: 0,01   начало: 0  конец: 999 и диапазоны от 1 до 10
формируется список не вошедших чисел и в списке так же появляется число 10. Потом начиная с числа 10 все последующие числа повторяются (дублируются) по 10 раз
 
Цитата
Morphеus написал:
Но данные формулы всё равно тяжело справляются с большим количеством значений
пример то будет, с большим количеством значений?
По вопросам из тем форума, личку не читаю.
 
БМВ, файл ТУТ
Цитата
тяжело справляются с
это при том, что на выходе только целые числа
 
124 к  - это много , как ни крути.
По вопросам из тем форума, личку не читаю.
 
БМВ, а не проще сделать так, чтобы вывод данных был в виде: 0..1,1 / 9.9..10,5 / , чтобы каждое значение не перечислять
 
так это смотря что нужно, макросом - однозначно проще, формулой надо смотреть.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
макросом - однозначно проще,
было бы здорово, если при этом ещё учесть пересекающиеся (накладывающиеся) диапазоны
 
Цитата
Morphеus написал:
ввожу шаг: 0,01   начало: 0  конец: 999 и диапазоны от 1 до 10
а файл с этим всем есть?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Доброе время суток.
Интересно, так было задумано, что интервалы отнесения перекрываются между собой?
8 21,5 3 диапазон
8,4 11,3 4 диапазон
К какому диапазону тогда относится 9?
Если без было бы без перекрытий, то на Power Query выполняется за 3 секунды. Ссылка на файл.
Изменено: anvg - 15.07.2020 22:57:15
 
Ігор Гончаренко, файл ТУТ
 
колонку Е сделайте шире)))
Изменено: Ігор Гончаренко - 16.07.2020 11:58:22
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1 2 След.
Наверх