Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.11.2009, 09:31   #11
psbad
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 10
По умолчанию

Итак, есть первые результаты.
1. Вчера запустил первый вариант от SAS888 - эксель "думал" более 3,5 часов. В конечном результате я прервал обработку и было просчитано порядка 50 тысяч строк.
2. Запустил пример_3 от Евгения - время, затраченное на отработку минимально (несколько секунд), но к сожалению считает не совсем корректно (примерно половину значений в усеченном варианте (столбце В) я не нашел).
3. Запустил пример_4 от SAS888 в результате было сформированно порядка 1 тысячи строк (что вполне реально) против 500 строк, сформированных в коде Евгения (обратил внимание что в коде от Евгения большей частью не отрабатывают значения, написанные в кодировке кириллицы).
4. Возник один попутный вопрос - после отработки алгоритма данные в столбце В имена значений отображаются ну как бы не совсем красиво что ли... а при увеличении кол-ва символов потеряется точность вычислений. Так вот вопрос собственно вот в чем - возможно ли проверку (по первым 4 символам) оставить, а в столбце "Новое имя" вывести больше символов? ну т.е что бы было понятно что это.
psbad вне форума Ответить с цитированием
Старый 13.11.2009, 09:46   #12
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
возможно ли проверку (по первым 4 символам) оставить, а в столбце "Новое имя" вывести больше символов?
Давайте уточним. Пусть есть запись "ABCD123" и запись "ABCD456". Проверяем совпадение первых 4-х символов. Совпадают. Зпачит количество = 2. А что Вы хотите, чтобы было в столбце "новое имя"?

P.S. А сколько времени выполняется мой последний макрос при Вашем объеме данных?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.11.2009, 10:14   #13
psbad
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 10
По умолчанию

Всё верно,а в столбце "новое имя" в идеале конечно что бы было "ABCD" т е значение без цифр, или значение но с большим кол-вом симыволов.
Времени - примерно минута (или чуть меньше).

Просто есть записи плана ABCD123, а есть 123ABCD и в итоге получается что в столбце "новое имя" усеченные имена выглядят ABCD* и 123A* соответственно. И к сожалению не совсем понятно что такое 123А* как то так...
psbad вне форума Ответить с цитированием
Старый 13.11.2009, 10:30   #14
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

И все-таки, какое новое имя Вы хотите получить из примера в посте №12 ?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.11.2009, 10:59   #15
psbad
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 10
По умолчанию

Проверяем совпадение первых 4-х символов. Совпадают. Значит количество = 2. А в столбце "новое имя" хотелось бы увидеть первые 7-8 символов имени (если есть возможность без символа "*"). Т.е проверку оставить прежней, но увеличить кол-во отображаемых символов в "новое имя". если конечно такое возможно.
psbad вне форума Ответить с цитированием
Старый 13.11.2009, 11:07   #16
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
хотелось бы увидеть первые 7-8 символов имени
Вот именно это я и спрашиваю. Какого имени? "ABCD123" или "ABCD456" ?
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.11.2009, 11:17   #17
psbad
Пользователь
 
Регистрация: 11.11.2009
Сообщений: 10
По умолчанию

пусть будет первого ABCD.
psbad вне форума Ответить с цитированием
Старый 13.11.2009, 11:33   #18
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Пример во вложении. Комментарии в коде.
Дождитесь, что ответит уважаемый Teslenko_EA. В данном случае, его код более рациональный.
Вложения
Тип файла: rar Пример_5.rar (13.8 Кб, 17 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 13.11.2009, 23:48   #19
Teslenko_EA
Участник клуба
 
Регистрация: 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,...).
Вот так можно ответить на Ваш вопрос - "...возможно ли такое и как это возможно..."
Евгений.
Teslenko_EA вне форума Ответить с цитированием
Старый 16.11.2009, 11:54   #20
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

И все-таки, либо я "в лыжи обутый", либо я ничего в этой жизни не понимаю. Посмотрите вложение, в котором объединены макрос от Teslenko_EA и мой. А так же, добавлен код, измеряющий время выполнения макроса. В столбце "A" 100 000 строк, из которых первые 4 символа повторяются примерно в 10 000 значениях. По моим тестам, по времени я выигрываю примерно в 2 раза.

P.S. Уважаемый Teslenko_EA. Если Вас не затруднит, проведите этот тест и скажите, что Вы думаете по этому поводу.
Вложения
Тип файла: rar Пример_7.rar (443.3 Кб, 16 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 16.11.2009 в 12:19. Причина: Добавлено
SAS888 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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