![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Регистрация: 04.02.2009
Сообщений: 7
|
![]()
SAS888
Спасибо большое, все отлично работает, и намного быстрее чем с формулами! ![]() Последний раз редактировалось mmx310; 04.02.2009 в 15:48. |
![]() |
![]() |
![]() |
#12 |
Регистрация: 04.02.2009
Сообщений: 7
|
![]()
А формулу =СЧЁТЕСЛИ($C$4:$C$10003;C5) можно в функцию прописать? с функциями намного быстрее работает
|
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Можно, конечно. Но в данном случае большой вопрос, как будет быстрее.
Смысл писать свою функцию вижу только тогда, когда она отсутствует в стандартном наборе Excel, либо когда требуется применение нескольких стандартных функций, либо когда есть какой-нибудь частный случай (например, в отличии от стандартной функции, рассматривать не все возможные варианты, а только избранные). Если в функции использовать формулу рабочего листа Excel Application.WorksheetFunction.Count If(...), то быстрее точно не будет. Мне не известен алгоритм, который использует Excel в этой функции. Если он работает с ячейками листа, то можно попробовать альтернативный способ - создать массив и работать с ячейками памяти, что быстрее. Попробуйте предлагаемую функцию применить к очень большому количеству строк в столбце и сравнить время выполнения со стандартной. Пока, для простоты, в этой функции можно задавать диапазон счета только в виде столбца. Если результат будет положительный - сделаем для произвольного диапазона. Но, думаю, что Microsoft-овскими программистами все функции оптимизированы "до изнеможения". Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#14 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
По поводу поиска в текстовой строке 11-значного номера, начинающегося с 80 - вместо предложенной ранее функции, лучше применить следующую:
Код:
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#15 | |
Форумчанин
Регистрация: 30.01.2008
Сообщений: 314
|
![]() Цитата:
crv=Критерий.Value а вцикле использовать эту переменную: If a(i, 1) = crv Then да и чуть быстрее использовать for each цикл |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск в строке | xspider | Общие вопросы C/C++ | 5 | 04.02.2009 21:46 |
написать программу, которая считает количество цифр в введенной строке | 111111 | Общие вопросы C/C++ | 2 | 17.12.2008 11:30 |
Поиск слов в строке | Neymexa | Общие вопросы C/C++ | 3 | 16.12.2008 18:33 |
Поиск с строке.. | Rom1k06 | Microsoft Office Excel | 2 | 15.10.2008 07:42 |
Поиск текста в строке | CoDeR | Общие вопросы Delphi | 8 | 02.10.2007 01:01 |