|
|
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yunikiТак в чем проблема ? Добавить аддон (DLL'ку) к офису ? Так надо понимать, что если хотите красиво и эффективно работать, то для этого нужно программное обеспечение ПО. (Так , если бы Вы захотели работать с Excel и при этом не устанавливать Excel, то Ваше желание было бы несколько странно) Знаете , на заре распространения PC, директора считали, что достаточно купить компьютры, а они уже сами будут решать их задачи, потом оказалось, - ан нет, нужно еще ПО покупать, да еще и разбираться - какое именно ПО. А впрочем, - почему "на заре", где-то до сих пор такое мнение живет, Только сейчас PC неразрывно связывается с установленным на нем Windows и Office, а , разумеется, все вне этого - уже считается за гранью человеческого понимания. Красноречиво, черт побери! У меня аж слезы наворачиваются. Я уже вижу, как ты рассылаешь свое произведение (читай книгу Excel + отдельно DLL c инструкциями) в другие подразделения компании, поставщикам, клиентам, друзьям, начальнику [желающему открыть твой файл почему-то не в офисе]; и все они, дружно, преодолевая свое незнание, политики безопасности, проблемы совместимости версий, отсутствие администраторских прав, времени и желания, устанавливают твое "универсальное решение", чтобы получить доступ к динамическим диапазонам. Вот поистине "красивое" решение! Или все ранее перечисленное не входило в твои планы? Мимоходом, мы еще не затрагивали вопрос скорости пересчета и совместимости с различными версиями Excel твоей "чудо-функции" ;-) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 15:55 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Кстати, у Excel, начиная с версии 2002 (XP) существует родное, общедоступное, легко понятное, но редко используемое решение для динамических диапазонов, и имя ему - Данные-Список-Создать список... Так-что, если речь об этих версиях, то и с именованными формулами связываться необязательно, ну а пресловутую DLL - вообще на свалку истории :-) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 16:16 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
2 KL (XL) > 1) Не понял , что значит "Шельмуешь" - ругаешь что-ли? Наверно хотел сказать "мухлюешь" (остается только гадать)? Так Нет здесь ни того ни другого. автор"=$A$4:ИНДЕКС($A$4:$A$65536;ПОИСКПОЗ("яяяяя";$A$3:$A$65536)) сравни с кодом в твоей DLL ;-) " сравнил - код в DLL несравненно оптимальнее. 2) Редактировать код в аддоне не требуется , так же как и редактировать код в Excel.exe - его нужно просто использовать. 3) Если не видно , что очевидно , что мой код на несколько порядков проще, чем заумная формула, которую для того, чтобы написать нужно несколько дней обсуждения на форуме, то коментарии становятся лишними. PS. То , что формула может иметь имя не знал(или забыл) и был рад, что не забивал голову ненужной информацией, за то , что случайно узнал - спасибо, но наверно через пару дней забуду это, т.к. даром не нужная вещь. Кстати, это тоже момент подхода - незачем знать то, без чего можно обойтись, причем даже легче, чем с этим знанием. PSPS . Вообще , Почему такое сильное желание сделать себя чуть повыше , а других чуть пониже . ( Впрочем, я-то догадываюсь, почему , но лучше б ты сам, чтоб не скатываться на твой тон, это понял .) Ведь можно общаться и на нейтральных тонах , без эмоций типа "ай-яй-яй","Ничего, ничего! Это случается когда человек не имеет предсталения ... " или "иди читай учебники". etc Обсуждается подход как оптимальнее использвать Excel, Я предложил дополнение с очевидным преимуществом - ну и чего так волноваться и впадать во все тяжкие ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 17:34 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Ну вот,опять , - как распространять... Ну если нет еще в наших Windows framework'ов дот нета, java jre , кучи компонентов, которые грузятся через Inet, etc, так что ж теперь - не использовать их приложения ?! 2 KL (XL)другие подразделения компании, поставщикам, клиентам, друзьям, начальнику - другие подразделения компании. - Устанавливать или нет решается корпоративной IT политикой. - поставщикам,клиентам - обычно отправляют уже готовые статичные данные и addon не требуется - друзьям - как захотят - начальнику. Ему требуются или статичные данные(Например). Или/И, как сделано у нас, - есть единая IT политика касательно того что должно стоять на рабочих станциях на предприятии. Как я уже говорил выше, само это дополнение к Office стоит вообще в сети на сервере (у обновляется при необходимости кстати в одном месте), а юзеры со своих рабочих станций , имея штатное ПО просто не замечая этого используют это дополнение. PS . Видно те, кто хочет писать громоздкие формулы, так и будут это делать PSPS. Не забывай, что дополнение сделано не ради одной обсуждаемой в топике фишки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 17:50 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL (XL)Кстати, у Excel, начиная с версии 2002 (XP) существует родное, общедоступное, легко понятное, но редко используемое решение для динамических диапазонов, и имя ему - Данные-Список-Создать список... Так функция , которую я предложил была написана 7 лет назад и все 7 лет успешно не взирая на твои усмешки работала. Кстати, тоже не знал - и зачем знать, если все сделано на 7 лет раньше , чем у микрософт ? Кстати моя функция работает и даже визуально практически также , как упомянутая тобой фича. Так-что, если речь об этих версиях, то и с именованными формулами связываться необязательно, ну а пресловутую DLL - вообще на свалку истории :-) [MVP - Microsoft Excel] Нельзя, т.к. 1) НАдо, в Excel2K чтобы это работало 2) Так , примерно еще в 1000 раз больше всего другого, кроме поддержки именованных диапазонов Да и еще идей миллион есть, котрые не реализованы в Office(Excel) . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 17:57 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yuniki"Шельмуешь" - ругаешь что-ли? Наверно хотел сказать "мухлюешь" Оба слова подразумевают намеренную ложь. Ругаться одному потоку байтов с другим - глупо и непродуктивно. Каждый из нас имеет свой стиль ведения дискуссии - мне больше свойственна ирония, тебе я вижу безаппеляционность. Плевать - речь то не о нас, а о тех, кто это читает. Они и выберут то, что им подуше. И еще, когда нет серьезных аргументов, начинают анализировать тон. Если хочешь, я после своих посланий буду ставить твою фразу: "Простите, если обидел". Теперь легче? yunikiсравнил - код в DLL несравненно оптимальнее. Здесь, я так понял, мы должны тебе поверить на слово, ведь кода функции ты не выложил (или надо потрошить твою DLL?). А в прочем, ничего потрошить не надо, все предельно ясно (это тоже то, чего ты не знал, но как ты уже успел отметить, и выражаясь языком классика: «...все то вздор, чего не знает Митрофанушка...»): в моем VPC2007, Intel Core Duo 2.16, SDRAM 1000Gb, XP-SP2, MSO 2003 PRO Eng, в 1000 заполненных ячеек... 1) Твой «несравненно более оптимальный код» занимает в среднем 150 миллисек. + время (хотя и копейки) на пересчет = СУММ(Поле2) , в то время как формула =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ИСТИНА;A9:A10000="";0)-1)) тратит в среднем 15 миллисек. 2) Твой «несравненно более оптимальный код» еще и выстреливает при любом передвижении курсора , а формула =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ИСТИНА;A9:A10000="";0)-1)) только если в искомом диапазоне произошли изменения 3) Не стану тебя расстраивать временем пересчета в XL2007, тут разрыв еще ощутимее . Ты уж поясни пожалуйста , что для тебя оптимальность алгоритма. yuniki Так , примерно еще в 1000 раз больше всего другого, кроме поддержки именованных диапазонов Да и еще идей миллион есть, котрые не реализованы в Office(Excel). Ну с фанатизмом я не борец, да и лень. И хотя я не апологет Микрософта, насчет миллиона твоих идей, судя по предыдущему, ты можешь сильно удивиться (если конечно избавишься от слепой приверженности одному лишь решению/инструменту) тому, что может Excel и сколько времени ты вложил в изобретение колеса (иногда квадратного). KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 19:58 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Выводы: 1) yuniki сам начал - я мол знаю супер способ, а вы все неправы, только не обижайтесь (что-то в этом роде). Поэтому не удивляйся, что такая реакция. 2) Благодаря таким как White Owl и KL (XL) я стал, не побоюсь этого слова, более менее опытным пользователем Exel. А если бы слушал ваших советов, так бы и думал, что всё это шайтан какой-то и никогда бы и близко не подходил к мало-мальскому програмированию. 3) Формулы чем вам не понравились вообще не пойму... 4) Хотя за 7 лет вы наверное керепко к этому привыкли, поэтому так и защищаете. Я бы тоже защищал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 20:05 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Я бы резюмировал все аргументы так ( yuniki , пожалуйста поправь меня если я допустил неточность или добавь отсутствующее): Метод с DLL "красивее" всех ранее предложенных методов потому что... 1) yuniki не понимает и не желает понимать формул ("...и рад этому..."), но зато считает, что писать макросы и устанавливать DLL дело плевое, и это, по его мнению относится к большинству пользователей (непрограммистов) 2) макрос в сочетании с DLL считает в 10 раз медленнее чем формула, что делает его оптимальным 3) макрос привязанный к событию Worksheet_SelectionChange обладает абсолютной летучестью, что в сочетании с пунктом 2 делает его еще оптимальнее 4) что в реальной жизни... - все компании имеют/следуют корпоративной политике IT - все корпоративные политики IT позволяют пользователям использовать макросы, Add-in и регистрировать DLL - все поставщики и клиенты получают книги с уничтоженными формулами - начальник желающий открыть файл у себя дома, гостинице или в офисе у клиента - сам виноват. 5) по утверждению yuniki, решение с DLL было реализовано на 7 лет раньше, чем фича Данные-Список-Создать список... 6) по мнению yuniki, пользователю, который все же понимает или желает понимать как работают функции ИНДЕКС и ПОИСКПОЗ, гораздо проще вносить изменения в код VBA, чем изменить формулу 7) лучше функции, замороженные в DLL, чем способность оперативно менять критерии выбора диапазона 8) по мнению yuniki, постоянное моргание его макроса не способно никого раздражать коль уж оно не раздражает yuniki KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 22:56 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
2 KL (XL) >И еще, когда нет серьезных аргументов, начинают анализировать тон. Когда нет серьезных аргументов, начинают переходить на личности и обвинять в собственных грехах других. 2 KL (XL) >Оба слова подразумевают намеренную ложь. Ругаться одному потоку байтов с другим - глупо и непродуктивно. Каждый из нас имеет свой стиль ведения дискуссии - мне больше свойственна ирония, тебе я вижу безаппеляционность. Плевать - речь то не о нас, а о тех, кто это читает. Они и выберут то, что им подуше. Не ирония тебе свойственна , а нарывание на выяснение отношений и эта самая упомянутая тобой безапелляционность и в некоторых случаях, как твое "Шельмуешь" , - абсолютная ахинея. А на счет иронии - так я слишком много жил с ней, чтоб понять, что она непродуктивна в решении подобных вопросов , если б я начал тут иронизировать, с желанием еще(как у тебя) тебя унизить, то тема мигом бы перешла в "просто треп" или бы была закрыта . Зачем офтопить-то ? Ты сам-то не чувствуешь чтоли, что требуется постояное выяснение отношений с тобой ? Если уж ирония, так уж должна бы быть потоньше, и подостойней. А у тебя сплошные попытки унизить - чего добьешься-то этим ? А насчет сказанного тобой выше - сплошная подтасовка и переворот с ног на голову : моя сумма не может считать медленнее, хотя бы потому, что формула на порядок проще, а изменение вручную именованного диапазона критично исключительно к времени реакции пользователя, которое во много раз больше времени работы функции поддержки именованного диапазона . Deggasad3) Формулы чем вам не понравились вообще не пойму... Вы можете оценить отличия кода =СУММ(Поле2) от =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ИСТИНА;A9:A10000="";0)-1)) ? Вам какой больше нравится ? Мне первый, Вам второй ? Это Ваш выбор, но это дольше, сложнее, да еще и программировать труднее - смотрел я такие Excel'ские файлы - они все испещрены лесом подобных формул, смысла расчетов, за которыми трудно, очень трудно увидеть. Я бы решился Вам посоветовать, каким бы способом Вы не кодировали ячейки Excel, применять по возможности исключительно именованные диапазоны (м.б. именованные формулы, как ратует тут поборник терминологии KL (XL),), причем имена должны быть говорящими. Поправьте, если я ошибаюсь, но рискну предположить, что Вы мало применяете имен в своих формулах, ссылках. А это оччень неправильно. Я,например, вообще не использую формулы без имен. Deggasad А если бы слушал ваших советов, так бы и думал, что всё это шайтан какой-то и никогда бы и близко не подходил к мало-мальскому програмированию. Вообще - как это понять. Я ж наоброт вроде как получается по предыдущим Вашим постам Вас к программированию на VBA толкал, мешал громоздкие формулы в ячейках писать , а теперь уже мои советы от программирования отталкивают. Чей-то не понимаю я Вас... PS Ну, наверно, хватит уже , вам всем оставляю, как всегда благородно (не поймите правильно), последнее слово. Очевидное всегда очень трудно объяснить, когда приходится объяснять . Успехов всем на все страницы выяснения , как нужно считать сумму в столбце . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2007, 00:35 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Само за себя говорит, неправда ли: yuniki...Вообще, все предложения некрасивы... ...красиво работать с диапазонами , как с таблицами базы данных... ...У Excel много чего не достает для удобной работы... ...и мое решение практически полностью устраняет эту проблему... ...Ну и молодец, что извинился... ...Ты как-то не обращаешь внимания - для чего весь это Excel придумывался... ...А...99% юзеров его используют для создания отчетов...и их анализа... ...Она весьма универсальна, я ее использую во всех приложениях... ...Ты как-то не видишь того, что я говорю... ...а именованный Range автоматически ...можно как-то без макроса сделать?... ...у меня это сделано максимально просто... ...У Вас вообще диапазон именуется или нет ?... ...что формула может иметь имя не знал(или забыл) и был рад... ...все сделано на 7 лет раньше , чем у микрософт... ...абсолютная ахинея.... ...ирония..должна бы быть потоньше... ...моя сумма не может считать медленнее... ...Я бы решился Вам посоветовать... ...имена должны быть говорящими... ...но рискну предположить, что Вы мало применяете имен в своих формулах... ...это оччень неправильно... ...Я...вообще не использую формулы без имен... ...Я...Вас к программированию на VBA толкал... тут идет бриллиант: yuniki...вам всем оставляю, как всегда благородно... KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2007, 03:13 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yuniki...моя сумма не может считать медленнее, хотя бы потому, что формула на порядок проще,... Сумма-то к счастью не твоя, а Микрософта и считает действительно быстро, да вот беда: макрос - твой. Считает гад дюже медленно и без передыху. Да ты сам померь, небось знаешь как это делается ;-) yuniki...а изменение вручную именованного диапазона критично исключительно к времени реакции пользователя, которое во много раз больше времени работы функции поддержки именованного диапазона... Тебе три раза объясняли, что все решения считают диапазон автоматически, а ты все про белого бычка. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2007, 03:26 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Напали все на тебя, уже и жалко как то. Ты такой невинный в своих заблуждениях. Я умываю руки. Вспоминаю как все начиналось DeggasadТут бы стоило вообще ничего не отвечать... Но ведь обидно за тех кто будет это читать и пытаться приладидь вашу библиотеку... Люди будьте бдительны говорю Вам как User со стажем, не подсаживайтес на этот крючок. Exel для того и есть чтобы самому крутить всё что захочется. А то получится чтобы сумму по другому считать придётся каждый раз "разработчика" вызывать. И ещё раз напомню я не ярый поклонник Exel, по долгу службы просто пользуюсь в основном этой программой и могу уверить она может многое. И буть ты хоть гений SQL, Oracle и пусть даже VBA, ты можешь даже и не представлять её возможностей. И нечего натягивать шаблон БД на Exel и говрить что он ограничен, он совсем для другого... Это может длиться вечно... Поэтому вернусь ещё раз к началу... DeggasadТут бы стоило вообще ничего не отвечать... З.ы.: Он так ничего и не понял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.07.2007, 09:02 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Почитал я ваш спор, уважаемые, и посчитал нужным высказать свое мнение. С одной стороны, использование библиотеки имеет большой мину с в отм, что файл, отправленный куда-нить в другой город, не будет корректно работать у человека, у которого эта библиотека не установлена. Это единственный и очень большой минус. С другой стороны, для использования в пределах, скажем, одного предприятия при условии, что в итоге наружу выходят только бумажные копии - ОЧЕНЬ удобно. Особенно всякие фичи типа фамилий-имен в родительном падеже и правильного вывода сумм прописью. А еще противники библиотеки противоречат сами себе: говорят, что пользователь не сможет установить библиотеку, что пользователю это нафиг не нужно, и тут же рассказывают, как этот самый пользователь будет убивать дни и ночи на поиски в хелпе подробного описания всяких заморочных Екселевских функций и вот так вот запросто писать трехэтажные формулы. Ага, верю, одну команду для регистрации библиотеки мы написать не в состоянии, а вот выделывать чудеса эквилибристики с написанием длиннючих и малопонятных формул - это каждый третьеклассник может. LOL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 09:28 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Черный ТрактористС одной стороны, использование библиотеки имеет большой мину с в отм, что файл, отправленный куда-нить в другой город, не будет корректно работать у человека, у которого эта библиотека не установлена. Это единственный и очень большой минус. 1) Здесь речь шла не о плюсах и минусах библиотек вообще (спор сам по себе был бы стерильным), а о нецелесообразности их в данном случае (Сравнивали конкретные формулы с конкретной DLL) и еще говорили о вреде огульных обобщений 2) упомянутый минус это наименьшее зло, проблема в использовании ресурсов и в гибкости решения Черный ТрактористС другой стороны, для использования в пределах, скажем, одного предприятия при условии, что в итоге наружу выходят только бумажные копии - ОЧЕНЬ удобно. Особенно всякие фичи типа фамилий-имен в родительном падеже и правильного вывода сумм прописью. 3) об этом речи не было Черный ТрактористА еще противники библиотеки противоречат сами себе: говорят, что пользователь не сможет установить библиотеку, что пользователю это нафиг не нужно, 4) Это White Owl противник библиотек?!!! Да он просто прикалывался. Почитай еще раз, неужели в абзаце про установку пользователем библиотек иронии не заметно. 5) При всем при этом, использование библиотек сопряжено с использованием макросов, а здесь препятствий хоть отбавляй - читай мой список в одном из постов. Черный Трактористи тут же рассказывают, как этот самый пользователь будет убивать дни и ночи на поиски в хелпе подробного описания всяких заморочных Екселевских функций и вот так вот запросто писать трехэтажные формулы.. 6) цитату в студию! 7) приведенные здесь конкретные формулы далеки от трехэтажных 8) то, что пользователи более восприимчивы к формулам - факт (достаточно поработать в хелпдеске или поучаствовать в форумах) Черный ТрактористАга, верю, одну команду для регистрации библиотеки мы написать не в состоянии, а вот выделывать чудеса эквилибристики с написанием длиннючих и малопонятных формул - это каждый третьеклассник может 9) язык формул примитивен по своей структуре (по сути это тот же бейсик) 10) как правило, программисты ничего не понимают в формулах из-за благоприобретенного дремучего снобизма, а не из-за врожденной тупости. 11) плохо то, что программисты в массе своей свято верят в то, что и для пользователя язык формул находится за семью печатями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 12:48 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
ребят, извините, что вмешиваюсь, но мне интересно! почему поискпоз ? чем плохо так: СУММ(A1:ДВССЫЛ(АДРЕС(ПОИСКПОЗ(9E+307;A:A);1))) аргументы за: - нет ограничения диапазона; - не формула массива - :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 20:41 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
черт, не поискпоз :) почему индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 20:44 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
_slan_черт, не поискпоз :) почему индекс? 1) формула с ИНДЕКС тоже не массива : =СУММ(A1:ИНДЕКС(A:A;ПОИСКПОЗ(9E307;A:A))) 2) твоя формула длиннее (использует одну лишнюю функцию) 3) главное: функция ДВССЫЛ - летучая ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 20:58 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
_slan_что есть летучая? /topic/570382&hl=%eb%e5%f2%f3%f7%e0%ff#5853516 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 21:15 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
это понял. теперь: почему ограничивать диапазон? чем полохо A:A ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2008, 21:18 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
_slan_это понял. теперь: почему ограничивать диапазон? чем полохо A:A ? В XL2003 [A:A] = 65.536 ячеек В XL2007 [A:A] = 1.048.576 ячеек Чем больше ячеек, тем дольше расчеты. Для функций поиска да еще и часто повторяющихся это особенно актуально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 00:28 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL (XL) _slan_это понял. теперь: почему ограничивать диапазон? чем полохо A:A ? В XL2003 [A:A] = 65.536 ячеек В XL2007 [A:A] = 1.048.576 ячеек Чем больше ячеек, тем дольше расчеты. Для функций поиска да еще и часто повторяющихся это особенно актуально. да, в общем случае это так.. но неужели поискпоз() тоже от этого зависит? или все же поиск начинается с первой позиции и заканчивается при нахождении первого подходящего значения? в данном случае перебора всех позиций быть не должно. остается вопрос выделения памяти под массив. неужели индекс() выделяет память под rows.count элементов? ведь индекс известен заранее.. и выделяет ли память вообще? или работает прямо с записями в ячейках.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 10:33 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
_slan_но неужели поискпоз() тоже от этого зависит? или все же поиск начинается с первой позиции и заканчивается при нахождении первого подходящего значения? в данном случае перебора всех позиций быть не должно. Не совсем так, но где-то ты прав :-) В принцыпе, насколько мне известно... 1) функции СУММЕСЛИ() и СЧЕТЕСЛИ() перебирают все позиции. 2) функции точного поиска, напр. ВПР(арг1,арг2,арг3,ЛОЖЬ), ГПР(арг1,арг2,арг3,ЛОЖЬ), ПОИСКПОЗ(арг1,арг2,ЛОЖЬ) ведут поиск от первой позиции по порядку пока не наткнутся на искомое значение или не дойдут до конца рабочей области листа. 3) функции приблизительного поиска, напр. ВПР(арг1,арг2,арг3,ИСТИНА), ГПР(арг1,арг2,арг3,ИСТИНА), ПОИСКПОЗ(арг1,арг2,1), ПОИСКПОЗ(арг1,арг2,-1), ПРОСМОТР() ведут поиск по бинарному принцыпу, т.е, последовательно деля диапазон поиска пополам, тем самым постепенно его сокращая, и сравнивая центральное значение с искомым. Таким образом, в диапазоне 65.536 ячеек будет произведено не более 17 сравнений. Я правда в предыдущем посте забыл упомянуть среди причин для ограничения области поиска, возможность того, что вне определенного диапазона могут находиться посторонние данные (заголовки, комментарии, итоговые расчеты и т.д.) способные привести к ошибочным результатам. _slan_остается вопрос выделения памяти под массив. неужели индекс() выделяет память под rows.count элементов? ведь индекс известен заранее.. и выделяет ли память вообще? или работает прямо с записями в ячейках.. ИНДЕКС здесь не причем. Эта функция, за редкими исключениями, на скорость не влияет. Как раз это одна из самых быстрых функций в Excel. И подобно ДВССЫЛ(), СМЕЩ() и частн. случаю ЕСЛИ() она ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 13:13 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
_slan_но неужели поискпоз() тоже от этого зависит? или все же поиск начинается с первой позиции и заканчивается при нахождении первого подходящего значения? в данном случае перебора всех позиций быть не должно. Не совсем так, но где-то ты прав :-) В принцыпе, насколько мне известно... 1) функции СУММЕСЛИ() и СЧЕТЕСЛИ() перебирают все позиции. 2) функции точного поиска, напр. ВПР(арг1,арг2,арг3,ЛОЖЬ), ГПР(арг1,арг2,арг3,ЛОЖЬ), ПОИСКПОЗ(арг1,арг2,ЛОЖЬ) ведут поиск от первой позиции по порядку пока не наткнутся на искомое значение или не дойдут до конца рабочей области листа. 3) функции приблизительного поиска, напр. ВПР(арг1,арг2,арг3,ИСТИНА), ГПР(арг1,арг2,арг3,ИСТИНА), ПОИСКПОЗ(арг1,арг2,1), ПОИСКПОЗ(арг1,арг2,-1), ПРОСМОТР() ведут поиск по бинарному принцыпу, т.е, последовательно деля диапазон поиска пополам, тем самым постепенно его сокращая, и сравнивая центральное значение с искомым. Таким образом, в диапазоне 65.536 ячеек будет произведено не более 17 сравнений. Я правда в предыдущем посте забыл упомянуть среди причин для ограничения области поиска, возможность того, что вне определенного диапазона могут находиться посторонние данные (заголовки, комментарии, итоговые расчеты и т.д.) способные привести к ошибочным результатам. _slan_остается вопрос выделения памяти под массив. неужели индекс() выделяет память под rows.count элементов? ведь индекс известен заранее.. и выделяет ли память вообще? или работает прямо с записями в ячейках.. ИНДЕКС здесь не причем. Эта функция, за редкими исключениями, на скорость не влияет. Как раз это одна из самых быстрых функций в Excel. И подобно ДВССЫЛ(), СМЕЩ() и частн. случаю ЕСЛИ() она возвращать как диапазон так и значение, но в отличее от первых двух она не летуча. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 13:15 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=35446925&tid=2178535]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
196ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 547ms |

| 0 / 0 |
