|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.09.2010, 12:01 | #1 |
Пользователь
Регистрация: 27.09.2010
Сообщений: 40
|
"свернуть" таблицу
всем дня доброго!
сильно не пинайте, занимаюсь программерством под XL не так много, 2 недели... задача стоит вот такая = есть большая таблица , в среднем 13500 записей, 10 столбцов, мне ее нужно обработать и на выходе получить таблицу , но без дубликатов. удаление дубликатов - это просто..2010 это умеет сам делать и с этим нет проблем. сложность возникает в следующем - у каждой строки есть 2 критерия, по которым нужно их суммировать - это номер документа и штрих код(шк), для этих целей прекрасно подходит ф-ия sumisf и она работает хорошо, все что надо делает. собственно вот кусок кода, в котором я делаю 2 массива = 1й большой, в нем шк, 2й маленький и в нем номера документов(номера документов более уникальны) Код:
Код:
подскажите плиз комрады что мне и как переделать |
27.09.2010, 12:10 | #2 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
При таком большом объеме данных работать с ячейками листа не следует. Будет очень долго. Либо используйте ADO, либо загоняйте все в массив, получайте то, что требуется, а затем вставляйте на новый лист.
Чтобы получить более полный ответ, прикрепите фрагмент Вашего файла (можно с "липовыми" данными) и подробно опишите задачу.
Чем шире угол зрения, тем он тупее.
|
27.09.2010, 12:13 | #3 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Что-то как-то мутно... Пример дайте строк на 10.
Но раз у Вас 13500 строк, то быстрее будет работать с массивами ВБА а не с листом. Например, вот это For i = 1 To ilastrow uniq1.Add Cells(i, 5), CStr(Cells(i, 5)) Next i будет из массива выполняться за секунду. Ну и вместо SumIf можно тоже перебор исходного массива проводить - не знаю, будет ли это медленнее, возможно и нет, но зато полный контроль над данными. И кстати прогрессбар скорее всего не понадобится.
webmoney: E265281470651 Z422237915069 R418926282008
Последний раз редактировалось Hugo121; 27.09.2010 в 12:24. |
27.09.2010, 12:38 | #4 |
Старожил
Регистрация: 11.05.2010
Сообщений: 5,166
|
Кажется, Вам ведь надо выбрать уникальное сочетание номер-штрихкод и по нему просуммировать.
Т.е. сперва прогоняем один раз массив и получаем список уникальных пар, затем прогоняем один раз список и суммируем данные массива (цикл в цикле). Вроде так, или не то?
webmoney: E265281470651 Z422237915069 R418926282008
|
27.09.2010, 12:46 | #5 |
Форумчанин
Регистрация: 24.03.2010
Сообщений: 349
|
Как я понял, ты хочешь знать в каких строках выражение:
Код:
Нет нерешаемых задач - есть недостаток времени и данных!
|
27.09.2010, 13:12 | #6 | |
Старожил
Регистрация: 02.05.2009
Сообщений: 3,907
|
Выполнить пожелания
Цитата:
И у вас будет как минимум два совершенно разных способа решения вашей задачи,а то и три
Анализ,обработка данных Недорого
|
|
27.09.2010, 13:35 | #7 |
Пользователь
Регистрация: 27.09.2010
Сообщений: 40
|
для примера, Лист2
отвечу всем, но позже, прошу прощения, заняли меня пока другой работой.. |
27.09.2010, 14:04 | #8 | |
Пользователь
Регистрация: 27.09.2010
Сообщений: 40
|
Цитата:
а переменная нужна, что бы ее использовать для анализа полученного значения, что бы не было нулевых строк. Последний раз редактировалось sn00p; 27.09.2010 в 14:16. |
|
27.09.2010, 14:10 | #9 | |
Пользователь
Регистрация: 27.09.2010
Сообщений: 40
|
Цитата:
Код:
|
|
27.09.2010, 14:31 | #10 |
Пользователь
Регистрация: 27.09.2010
Сообщений: 40
|
еще помогите пожалуйста разобраться со следующей конструкцией:
Код:
как я это понимаю цикл от 1 до вычисленной или заданной переменной ilastrow заполняет массив uniq2 значениями из таблицы , адрес ячейки g строка, 1 столбец. на выходе мы имеем фактически массив не повторяющихся значений. и тут вопрос - если закоментить CStr(Cells(g, 1)), те , получить конструкцию Код:
какое отношение к этому имеет ф-ия CStr? она ведь возвращает текстовое значение переменной и все...какую роль она играет? |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как обойти "преобразование типа из "string" в "float" невозможно" | lexluter1988 | Помощь студентам | 1 | 07.08.2010 12:23 |
Как передать данные типа "дата" из формы в таблицу | Ярослав Блошенко | Microsoft Office Access | 1 | 26.02.2010 18:22 |
при вводе на листе "магазин"- код товара появлялось "описание" товара из "склада" с "продажной ценой" | aleksei78 | Microsoft Office Excel | 13 | 25.08.2009 12:04 |
Обновление набора данных после добавления в таблицу записей "внешней" программой | dimmm | БД в Delphi | 5 | 21.04.2009 00:56 |