Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2011, 01:57   #1
Racer13
Новичок
Джуниор
 
Регистрация: 31.05.2011
Сообщений: 2
Вопрос Задача на VBA

Звучит так:

В массиве целых чисел с количеством элементов n найти наиболее часто встречающееся число. Если таких чисел несколько, то определить наименьшее из них.

по сути не могу понять как посмотреть какое число наиболее встречающееся. За ранее спасибо

я видимо разделом ошибся? Верно? Переместите пожалуйста куда нужно.

Последний раз редактировалось Racer13; 31.05.2011 в 02:20.
Racer13 вне форума Ответить с цитированием
Старый 31.05.2011, 02:48   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

вот формула, которая решает Вашу задачу:
Код:
=ЕСЛИ(СУММ(--(СЧЁТЕСЛИ(A1:A14;A1:A14)=МАКС(СЧЁТЕСЛИ(A1:A14;A1:A14))))=МАКС(СЧЁТЕСЛИ(A1:A14;A1:A14));ИНДЕКС(A1:A14;ПОИСКПОЗ(МАКС(СЧЁТЕСЛИ(A1:A14;A1:A14));СЧЁТЕСЛИ(A1:A14;A1:A14);));МИН(ЕСЛИ(МАКС(СЧЁТЕСЛИ(A1:A14;A1:A14))=СЧЁТЕСЛИ(A1:A14;A1:A14);A1:A14))) & "-к  больше всех (" & МАКС(СЧЁТЕСЛИ(A1:A14;A1:A14)) & "шт." & ЕСЛИ(СУММ(--(СЧЁТЕСЛИ(A1:A14;A1:A14)=МАКС(СЧЁТЕСЛИ(A1:A14;A1:A14))))=МАКС(СЧЁТЕСЛИ(A1:A14;A1:A14));"";"*") & ")"
если после шт. есть звездочка шт.* значит указанных чисел не больше всего, еще каких-то было столько же, а указано минимальное из тех, которых больше всех.
Вложения
Тип файла: rar Книга683.rar (3.0 Кб, 5 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 31.05.2011, 02:57   #3
Racer13
Новичок
Джуниор
 
Регистрация: 31.05.2011
Сообщений: 2
По умолчанию

Суть в том, что это надо выполнить в виде макроса, а не формулой.
Racer13 вне форума Ответить с цитированием
Старый 31.05.2011, 03:13   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Чтобы такое написать на ВБА - нужны знания...
если в формуле массив частот назвать К, а массив данных Д, то она существенно упрощается:
Код:
=ЕСЛИ(СУММ(--(к=МАКС(к)))=МАКС(к);ИНДЕКС(д;ПОИСКПОЗ(МАКС(к);к;));МИН(ЕСЛИ(МАКС(к)=к;д))) & "-к  больше всех (" & МАКС(к) & "шт." & ЕСЛИ(СУММ(--(к=МАКС(к)))=МАКС(к);"";"*") & ")"
Вложения
Тип файла: rar Книга683.rar (3.0 Кб, 6 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 31.05.2011, 11:25   #5
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Если использовать МОДА(), можно еще упростить.
Но студенту это не поможет, преподаватель хочет VBA
Вложения
Тип файла: rar мода.rar (2.7 Кб, 6 просмотров)
vikttur вне форума Ответить с цитированием
Старый 31.05.2011, 14:18   #6
vikttur
Участник клуба
 
Регистрация: 16.05.2010
Сообщений: 1,249
По умолчанию

Продолжение темы о функции МОДА() можно посмотреть здесь
vikttur вне форума Ответить с цитированием
Старый 01.06.2011, 10:04   #7
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

использовать функцию мода в VBA..
slan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача VBA EmileMinasyan Помощь студентам 1 15.01.2020 23:49
Задача на VBA Shat87 Помощь студентам 2 27.01.2011 18:18
Задача на VBA Zhene4ka2607 Помощь студентам 1 08.06.2009 14:48
Задача по VBA NitriNKa Помощь студентам 8 23.05.2009 15:46