|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
andreymx, так по примеру видно, что этот вариант тоже подойдёт. Но проверять надо входит ли значения со второго листа в первый, а не наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2017, 16:59 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
andreymx,4я строка листа итого примера, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2017, 17:01 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
т.к. четкой постановки не услышал, то пока вот что Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2017, 17:50 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
andreymx, Базу сервака заполнять надо не так, ТК она идёт напрямую в массив, либо, если знаете как, то напрямую из recordset в dictionary. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2017, 17:53 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
andreymx, и что значит d(v) = 3 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2017, 17:55 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
BlackeAngelandreymx, и что значит d(v) = 3 ?в объекте d, который dictionary, есть много элементов текущий элемент с индексом, который текстовый и = v а значение этого элемента - 1, 2 или 3 1 - только в первом массиве 2 - только во втором 3 - в обоих ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2017, 18:40 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
andreymx, а от Cells отвязаться можно как то? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2017, 18:42 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
BlackeAngel, Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
сделай цикл по рекордсету ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2017, 19:15 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
andreymx, Нет, я про эту часть Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2017, 19:17 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
BlackeAngelandreymx, Нет, я про эту часть Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
всё, у меня уикенд, дальше сам, удачи :) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2017, 19:21 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
BlackeAngelandreymx, Нет, я про эту часть Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
BlackeAngel, Попробуйте сразу написать запрос, который вернет только нужные Вам данные. Это должно быть быстрее перебора массива ADO и SELECT * FROM http://www.sql.ru/forum/1118914-a/vba-excel-i-adodb-connection?hl=recordset ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2017, 19:40 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
Bobgos,сейчас как раз под в этом направлении, но встала проблема о том что надо сразу же и подключаться и запрашивать с сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2017, 19:42 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
BobgosЭто должно быть быстрее перебора массива в разы быстрее получается ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2017, 21:11 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
BlackeAngelBobgosЭто должно быть быстрее перебора массива в разы быстрее получается Возвращаясь к постановке вопроса, можно как с сервера так и из листа данные в рекордсет грузить. Для оптимизации откажитесь от transpose даже от MS .если match и index дают ошибки, наверное самый быстрый способ в Экселе через коллекции. Как нетиповые варианты для поиска расхождений: А) можно посмотреть на кубы типа на построить сводную в которой источником данных является sql a фильтром значений для того же поля столбец Эксель. Б) вернуть данные из sql в строки ниже сравниваемых данных Экселе, сортировка по полю, тогда всегда две строки подряд будут идентичными и либо формулой, а лучше sql запросом выбрать уникальные значения. И никакого перебора )) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2017, 00:49 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
BlackeAngelBobgos,сейчас как раз под в этом направлении, но встала проблема о том что надо сразу же и подключаться и запрашивать с сервера. В ado есть command и execute. И посмотрите, может в 7000 Эксель у вас есть более точные границы для where? Типа дата записи с.. по.. или ещё что. Вдруг ваши 500000 превратятся в 7000 и удалив полные дубликаты вы сможете найти только расхождения. Но лучше уговорить админов нарисовать в sql db процедуру и не мучайте табличный редактор. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2017, 01:04 |
|
Быстрый поиск в двумерном массиве vba
|
|||
---|---|---|---|
#18+
BlackeAngel, Если вы захотите продолжать ваши эксперименты в Excel без привлечения субд, то вам надо знать имя интересующего вас алгоритма. Это имя - внешнее соединение. Когда оба соединяемых набора "достаточно большие" - используется соединение слиянием . Для него требуется, чтобы оба источника данных были отсортированы по ключу слияния. (То есть в вашем запросе для получения соединяемого множества из бд необходимо добавить соответствующий order by) статья из википедии приведет вас обратно на sql.ru: https://ru.wikipedia.org/wiki/Алгоритм_соединения_слиянием_сортированных_списков Требуется сообразить, что там описан вариант для inner join. Вам же, судя по всему, требуется вывести все записи с контрольного листа Excel в соединении с теми записями из БД, которые подошли по условию сравнения. Поэтому тамошний псевдокод, который кодирует вариант для inner join, должен быть переписан для left outer join как-то так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53.
свои разы-десятки-сотни раз ускорения вы получите. Особенно если сумеете разумным образом сэкономить на преобразованиях из одной структуры в другую и, может быть главное, самодельных сортировках. либо сразу уносите задачу в БД (если получается сформулировать удобное условие соединения). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.12.2017, 02:23 |
|
|
start [/forum/topic.php?fid=61&msg=39567455&tid=2172460]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 80ms |
total: | 212ms |
0 / 0 |