Доброго времени суток, Уважаемые!!! Столкнулся с такой задачей: Имееются массивы с последовательными, целочисленными элементами, а также состоящие из одного числа. Массивов может быть сотни Нужно найти все диапазоны чисел или 1 число во всех массивах, чтобы этот диапазон или 1 число встречалось в максимальном количестве массивов. А также найти диапазоны чисел, которые не встречаются ни в одном из массивов.
Помогите пожалуйста или подскажите путь для решения. Уже и подзабыл VBA, в связи со сменой сферы деятельности
ts-79, можно собрать все начала и концы диапазонов в одном столбце и отсортировать, вот так:
Скрытый текст
1 a 2 b 2 b 20 i 30 j 44 a 50 i 50 l 60 k 85 c 100 g 100 g 200 f 300 d 800 h 800 c 900 e 1300 d 1300 e 1500 f 1500 h 1510 1600
Потом перебрать числа во втором столбце. Если соотв. буквы нет в строке текущих массивов, то добавить ее, если есть - то удалить. Массивы, состоящие их одного числа, надо внести два раза или пометить например "j*". В общем, не очень сложно и неинтересно.
Спасибо за совет, но ничего не понял. Пытаюсь реализовать другим путем. Загоняю все данные в один многомерный массив. И уже из этого массива попытаться вытащить нужные данные. Но пока еще не придумал как
ts-79, а обращаясь на форум, Вы какую цель преследовали? - чтобы от Вас отстал Игорь - или решить проблему, решить которую самостоятельно у Вас не получилось
бросьте эти Ваши мечты. Игорь к Вам не приставал, я просто пытаюсь уточнить суть задачи ПЫ.СЫ. а модераторы исправят название темы, когда Вы предложите адекватное ее название. и определитесь-таки, Вам шашечки или ехать? извините, за настойчивость
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
поможете, буду благодарен, нет - не обижусь. Просто тон Ваших уточнений попахивает ехидством и высокомерием, уж извините. А насчет решения проблемы, то я ее решу, просто потребуется больше времени. Убедительно прошу давайте на этом закончим оффтоп,
ts-79 написал: тон Ваших уточнений попахивает ехидством и высокомерием
Есть немного, но порой это подстегивает разумного ТС к правильным мыслям. Да мы и друг над другом также, так что не обращайте внимание, пока это не со зла, а для стимуляции. Честно скажу, сразу после работы взглянул, и сразу закрыл, чтоб не портит вечер. Вечерний Джин-Тоник позволил трезво взглянуть и ничего страшного не увидел.
Вариант 1 - в лоб цикл от минимального до максимального элемента, проверка на количество диапазонов содержащее конкретное число и при изменение фиксация границы диапазона. соответственно, кто входил до этого тот и попадает в этот диапазон.
вариант 2 - да почти тоже, только упорядочить таким образом, чтоб скакать сразу по границам диапазонов, это не сложно надо просто все значения без повторений отсортировать и все., далее все тоже, перескочили проверили...
Если честно, то вариант 2 даже формулами можно попробовать сделать, но надо джин выгнать оставить только тоник
ts-79, извините, к Вам это не относится, но у одного из отвечающий в подписи видел замечательную фразу: "степень сарказма в моем ответе соответствует степени дебилизма вопроса" извините еще раз, но чем больше дебилизма в вопросе, тем больше сакрказма в ответе и понятно, что к этому вопросу это имеет никакого отношения.... так мысли вслух
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Поиск всех диапазонов чисел в массивах, чтобы этот диапазон встречался в максимальном количестве массивов
БМВ, благодарю за совет. Ігор Гончаренко, если это не относится ни ко мне, ни к теме обсуждения, то прошу придержать ваши "мысли вслух" при себе, либо выражать их в другом месте, и не засорять ветку. Модераторы удалите пжл посты не имеющие отношение к теме топика #2, #5 - #13, #15 и этот тоже
ts-79, При увеличении количества массивов , думаю будет задумчив пересчет, MMULT не самая быстрая, применяется многократно, да еще и размер приличный. Ну впихнуть все в одну формулу - это был спортивный интерес, а так , лучше промежуточную таблицу сделать, пусть будет тот же MMULT но один два раза, а не ….. Размер массива с Вашими диапазонами динамическим сделать тоже не проблема. Макросом проще все, но мне не интересно.
перекинул на вспомогательный лист, увеличил диапазон до 500 строк (этого пока хватит с запасом). Есть одно исключение: если один из массивов 1-1, то неправильно считает, если есть массивы с элементом 2.