Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Определение числа кластеров в ряду - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Определение числа кластеров в ряду (Формулы/Formulas)
Определение числа кластеров в ряду
Megamen2 Дата: Понедельник, 08.10.2018, 11:12 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте.
У меня такой вопрос.
Как в числовом ряду - формулой рассчитать количество кластеров заданного размера ?

В столбце BN - находятся числа - либо 0, либо 1.
Но расставлены они неравномерно.
В ячейке BN1 - задается размер искомого кластера (кластер должен быть не меньше этого размера).
В ячейке BN2 - задается уровень пропуска (если посередине скопления находится такой же или больший пропуск - значит это как минимум граница разделяющая кластеры)
После определения количества скоплений единиц - нужно вывести результат в ячейку BN3.
К сообщению приложен файл: 8875094.rar (22.2 Kb)
 
Ответить
СообщениеЗдравствуйте.
У меня такой вопрос.
Как в числовом ряду - формулой рассчитать количество кластеров заданного размера ?

В столбце BN - находятся числа - либо 0, либо 1.
Но расставлены они неравномерно.
В ячейке BN1 - задается размер искомого кластера (кластер должен быть не меньше этого размера).
В ячейке BN2 - задается уровень пропуска (если посередине скопления находится такой же или больший пропуск - значит это как минимум граница разделяющая кластеры)
После определения количества скоплений единиц - нужно вывести результат в ячейку BN3.

Автор - Megamen2
Дата добавления - 08.10.2018 в 11:12
Светлый Дата: Понедельник, 08.10.2018, 22:03 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Здравствуйте!
Файл надо сохранить в формате .XLSX и использовать формулу массива (Ctrl+Shift+Enter):
Код
=СУММ(--(СЧЁТЕСЛИ(СМЕЩ(BN1;ЕСЛИОШИБКА(ЕСЛИ(СТРОКА(1:9)-1;НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>=BN2;СТРОКА(6:267));СТРОКА(1:9)-1);6);999);;ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>=BN2;СТРОКА(6:267));СТРОКА(1:9))-ЕСЛИ(СТРОКА(1:9)-1;НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>=BN2;СТРОКА(7:268));СТРОКА(1:9)-1);6);1));999)>=BN1))
Оптимизировать формулу не успел.
*Исправил в формуле 1 на 999, а то последний кластер не учитывался.


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Понедельник, 08.10.2018, 22:10
 
Ответить
СообщениеЗдравствуйте!
Файл надо сохранить в формате .XLSX и использовать формулу массива (Ctrl+Shift+Enter):
Код
=СУММ(--(СЧЁТЕСЛИ(СМЕЩ(BN1;ЕСЛИОШИБКА(ЕСЛИ(СТРОКА(1:9)-1;НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>=BN2;СТРОКА(6:267));СТРОКА(1:9)-1);6);999);;ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>=BN2;СТРОКА(6:267));СТРОКА(1:9))-ЕСЛИ(СТРОКА(1:9)-1;НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>=BN2;СТРОКА(7:268));СТРОКА(1:9)-1);6);1));999)>=BN1))
Оптимизировать формулу не успел.
*Исправил в формуле 1 на 999, а то последний кластер не учитывался.

Автор - Светлый
Дата добавления - 08.10.2018 в 22:03
Светлый Дата: Понедельник, 08.10.2018, 22:41 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Ещё ошибку обнаружил. Теперь формула такая:
Код
=СУММ(--(СЧЁТЕСЛИ(СМЕЩ(BN1;ЕСЛИОШИБКА(ЕСЛИ(СТРОКА(1:9)-1;НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>BN2;СТРОКА(6:267));СТРОКА(1:9)-1);6);999);;ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>BN2;СТРОКА(6:267));СТРОКА(1:9))-ЕСЛИ(СТРОКА(1:9)-1;НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>BN2;СТРОКА(6:267));СТРОКА(1:9)-1);6);999));1)>=BN1))


Программировать проще, чем писать стихи.
 
Ответить
СообщениеЕщё ошибку обнаружил. Теперь формула такая:
Код
=СУММ(--(СЧЁТЕСЛИ(СМЕЩ(BN1;ЕСЛИОШИБКА(ЕСЛИ(СТРОКА(1:9)-1;НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>BN2;СТРОКА(6:267));СТРОКА(1:9)-1);6);999);;ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>BN2;СТРОКА(6:267));СТРОКА(1:9))-ЕСЛИ(СТРОКА(1:9)-1;НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>BN2;СТРОКА(6:267));СТРОКА(1:9)-1);6);999));1)>=BN1))

Автор - Светлый
Дата добавления - 08.10.2018 в 22:41
Megamen2 Дата: Понедельник, 08.10.2018, 22:49 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 25
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Светлый, все работает.
Спасибо.


Сообщение отредактировал Megamen2 - Понедельник, 08.10.2018, 22:49
 
Ответить
СообщениеСветлый, все работает.
Спасибо.

Автор - Megamen2
Дата добавления - 08.10.2018 в 22:49
Светлый Дата: Вторник, 09.10.2018, 21:59 | Сообщение № 5
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация: 510 ±
Замечаний: 0% ±

Excel 2013, 2016
Может, это уже не нужно, но ещё один вариант компактнее:
Код
=СУММ(Ч(МУМНОЖ(ТРАНСП((ЕСЛИОШИБКА(ЕСЛИ(СТОЛБЕЦ(A:G)-1;НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>BN2;СТРОКА(6:267));СТОЛБЕЦ(A:G)-1);6);)<СТРОКА(7:267))*(ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>BN2;СТРОКА(7:268));СТОЛБЕЦ(A:G));)>СТРОКА(7:267)));--BN7:BN267)>=BN1))


Программировать проще, чем писать стихи.
 
Ответить
СообщениеМожет, это уже не нужно, но ещё один вариант компактнее:
Код
=СУММ(Ч(МУМНОЖ(ТРАНСП((ЕСЛИОШИБКА(ЕСЛИ(СТОЛБЕЦ(A:G)-1;НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>BN2;СТРОКА(6:267));СТОЛБЕЦ(A:G)-1);6);)<СТРОКА(7:267))*(ЕСЛИОШИБКА(НАИМЕНЬШИЙ(ЕСЛИ(ЧАСТОТА(СТРОКА(7:267);BN7:BN267*СТРОКА(7:267))>BN2;СТРОКА(7:268));СТОЛБЕЦ(A:G));)>СТРОКА(7:267)));--BN7:BN267)>=BN1))

Автор - Светлый
Дата добавления - 09.10.2018 в 21:59
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Определение числа кластеров в ряду (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!