|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
13.11.2009, 09:31 | #11 |
Пользователь
Регистрация: 11.11.2009
Сообщений: 10
|
Итак, есть первые результаты.
1. Вчера запустил первый вариант от SAS888 - эксель "думал" более 3,5 часов. В конечном результате я прервал обработку и было просчитано порядка 50 тысяч строк. 2. Запустил пример_3 от Евгения - время, затраченное на отработку минимально (несколько секунд), но к сожалению считает не совсем корректно (примерно половину значений в усеченном варианте (столбце В) я не нашел). 3. Запустил пример_4 от SAS888 в результате было сформированно порядка 1 тысячи строк (что вполне реально) против 500 строк, сформированных в коде Евгения (обратил внимание что в коде от Евгения большей частью не отрабатывают значения, написанные в кодировке кириллицы). 4. Возник один попутный вопрос - после отработки алгоритма данные в столбце В имена значений отображаются ну как бы не совсем красиво что ли... а при увеличении кол-ва символов потеряется точность вычислений. Так вот вопрос собственно вот в чем - возможно ли проверку (по первым 4 символам) оставить, а в столбце "Новое имя" вывести больше символов? ну т.е что бы было понятно что это. |
13.11.2009, 09:46 | #12 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
P.S. А сколько времени выполняется мой последний макрос при Вашем объеме данных?
Чем шире угол зрения, тем он тупее.
|
|
13.11.2009, 10:14 | #13 |
Пользователь
Регистрация: 11.11.2009
Сообщений: 10
|
Всё верно,а в столбце "новое имя" в идеале конечно что бы было "ABCD" т е значение без цифр, или значение но с большим кол-вом симыволов.
Времени - примерно минута (или чуть меньше). Просто есть записи плана ABCD123, а есть 123ABCD и в итоге получается что в столбце "новое имя" усеченные имена выглядят ABCD* и 123A* соответственно. И к сожалению не совсем понятно что такое 123А* как то так... |
13.11.2009, 10:30 | #14 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
И все-таки, какое новое имя Вы хотите получить из примера в посте №12 ?
Чем шире угол зрения, тем он тупее.
|
13.11.2009, 10:59 | #15 |
Пользователь
Регистрация: 11.11.2009
Сообщений: 10
|
Проверяем совпадение первых 4-х символов. Совпадают. Значит количество = 2. А в столбце "новое имя" хотелось бы увидеть первые 7-8 символов имени (если есть возможность без символа "*"). Т.е проверку оставить прежней, но увеличить кол-во отображаемых символов в "новое имя". если конечно такое возможно.
|
13.11.2009, 11:07 | #16 | |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Цитата:
Чем шире угол зрения, тем он тупее.
|
|
13.11.2009, 11:17 | #17 |
Пользователь
Регистрация: 11.11.2009
Сообщений: 10
|
пусть будет первого ABCD.
|
13.11.2009, 11:33 | #18 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
Пример во вложении. Комментарии в коде.
Дождитесь, что ответит уважаемый Teslenko_EA. В данном случае, его код более рациональный.
Чем шире угол зрения, тем он тупее.
|
13.11.2009, 23:48 | #19 |
Участник клуба
Регистрация: 10.08.2009
Сообщений: 1,796
|
Здравствуйте psbad.
Обратившись к Вашему вопросу - "...присутствует 1 столбец, содержащий 100 тысяч строк ...возможно ли такое? и как это возможно реализовать?", могу сказать однозначно - эту задачу, с однотипными табличными данными, как и любую другую подобную содержащую более 100 строк (записей), решать удобнее (и быстрее) с применением БД (базы данных). Вы обратили внимание на конcтанту в коде, содержащую строку подключения? В ней присутствует "Provider=Microsoft.Jet.OLEDB.4.0.. ", а это означает что ADO организовывает подключение к таблице - источнику с применением драйвера Microsoft.Jet (MS Access). Избавиться от "издержек" подключения (кириллица, преобразование,...) можно прилинковав (подключив) таблицу MS Excel к файлу БД MS Access. Для прилинковки одной таблицы достаточно сделав правый клик по файлу - Открыть с помощью... выбрать MS Access, будет создан файл БД с прилинкованной таблицей Excel. Далее при создании запросов можно задавать условия отбора, условия группировки а также применять "агрегатные" функции (Count, Max, Min, Sum,...). Вот так можно ответить на Ваш вопрос - "...возможно ли такое и как это возможно..." Евгений. |
16.11.2009, 11:54 | #20 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
И все-таки, либо я "в лыжи обутый", либо я ничего в этой жизни не понимаю. Посмотрите вложение, в котором объединены макрос от Teslenko_EA и мой. А так же, добавлен код, измеряющий время выполнения макроса. В столбце "A" 100 000 строк, из которых первые 4 символа повторяются примерно в 10 000 значениях. По моим тестам, по времени я выигрываю примерно в 2 раза.
P.S. Уважаемый Teslenko_EA. Если Вас не затруднит, проведите этот тест и скажите, что Вы думаете по этому поводу.
Чем шире угол зрения, тем он тупее.
Последний раз редактировалось SAS888; 16.11.2009 в 12:19. Причина: Добавлено |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
StringGrid сумма значений | monushka | Общие вопросы Delphi | 21 | 26.10.2009 17:12 |
Сумма значений строк | Deni55 | Microsoft Office Excel | 14 | 02.06.2009 13:56 |
Сумма значений таблицы условию. | Drummer_SV | Microsoft Office Excel | 4 | 13.05.2009 16:24 |
создать массив сл значений, сумма которых определена | prasvit | Помощь студентам | 13 | 04.04.2009 03:35 |
СУММА ЗНАЧЕНИЙ ЭЛЕМЕНТОВ | Dimak24 | Помощь студентам | 1 | 24.12.2008 09:29 |