Создание массива действительно глючит. Создал только 460 строк. Михаил, пара вопросов 1. Зачем цикл For i = MiRow To 1 Step -1 в обратном порядке 2. Алгоритм работы Para((197 - k1) / 2 * k1 - 99 + k2) = True
PS Выгрузку я сделал, но что-то в макросе не так. Сколько раз запускаю, столько раз и обрезается выходной массив.
Создание массива действительно глючит. Создал только 460 строк. Михаил, пара вопросов 1. Зачем цикл For i = MiRow To 1 Step -1 в обратном порядке 2. Алгоритм работы Para((197 - k1) / 2 * k1 - 99 + k2) = True
PS Выгрузку я сделал, но что-то в макросе не так. Сколько раз запускаю, столько раз и обрезается выходной массив.RAN
Немного исправил. Теперь массив в 1 000 000 строк в макросе Proverka формируется за минуту. Полностью обрабатывается, с удалением строк примерно за 50 сек, из 30 сек - удаление строк.
Quote (RAN)
1. Зачем цикл For i = MiRow To 1 Step -1 в обратном порядке
в первоначальном варианте сразу удалял строки, осталось в наследство. разницы ни какой
Немного теории. Предположим, имеем массив из пяти чисел: {4;5;6;7;8} Из них мы можем составить десять пар: 1. 4-5 2. 4-6 3. 4-7 4. 4-8 5. 5-6 6. 5-7 7. 5-8 8. 6-7 9. 6-8 10. 7-8 Как видим, если мы составляем пары именно в таком порядке, то у каждой пары есть свой уникальный номер. Теперь, если мы обозначим начало массива min, конец - max, первое чило пары - k1, второе - k2, то уникальный номер пары N можно вычислить по формуле
Code
N = (2*max-min-k1)*(k1-min+1)/2-max+k2
Обязательное условие: k1< k2
Для массива Para я взял числа 1-99. Подставив min =1; max=99 и проведя арифметические действия, получим формулу уникального номера любой пары чисел из массива 1-99
Code
(197 - k1) / 2 * k1 - 99 + k2
Массив Para является своего рода словарем пар, присутствующих в столбце A:B
Немного исправил. Теперь массив в 1 000 000 строк в макросе Proverka формируется за минуту. Полностью обрабатывается, с удалением строк примерно за 50 сек, из 30 сек - удаление строк.
Quote (RAN)
1. Зачем цикл For i = MiRow To 1 Step -1 в обратном порядке
в первоначальном варианте сразу удалял строки, осталось в наследство. разницы ни какой
Немного теории. Предположим, имеем массив из пяти чисел: {4;5;6;7;8} Из них мы можем составить десять пар: 1. 4-5 2. 4-6 3. 4-7 4. 4-8 5. 5-6 6. 5-7 7. 5-8 8. 6-7 9. 6-8 10. 7-8 Как видим, если мы составляем пары именно в таком порядке, то у каждой пары есть свой уникальный номер. Теперь, если мы обозначим начало массива min, конец - max, первое чило пары - k1, второе - k2, то уникальный номер пары N можно вычислить по формуле
Code
N = (2*max-min-k1)*(k1-min+1)/2-max+k2
Обязательное условие: k1< k2
Для массива Para я взял числа 1-99. Подставив min =1; max=99 и проведя арифметические действия, получим формулу уникального номера любой пары чисел из массива 1-99
Code
(197 - k1) / 2 * k1 - 99 + k2
Массив Para является своего рода словарем пар, присутствующих в столбце A:BMichael_S