|
Работа с массивавми Excel
|
|||
---|---|---|---|
#18+
Здравствуйте. Прошу у вас помощи/совета в решении моей задачи. Имеется два массива из строк и столбцов, в каждой ячейке по одному символу(1,2,3). Количество столбцов - 12, количество строк варьируется в 1 массиве от 120000 до 200000, во 2 от 3000 до 20000. Передо мной стоит несколько задач: 1. Сравнить два массива и найти во Втором уникальные варианты(сравниваются строки). 2. Из полученных уникальных вариантов убрать те, которые содержат больше 7 одинаковых значений в строке. 3. Из новых уникальных вариантов убрать те, которые содержат ПОДРЯД больше 5 одинаковых значений в строке. Необходимо максимально автоматизировать эти 3 пункта. Но остался ряд вопросов: - Нужно ли менять строку с 12 столбцами на ячейку, где будет 12 символов? - Можно ли к каждому листу прикрепить свой макрос, отвечающий за одну из задач (либо удобнее сделать все 3 задачи на одном листе)? - А главное - с помощью чего это быстрее и проще всего сделать (макрос/плагин)? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 02:55 |
|
Работа с массивавми Excel
|
|||
---|---|---|---|
#18+
Быстрее и проще всего это сделать через SQL-запрос. Отсюда вопрос - где находятся исходные данные? может они уже в базе? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 03:04 |
|
Работа с массивавми Excel
|
|||
---|---|---|---|
#18+
GoJIy3eka- Нужно ли менять строку с 12 столбцами на ячейку, где будет 12 символов?для выполнения п.2. и 3. - пожалуй можно, тогда их можно обработать заменой с подсчетом и поиском подстроки соответственно. Впрочем, я думаю, предложат различные варианты. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 03:09 |
|
Работа с массивавми Excel
|
|||
---|---|---|---|
#18+
Да, ты прав - можем сделать так: формируем два курсора, содержащие по одному полю из 12 символов. Затем - JOIN c фильтром по ISNULL() (я так понял, что надо найти строки, которые есть во втором и нет в первом), и затем фильтруем уже по содержимому строки... в принципе, всё это можно даже проделать одним запросом. Вот только со строками удобнее работать функциями листа :) Да и по идее, если сделать доп.столбцы с ключом на исходных листах - вообще всё можно проделать формулами, вот только формул будет много (по количеству, а не по "различности"). Ну а если всё макросом - то можно совместить методы: выборку (1) сделать запросом, а фильтрацию (2,3) проделать на массиве строк, полученном из рекордсета. Ну и выгрузить затем результат в нужное место в нужном виде :) - типа так: ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 06:18 |
|
Работа с массивавми Excel
|
|||
---|---|---|---|
#18+
Shocker.ProОтсюда вопрос - где находятся исходные данные? может они уже в базе? Исходные данные сразу же находятся в двух листах в excel'е. AndreTMНу а если всё макросом - то можно совместить методы: выборку (1) сделать запросом, а фильтрацию (2,3) проделать на массиве строк, полученном из рекордсета. Ну и выгрузить затем результат в нужное место в нужном виде :) - типа так: Это очень круто! Спасибо. По-моему это даже больше того, что я хотел!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.11.2013, 12:13 |
|
|
start [/forum/topic.php?fid=61&gotonew=1&tid=2174374]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
68ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 337ms |
total: | 501ms |
0 / 0 |