|
|
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Подскажите, пожайлуста, как в таблице Exel создать формулу которая суммирует диапазон ячеек. =СУММ(B9:B34), но диапазон может быть и B9:B10, а так же и B9:B108, т.е. если ячейка пустая, то все, диапозан кончился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 09:32 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
tuandreevaПодскажите, пожайлуста, как в таблице Exel создать формулу которая суммирует диапазон ячеек. =СУММ(B9:B34), но диапазон может быть и B9:B10, а так же и B9:B108, т.е. если ячейка пустая, то все, диапозан кончился. B8=СУММ(Найти диапазон, где все ячейки заполнены и нет пустого значения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 09:56 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Ну попомогите, великие гуру ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 11:18 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
tuandreevaНу попомогите, великие гуру Если нужно складывать от ячейки B9 до первой встретившейся в этом столбце пустой ячейки, то так =СУММ(B9:ИНДЕКС($B$9:$B$5000;СУММПРОИЗВ(ПОИСКПОЗ("";$B$9:$B$5000&"";0))-1)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 11:32 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Deggasad tuandreevaНу попомогите, великие гуру Если нужно складывать от ячейки B9 до первой встретившейся в этом столбце пустой ячейки, то так =СУММ(B9:ИНДЕКС($B$9:$B$5000;СУММПРОИЗВ(ПОИСКПОЗ("";$B$9:$B$5000&"";0))-1)) Небольшая оговорка: Пустую строку нужно мскать в столбце А, а сумма в столбцах B,C,D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 11:53 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
если в столбце [А]... 1) только числовые значения, то =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(9E+307;$A9:$A10000))) 2) только текстовые значения, то =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ПОВТОР("z";255);$A9:$A10000))) 3) может быть, что угодно, то =СУММ(B9:ИНДЕКС(B:B;МАКС(ЕСЛИ($A9:$A1000<>"";СТРОКА($A9:$A1000))))) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 12:40 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL (XL)если в столбце [А]... 1) только числовые значения, то =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(9E+307;$A9:$A10000))) 2) только текстовые значения, то =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ПОВТОР("z";255);$A9:$A10000))) 3) может быть, что угодно, то =СУММ(B9:ИНДЕКС(B:B;МАКС(ЕСЛИ($A9:$A1000<>"";СТРОКА($A9:$A1000))))) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) KL [MVP - Microsoft Excel] Привет! Это ты говоришь про последнюю пустую строку! А я из условия понял что нужно первую пустую найти! =СУММ(B9:ИНДЕКС($B$9:$B$5000;СУММПРОИЗВ(ПОИСКПОЗ("";$A$9:$A$5000&"";0))-1)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 13:11 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
DeggasadПривет! Это ты говоришь про последнюю пустую строку! А я из условия понял что нужно первую пустую найти! =СУММ(B9:ИНДЕКС($B$9:$B$5000;СУММПРОИЗВ(ПОИСКПОЗ("";$A$9:$A$5000&"";0))-1)) Привет. В таком случае след. модифицированная формула должна быть несколько быстрее твоего варианта: =СУММ(B9:ИНДЕКС(B:B;МИН(ЕСЛИ($A9:$A1000="";СТРОКА($A9:$A1000)-1)))) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) или еще так: =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ИСТИНА;ЕПУСТО(A9:A10000);0)-1)) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) или так: =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ИСТИНА;A9:A10000="";0)-1)) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 13:24 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
а можно ли как-нибудь циклом For... Next обрабатывать столбец, так как неизвестно сколько строк будет в таблице (500 или 10000)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 13:25 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
tuandreevaа можно ли как-нибудь циклом For... Next обрабатывать столбец, так как неизвестно сколько строк будет в таблице (500 или 10000)? 1)Тебе уже несколько вариантов предложили 2)Это по сути и есть цикл, только не прерывается, а весь просматривается 3)For... Next, в формуле эксель поставить нельзя только в макросе, но это однозначно медленнее 4)Так поставь побольше строк или это критично? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 13:35 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
1) если тебе нужно через VBA, дык ты предупреждай заранее :-( 2) все приведенные формулы основаны на том, что ты сразу используешь диапазон, который никогда не будет заполнен до конца. Отсюда и B9:B10000 в моих примерах. Если данных может быть еще больше, то используй B9:B65535, но при таком кол-ве строк пересчет будет занимать значительное время (особенно с формулой предложенной Deggasad :P). KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 13:42 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Deggasad tuandreevaа можно ли как-нибудь циклом For... Next обрабатывать столбец, так как неизвестно сколько строк будет в таблице (500 или 10000)? 1)Тебе уже несколько вариантов предложили 2)Это по сути и есть цикл, только не прерывается, а весь просматривается 3)For... Next, в формуле эксель поставить нельзя только в макросе, но это однозначно медленнее 4)Так поставь побольше строк или это критично? За все примеры спасибо, все работает, но хотелось бы в VBA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 13:44 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
tuandreevaЗа все примеры спасибо, все работает, но хотелось бы в VBA Код: plaintext 1. 2. 3. 4. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 13:58 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL (XL) tuandreevaЗа все примеры спасибо, все работает, но хотелось бы в VBA Код: plaintext 1. 2. 3. 4. KL [MVP - Microsoft Excel] Вот спасибо!!!!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 14:05 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL (XL)особенно с формулой предложенной Deggasad :P). KL [MVP - Microsoft Excel] :-) тут бурные авации ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 14:07 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
не получается, в столбце если в 1 ячейке не цифры, то сумма не получается, а как же быть с проверяемым столбцом А ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 14:12 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
tuandreevaне получается, в столбце если в 1 ячейке не цифры, то сумма не получается, а как же быть с проверяемым столбцом А Можно поподробнее в чем проблема? См пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 18:11 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Deggasad KL (XL)особенно с формулой предложенной Deggasad :P). KL [MVP - Microsoft Excel] :-) тут бурные авации Это не наезд :-) Конкатенация - штука до противного медленная :-) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 18:22 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
А просто =СУММ(B:B) не устроит? Просуммирует все числовые ячейки в столбце ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 18:27 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL (XL)[MVP - Microsoft Excel] Это не наезд :-) Конкатенация - штука до противного медленная :-) KL [MVP - Microsoft Excel][/quot] Да яж ничё и не говорю. Наоборот рад поучиться лишний раз! Спасибо! А что такое конкатенация? Я конечно догадываюсь, но всё-таки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 18:51 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
DeggasadА что такое конкатенация? Я конечно догадываюсь, но всё-таки... Это по-эмигрантски: СЦЕПЛЕНИЕ ТЕКСТА :-))) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 19:44 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Вообще, все предложения некрасивы. Простите, если обидел. А красиво работать с диапазонами , как с таблицами базы данных. Работать всегда нужно с именованными диапазонами, которые будут являться аналогами таблиц базы Excel. Для этого нужно написать программульку, которая отслеживает изменение размеров именнованых диапазонов и всегда держит необходимые области именнованными. При таком подходе можно обрабатывать эти именованые диапазоны как таблицы, с помощью Jet SQL, связывать их др с другом , удалять/добавлять в них (как посредством JetSQL , так и непосредственно на листе юзером) записи etc. Я давно использую именно такой подход, В итоге имею все преимущество реляционной СУБД при работе с Excel'ским листом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 21:46 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yunikiВообще, все предложения некрасивы. Простите, если обидел. А красиво работать с диапазонами , как с таблицами базы данных. Работать всегда нужно с именованными диапазонами, которые будут являться аналогами таблиц базы Excel. Для этого нужно написать программульку, которая отслеживает изменение размеров именнованых диапазонов и всегда держит необходимые области именнованными. При таком подходе можно обрабатывать эти именованые диапазоны как таблицы, с помощью Jet SQL, связывать их др с другом , удалять/добавлять в них (как посредством JetSQL , так и непосредственно на листе юзером) записи etc. Я давно использую именно такой подход, В итоге имею все преимущество реляционной СУБД при работе с Excel'ским листом. Тут бы стоило вообще ничего не отвечать, но не выдержал. Откуда ты взялся? Не путай х... с пальцем Если тебе близки Access и SQL Server - это ещё не значит что Exel под них подстраивать нужно. Это самостоятельная программа. Тем болеее первый вопрос автора дословно звучал так tuandreeva Подскажите, пожайлуста, как в таблице Exel создать формулу которая суммирует диапазон ячеек. =СУММ(B9:B34), но диапазон может быть и B9:B10, а так же и B9:B108, т.е. если ячейка пустая, то все, диапозан кончился. Отсюда и соответствующие предложения. Именно как в таблице Exel создать формулу . А твоё yunikiРаботать всегда нужно с именованными диапазонами, которые будут являться аналогами таблиц базы Excel. Это просто без слов... К чему ты с этим влез. Тут ещё много <Bakspace>-ов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 22:58 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Хотя я ничего против именованных диапазонов не имею и активно их использую, особенно динамические. Просто не понятно с чего такие утверждения... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 23:01 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
DeggasadХотя я ничего против именованных диапазонов не имею и активно их использую, особенно динамические. Просто не понятно с чего такие утверждения... Что непонятно, так это то, с чего так кипятиться. Я что , как-то лично за что-то задел, что надо растопыривать всякие пальцы ? Но понятно становится, если смотреть на суть . А проблема действительно имеется, и исходный вопрос всего лишь одно из многочисленных ее проявлений - У Excel много чего не достает для удобной работы , и мое решение практически полностью устраняет эту проблему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2007, 23:50 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yuniki DeggasadХотя я ничего против именованных диапазонов не имею и активно их использую, особенно динамические. Просто не понятно с чего такие утверждения... Что непонятно, так это то, с чего так кипятиться. Я что , как-то лично за что-то задел, что надо растопыривать всякие пальцы ? Но понятно становится, если смотреть на суть . А проблема действительно имеется, и исходный вопрос всего лишь одно из многочисленных ее проявлений - У Excel много чего не достает для удобной работы , и мое решение практически полностью устраняет эту проблему. Извините, действительно погорячился, спишим на мою юность. Вы просто не предлагаете своё решение, а утверждаете, что оно единственно верное, а это уже ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 08:06 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Deggasad Извините, действительно погорячился, спишим на мою юность. Вы просто не предлагаете своё решение, а утверждаете, что оно единственно верное, а это уже ... Ну и молодец, что извинился. SQL.ru за годы не меняется. А решение заключается в идее, которая изложена выше.Главное это. У меня-то просто имеется целая VB библиотека с реализацией ее и кучи всего другого, которую я использую, а прелагать ее сюда не имеет смысла, Поэтому предлагаю только одну из идей этой библиотеки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 10:26 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yuniki Deggasad Извините, действительно погорячился, спишим на мою юность. Вы просто не предлагаете своё решение, а утверждаете, что оно единственно верное, а это уже ... Ну и молодец, что извинился. SQL.ru за годы не меняется. А решение заключается в идее, которая изложена выше.Главное это. У меня-то просто имеется целая VB библиотека с реализацией ее и кучи всего другого, которую я использую, а прелагать ее сюда не имеет смысла, Поэтому предлагаю только одну из идей этой библиотеки. ну а если для примера выложить какое-нибуть удачное применение, только чур в Exele, тогда можно будет поговорить предметнее. И я смогу вызказать своё мнение! И другие! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 12:01 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Deggasad ну а если для примера выложить какое-нибуть удачное применение, только чур в Exele, тогда можно будет поговорить предметнее. И я смогу вызказать своё мнение! И другие! Дело в том, что это дело у меня не очень готово для публичного обозрения, - только описание интерфейсов вызовов есть, Ну вот ,если не лень качать 5 кусков по 100Kb, то пожалуйста. Обращу внимание, кроме очевидного из Книги1.xls использования , что один и тот же диапазон и его поддиапазоны , можно интерпретировать и поддерживать под разными именами. ЗЫ . Не забудь перед открытием Книга1 зарегить DDL' ку как описано в info.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 14:52 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
ну и 5-й последний ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 14:55 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Ничё не понял. Какой мне от этого прок! Наверное мне ещё рано... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 15:49 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Так что ты должен такого особенного понять ? Просто запускай Книга1.xls (только прежде зарегистрируй DLL'ку see info.txx ) и смотри как считается сумма в ячейке E4 из столбца Поле2, который разумеется м.б. произвольной длины - любой что вручную наколотим ему. Ps . Надо еще упомянуть , что такие именованные таблицы могут быть разорванными - т.е. сосотоять из нескольких несвязанных Range, что тоже может оказываться оплезным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 16:01 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yunikiТак что ты должен такого особенного понять ?Идею. Он должен был понять почему твоя идея лучше чем его. Пока ты даже меня не убедил что твоя идея имеет хоть какие-то плюсы. yunikiПросто запускай Книга1.xls (только прежде зарегистрируй DLL'ку see info.txx )Круто. Регестрировать специальную длл для редко нужных расчетов в Excel? Ты стреляешь из пушки по воробьям. Если человек способен использовать сторонюю dll ему уже не нужно использовать Excel для больших расчетов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:36 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yunikiТак что ты должен такого особенного понять ? Просто запускай Книга1.xls (только прежде зарегистрируй DLL'ку see info.txx ) и смотри как считается сумма в ячейке E4 из столбца Поле2, который разумеется м.б. произвольной длины - любой что вручную наколотим ему. Ps . Надо еще упомянуть , что такие именованные таблицы могут быть разорванными - т.е. сосотоять из нескольких несвязанных Range, что тоже может оказываться оплезным. В примере Диапазон Поле2 Как раз таки постоянный и нифига наколачивать не получается. А чтобы сделать Динамический диапазон и посчитать сумму по нему совсей не нужно (можно сказать никому не советую) устанавливать никаких библиотек и писать макросы. Так вот я и думаю зачем всё это: 1) Толи я не понимаю 2) Толи кто-то штаны через голову одевает (только без обид - скорее всего вариант 1) Именованный диапазон Вставка - Имя -Присвоить - Формула: (для текстовых данных) =ИсхДляГраф!$G$3:ИНДЕКС(ИсхДляГраф!$G$3:$G$30;ПОИСКПОЗ("яяяяя";ИсхДляГраф!$G$3:$G$30)) Всего-то делов или как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 17:37 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL (XL) Привет. В таком случае след. модифицированная формула должна быть несколько быстрее твоего варианта: =СУММ(B9:ИНДЕКС(B:B;МИН(ЕСЛИ($A9:$A1000="";СТРОКА($A9:$A1000)-1)))) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) или еще так: =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ИСТИНА;ЕПУСТО(A9:A10000);0)-1)) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) или так: =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ИСТИНА;A9:A10000="";0)-1)) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) 2 KL (XL) Как считаешь удачная ли эта формула для нахождения первого больше нуля знаяения??? =СУММПРОИЗВ(ПОИСКПОЗ(ИСТИНА;J4:O4>0;0)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 18:58 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
White Owl Круто. Регестрировать специальную длл для редко нужных расчетов в Excel? Ты стреляешь из пушки по воробьям. А причем тут "Регестрировать специальную длл " ? Это просто проблема распространения. А то, что стреляю "из пушки" - так именно так, только не по воробьям - зачем обижать воробьев ?. Эта DLL не предназначена для воробьев. Она весьма универсальна, я ее использую во всех приложениях. Она вообще у нас стоит на сервере в одном месте, откуда и подцеплена юзеревскими рабочими станциями. И любой может легко использовать любые ее функции. От суммы прописью для Euro,$,руб или ФИО в род падеже до создания развитых отчетов в WORD,Excel, цепляющих и объединяющих данные из ЛЮБЫХ источников , причем в последнем случае пользолвателю не нужно программировать, если не считать програмированием запись SQL кода (SELECT,INSERT,UPDATE,DELETE) . White Owl Если человек способен использовать сторонюю dll ему уже не нужно использовать Excel для больших расчетов. Так dll способен использвать любой 3 классник - так из этого еще не следует, что уже не нужно использовать Excel . Чего там использовать - установил ( regsvr32 путькDLLфайлу ) и используй ее функции в VBA. Разумеется пару строчек кода нужно знать как написать. Вообще речь не идет о том , чтоб вообще избавиться от VBA. Хотя в большинстве случаев в этой библиортеке именно это и возможно - только знай как ее установить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 19:52 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Deggasad В примере Диапазон Поле2 Как раз таки постоянный и нифига наколачивать не получается. А чтобы сделать Динамический диапазон и посчитать сумму по нему совсей не нужно (можно сказать никому не советую) устанавливать никаких библиотек и писать макросы. Ты DLL зарегистрировал-ли ? Если да , то дожен увидеть , как этот "постоянный диапазон" превращается в переменный только добавлять строчки следует непрерывно одну под другой (для того и описаны интерфейсы вызовов функций DLL"ки) А насчет писания макросов, так две строки VBA кода вряд ли можно назвать макросом. Если ты вообще в VBA не программируешь, то вряд ли должен решаться на такие советы. Я знал многих людей, никак не связанных с программированием (экономистов) , которые по своему по рабоче-крестьянско-экономистки писали разные нужные им программульки на VBA при этом даже получая удовольствие, Поэтому, вряд ли стоит такое советовать. И потом, как же ты прежде упомянул, что используешь динамические именованные диапазоны без VBA - непонятно. PS. ALT-F11 - и все сразу прояснится любому крестьянину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 20:03 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yuniki Deggasad В примере Диапазон Поле2 Как раз таки постоянный и нифига наколачивать не получается. А чтобы сделать Динамический диапазон и посчитать сумму по нему совсей не нужно (можно сказать никому не советую) устанавливать никаких библиотек и писать макросы. Ты DLL зарегистрировал-ли ? Если да , то дожен увидеть , как этот "постоянный диапазон" превращается в переменный только добавлять строчки следует непрерывно одну под другой (для того и описаны интерфейсы вызовов функций DLL"ки) А насчет писания макросов, так две строки VBA кода вряд ли можно назвать макросом. Если ты вообще в VBA не программируешь, то вряд ли должен решаться на такие советы. Я знал многих людей, никак не связанных с программированием (экономистов) , которые по своему по рабоче-крестьянско-экономистки писали разные нужные им программульки на VBA при этом даже получая удовольствие, Поэтому, вряд ли стоит такое советовать. И потом, как же ты прежде упомянул, что используешь динамические именованные диапазоны без VBA - непонятно. PS. ALT-F11 - и все сразу прояснится любому крестьянину. Можно посмотреть некоторые из моих топиков и понять, что я как раз и отношушь к тому разряду экономистов, которые по вечерам любят упрошать себе и тругим жизнь путём написания небольших макросов! И очень часто это доставляет удовольствие - согласен. Я понимаю, что вы програмист и в этом понимаете больше меня, но только вы своими DDl как раз и отобъёте охоту у обычных экономистов задуматься лишний раз о том насколько это просто сделать в Экселе (выше я уже указал как это делается). Макросы я бы использовал только на стадии добавления именованных диапазонов, чтобы руками каждый не добавлять, а все столбцы сразу обозвать. А потом они уже сами смотрят где у них последняя строка. И сумму прописью без макросов тремя разными способами можно сделать и кстате этот вариант более приемлем для шаблонов документов, т.к. неизвестно кто и где его будет заполнять!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 20:28 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yuniki White Owl Круто. Регестрировать специальную длл для редко нужных расчетов в Excel? Ты стреляешь из пушки по воробьям. А причем тут "Регестрировать специальную длл " ? Это просто проблема распространения.Вот именно что проблема распространения. Пойми, с Экселем работают в первую очередь люди очень далекие от каких-либо вопрос "распространения". Вот написать в листе сложную формулу - это понятно, а копировать кроме одного xls файла еще и какую-то dll, потом запускать командную строку и писать там страшную и совершенно незапоминаемую команду regsvr32 something.dll... это уже намного выше чем доступно простому юзеру. Даже если этот юзер очень опытен в самом Экселе. yunikiА то, что стреляю "из пушки" - так именно так, только не по воробьям - зачем обижать воробьев ?. Эта DLL не предназначена для воробьев. Она весьма универсальна, я ее использую во всех приложениях. Она вообще у нас стоит на сервере в одном месте, откуда и подцеплена юзеревскими рабочими станциями. И любой может легко использовать любые ее функции. От суммы прописью для Euro,$,руб или ФИО в род падеже до создания развитых отчетов в WORD,Excel, цепляющих и объединяющих данные из ЛЮБЫХ источников , причем в последнем случае пользолвателю не нужно программировать, если не считать програмированием запись SQL кода (SELECT,INSERT,UPDATE,DELETE) .Мдя... Ну вообще-то, я бы тебе посоветовал почитать учебники на тему что такое dll и что такое com-server, ты их явно не различаешь. Но судя по вопросу считать ли запись SQL код программированием или не считать, мои советы не помогут... yuniki White Owl Если человек способен использовать сторонюю dll ему уже не нужно использовать Excel для больших расчетов. Так dll способен использвать любой 3 классник - так из этого еще не следует, что уже не нужно использовать Excel . Чего там использовать - установил ( regsvr32 путькDLLфайлу ) и используй ее функции в VBA. Разумеется пару строчек кода нужно знать как написать. Вообще речь не идет о том , чтоб вообще избавиться от VBA. Хотя в большинстве случаев в этой библиортеке именно это и возможно - только знай как ее установить.Приходи ко мне в гости, я тебя посажу на телефон и ты будешь объяснять нашим юзерам как это все делать. Только учти что они (юзера) частенько спрашивают надо ли писать знак равенства в формуле или не надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 20:48 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
White OwlВот именно что проблема распространения. Короче ты мог бы обойтись одной этой фразой. Ты как-то не видишь того, что я говорю - и зачем-то, предпочитая поддеть меня на том, во что сам не вник , отсылаешь меня к учебникам по вопросу, который яйца выеденного не стоит. Могу просто по другому повторить то же самое : - Проблему распростарнения - не проблема. Она решается привлечением инсталлятора если требуется распространение. Просто у нас этого нет, но можно сделать. Нам этого не надо - все делается автоматически, централизованно - админ в нашей LAN этим занимается без всяких хлопот причем. Я вообще не собираюсь распротсранять эту библиотеку. - Юзеры разные , и я упомянул о тех , которые понимают что к чему. - Почему вообще ты решил , что нужно без программирования - непонятно ? - Ты как-то не обращаешь внимания - для чего весь это Excel придумывался. А между тем 99% юзеров его используют для создания отчетов из различных СУБД и их анализа. Причем , не те консольные операторы, которые кроме нибивания своих накладных ничего не знают, а пользователи среднего звена, которые как правило имеют высшее образование. А вы все свели просто к тому - как взять и посчитать сумму диапазона - какой смысл в этом вопросе, если он оторван от реальности ? а если смотреть на реальность , то получается то, что и высказал уже выше. Дело в подходе : Я считаю, что если есть удобный и полезный интструментарий, то его нужно установить и использовать по полной. Если ты считаешь, что не нужно использовать удобный инструмент, то это твой подход, вот и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 21:48 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yuniki Причем , не те консольные операторы, которые кроме нибивания своих накладных ничего не знают, а пользователи среднего звена, которые как правило имеют высшее образование. А вы все свели просто к тому - как взять и посчитать сумму диапазона - какой смысл в этом вопросе, если он оторван от реальности ? а если смотреть на реальность , то получается то, что и высказал уже выше. Дело в подходе : Я считаю, что если есть удобный и полезный интструментарий, то его нужно установить и использовать по полной. Если ты считаешь, что не нужно использовать удобный инструмент, то это твой подход, вот и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 21:55 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Причем , не те консольные операторы, которые кроме нибивания своих накладных ничего не знают, а пользователи среднего звена, которые как правило имеют высшее образование. Дело в подходе : Я считаю, что если есть удобный и полезный интструментарий, то его нужно установить и использовать по полной. Если ты считаешь, что не нужно Если я такой инструментарий дам кому нибуть у себя на работе, особенно босу с тремя его высшими образованиями и любовью к различным ERP, он меня всё-же повет. Юзерам, как вы нас там называете, нужны либо законченные вещи чтобы только на кнопочки жать (с определённым функцианалом, обеспечивающим право на жизнь), либо если в дебри лезть, то чтобы всё просто и понятно, с азов так сказать, чтобы можно было поиграться и что-то понять и остаться довольным от понятого! А вы все свели просто к тому - как взять и посчитать сумму диапазона - какой смысл в этом вопросе, если он оторван от реальности ? а если смотреть на реальность , то получается то, что и высказал уже выше. Нифига не оторвана от реальности. Как ни странно сижу сейчас этим как раз занимаюсь, только не просто ссумировать диапазоны, а с кучей условий, и чтобы удобно было сделал себе 30 динамических диапазонов, от 4 и до последней строки автоматом отслеживается. Потом сделал несколько списков на которые ссылаются условия ссумирования. И на основании полученных данных таблички, графики и всё такое. Завтра понесу шефу и пусть играется списками, анализирует, только исходныю инфу подливай и всё. И это можно кому угодно дать и без всяких макросов. Даже в ОО работает. Хотя мне бы самому на VBA проще было, но зачем всё итак просто смак! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 22:05 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
2 Deggasad > НУ вроде все объяснил уже, поэтому не хотите - выбросьте эту библиотеку в окно. Мне в общем-то достаточно того , как это используется у нас. А вот насчет : Deggasad сделал себе 30 динамических диапазонов, от 4 и до последней строки автоматом отслеживается. Вот только никак не могу понять - как сделал-то ? : Динамический именованный диапазон для меня - это когда юзер добавляет/удаляет ему вручную новые строки, а именованный Range автоматически при этом увеличивается/уменьшается. Это что можно как-то без макроса сделать ? Мне казалось, что у меня это сделано максимально просто - имеется, конечно, макрос - по одной строке на один диапазон . Могу написать такой , что будет одна строка на все отслеживаемые диапазоны. PS. Да, Может и можно , конечно, без макроса и я отстал не знаю новых версий(а может и старых;), т.к. использую в основном Excel2K (У нас-то стоят от 2K до 2003, поэтому и приходится под 2K писать, Да и в общем-то в 2K что хочется все можно, что и в более новых версиях. ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2007, 23:56 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yuniki2 Deggasad > НУ вроде все объяснил уже, поэтому не хотите - выбросьте эту библиотеку в окно. Мне в общем-то достаточно того , как это используется у нас. А вот насчет : Deggasad сделал себе 30 динамических диапазонов, от 4 и до последней строки автоматом отслеживается. Вот только никак не могу понять - как сделал-то ? : Динамический именованный диапазон для меня - это когда юзер добавляет/удаляет ему вручную новые строки, а именованный Range автоматически при этом увеличивается/уменьшается. Это что можно как-то без макроса сделать ? Мне казалось, что у меня это сделано максимально просто - имеется, конечно, макрос - по одной строке на один диапазон . Могу написать такой , что будет одна строка на все отслеживаемые диапазоны. PS. Да, Может и можно , конечно, без макроса и я отстал не знаю новых версий(а может и старых;), т.к. использую в основном Excel2K (У нас-то стоят от 2K до 2003, поэтому и приходится под 2K писать, Да и в общем-то в 2K что хочется все можно, что и в более новых версиях. ) Да мне тоже по большому счёту всё-равно. Просто мне ваш подход напоминает знаете что - привязать к себе пользователей чтобы они думали, что это ой какая сложная штука и даже не пытались в этом разобраться, а каждый бы раз звали бородатого дядьку, который бы им в очередной раз говорил "Ну что же вы за бараны, ни фига без меня сделать не можете... Тут же блин через SQL всё делается..." Я лично не знаю что такое SQL... Соот ветсвенно дома они вообще не могут такие фишки делать, если только бородатый дядька не даст им чудо библиотеку. Может быть опять погорячился - может. Но скорее всего вы классный програмист, а на Exel у вас просто нет времени. Динамический диапазон Exel - меню Вставка - Имя -Присвоить - Формула: =Лист1!$A$4:ИНДЕКС(Лист1!$A$4:$A$65536;ПОИСКПОЗ("яяяяя";Лист!$A$3:$A$65536)) После написания формулы жмём ОК. И используем диапазон в своё удовольствие. Этот пример работает для столбца с текстом, можно написать для цифр или и для того и для того. Можно с кучей условий диапазоны делать, т.е. не все данные, а выборочно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 09:11 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Deggasad Может быть опять ... 1) Вы не запустили, по всей видимости (почему-то), мой пример и на этом основании делаете суждения , т.е. получаются суждения о том , чего Вы не попробовали. Deggasad Динамический диапазон Exel - меню Вставка - Имя -Присвоить - Формула: =Лист1!$A$4:ИНДЕКС(Лист1!$A$4:$A$65536;ПОИСКПОЗ("яяяяя";Лист!$A$3:$A$65536)) После написания формулы жмём ОК. И используем диапазон в своё удовольствие. 2) А вот здесь я не могу разобраться - Делаю все по Вашей инструкции - пытаюсь добавить имя в меню "Вставка - Имя -Присвоить" диапазону - не появляется имя диапазона в окошке Именованных диапазонов (Excel2K,2003 - без разницы). У Вас вообще диапазон именуется или нет ? Но как-бы то ни было, что проще - использовать Вашу формулу =Лист1!$A$4:ИНДЕКС(Лист1!$A$4:$A$65536;ПОИСКПОЗ("яяяяя";Лист!$A$3:$A$65536)) или мою =СУММ(Поле2) ? Почувствуйте разницу - У Вас задействован в обработке Весь А столбец, в формуле чтобы разобраться надо потрудиться - читать справку в несколько листов по функциям ПОИСКПОЗ, ИНДЕКС. САм диапазон жестко(здесь м.б.возражения, но ,просто,долго объяснять), в отличие от моего , привязан к указанным ячейкам. Короче - как я сказал выше - некрасиво все это. В моей формуле все ясно даже интуитивно - суммируются значения столбца Поле2, котрый является именованным диапазоном, который динамически изменяет свои размеры(для поддержки чего и устанавливается дополнение к Office - DLL'ка) задействованы в обработке только его ячейки, а не весь столбец A. И Причем тут SQL? про него я упомянул, когда говорил о возможностях библиотеки , это не значит , что он здесь необходим. Так в чем проблема ? Добавить аддон (DLL'ку) к офису ? Так надо понимать, что если хотите красиво и эффективно работать, то для этого нужно программное обеспечение ПО. (Так , если бы Вы захотели работать с Excel и при этом не устанавливать Excel, то Ваше желание было бы несколько странно) Знаете , на заре распространения PC, директора считали, что достаточно купить компьютры, а они уже сами будут решать их задачи, потом оказалось, - ан нет, нужно еще ПО покупать, да еще и разбираться - какое именно ПО. А впрочем, - почему "на заре", где-то до сих пор такое мнение живет, Только сейчас PC неразрывно связывается с установленным на нем Windows и Office, а , разумеется, все вне этого - уже считается за гранью человеческого понимания. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 13:04 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
Deggasad KL (XL) Привет. В таком случае след. модифицированная формула должна быть несколько быстрее твоего варианта: =СУММ(B9:ИНДЕКС(B:B;МИН(ЕСЛИ($A9:$A1000="";СТРОКА($A9:$A1000)-1)))) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) или еще так: =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ИСТИНА;ЕПУСТО(A9:A10000);0)-1)) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) или так: =СУММ(B9:ИНДЕКС(B9:B10000;ПОИСКПОЗ(ИСТИНА;A9:A10000="";0)-1)) (формула массива - подтверждается одновременным нажатием CTRL+SHIFT+ENTER) 2 KL (XL) Как считаешь удачная ли эта формула для нахождения первого больше нуля знаяения??? =СУММПРОИЗВ(ПОИСКПОЗ(ИСТИНА;J4:O4>0;0)) Пожалуй, другое мне на ум не приходит :-) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 14:20 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
yuniki2) А вот здесь я не могу разобраться - Делаю все по Вашей инструкции - пытаюсь добавить имя в меню "Вставка - Имя -Присвоить" диапазону - не появляется имя диапазона в окошке Именованных диапазонов (Excel2K,2003 - без разницы). У Вас вообще диапазон именуется или нет ? Ничего, ничего! Это случается когда человек начинает спор о том, что лучше VB или Excel, не имея представления о том, что из себя представляет последний :-) а) То что вы называете именованным диапазоном, на самом деле является частным случаем именованной формулы . =A1:A100 ={"a":"b":"c"} ={1;2;3} =$A$4:ИНДЕКС($A$4:$A$65536;ПОИСКПОЗ("яяяяя";$A$3:$A$65536)) и т.д. и т.п. и пр. б) Имя диапазона в окошке Именованных диапазонов появляется только в случае если именованная формула содержит исключительно ссылку на диапазон. Это вовсе не означает, что имя, не отображаемое в списке Имен, не существует или не может быть использовано. Кстати, для справки именованная формула предложенная Degassad видна из-под меню Вставка-Имя-Присвоить, но можно сделать совсем невидимое имя с помощью проперти Visible. То, что именованные формулы это нужный и мощный инструмент - неоспоримый факт. Сие относится и к VB и даже к VBA и тут совершенно нет необходимости обращать Папу Римского в католицизм. То что ты пишешь напоминает позицию человека, который однажды утром, проснувшись, понял, что единственное, что помогает от всех болезней - это Аспирин. Ура, товарищи!!! yunikiНо как-бы то ни было, что проще - использовать Вашу формулу =Лист1!$A$4:ИНДЕКС(Лист1!$A$4:$A$65536;ПОИСКПОЗ("яяяяя";Лист!$A$3:$A$65536)) или мою =СУММ(Поле2) ? Почувствуйте разницу Шельмуешь, айяяяй! =СУММ(Поле2) надо сравнивать с =СУММ(Поле2) , где Поле2 содержит именованную формулу, а вот =$A$4:ИНДЕКС($A$4:$A$65536;ПОИСКПОЗ("яяяяя";$A$3:$A$65536)) сравни с кодом в твоей DLL ;-) yuniki- У Вас задействован в обработке Весь А столбец, в формуле чтобы разобраться надо потрудиться - читать справку в несколько листов по функциям ПОИСКПОЗ, ИНДЕКС. САм диапазон жестко(здесь м.б.возражения, но ,просто,долго объяснять), в отличие от моего , привязан к указанным ячейкам. Короче - как я сказал выше - некрасиво все это. Это опять-таки от незнания: а) читать справку по функциям ПОИСКПОЗ, ИНДЕКС тоже, как видно, не всем помогает, но ведь, чтобы установить DLL или пуще того редактировать код в ней, что-нибудь, но прочесть придется ;-) б) жесткая привязка убирается как минимум с пом. относительных ссылок, но можно и параметры передавать: http://www.jkp-ads.com/Articles/ExcelNames09.htm yunikiВ моей формуле все ясно даже интуитивно - суммируются значения столбца Поле2, котрый является именованным диапазоном, который динамически изменяет свои размеры(для поддержки чего и устанавливается дополнение к Office - DLL'ка) задействованы в обработке только его ячейки, а не весь столбец A. Этот аргумент построен на ложной предпосылке - читай выше. KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.07.2007, 15:03 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#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 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
я тут поисследовал - разница между поискпоз(a1:a9999) и поискпоз(a:a) - 5%. в пользу ограничения .. а индексу все равно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 15:22 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
а ограничение до 999 элементов дает выигрыш 10%.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 15:29 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
_slan_я тут поисследовал - разница между поискпоз(a1:a9999) и поискпоз(a:a) - 5%. в пользу ограничения .. а индексу все равно _slan_а ограничение до 999 элементов дает выигрыш 10%.. А теперь заполни все 9999 ячеек числами и попробуй еще раз формулы =ПОИСКПОЗ(9E+307;A:A) и =ПОИСКПОЗ(9E+307;$A$1:$A$10000) у меня в XL2003, разница 1450% , т.е. 1.55 мсек против 0.1 мсек На первый взгляд - что с того что разница большая раз макс. время все равно 0.0015 сек? Только теперь скопируй обе формулы каждую хотябы в 1000 ячеек. У меня соотношение осталось то же, только первая формула затрачивает 1 сек на полный расчет, а это уже заметно глазу. у меня в XL2003, разница 1450%, т.е. 1005.013 мсек против 4.45667 мсек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 15:57 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
неправильный подход.. 15мск/1мск=1500% НО 5.015/5,001=100,2% ... естественно я брал большие диапазоны... разница в десятые доли секунды может быть при одной и той же ф-ции. правильнее будет еще и приоритет повысить до максимума.. но я искал существующее значение.. так что окончательно пока не скажу, завтра попробую искать заведомо большее.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 21:24 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
_slan_неправильный подход.. 15мск/1мск=1500% НО 5.015/5,001=100,2% Ты читаешь, что пишешь? Неправильный подход - у тебя. Суди сам: 1мск в 15 раз быстрее, чем 15мск. Каждый раз это 100%, следовательно 1мск на 1400% быстрее, чем 15мск. А с твоей логикой, решения вообще не существует: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 22:25 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
_slan_...правильнее будет еще и приоритет повысить до максимума.. Понятия не имею, о чем ты здесь говоришь :-( _slan_но я искал существующее значение.. так что окончательно пока не скажу, завтра попробую искать заведомо большее.. Либо мы пробуем формульные конструкции изложенные в этой теме, либо читаем изложенные мной выше патроны поведения поисковых функций. Совершенно очевидно, что в зависимости от местонахождения искомого значения, функции приблизительного поиска могут совершать от 1 до 17 сравнений. При нахождении первого же совпадения поиск прекращается. В случае с заведомо несуществующим значением, кол-во сравнений в диапазоне из 65.536 ячеек всегда 17 (а может, кстати, и на одно-два больше, т.к. последнее значение диапазона - это результат несовсем логичный для данных функций). По той же логике, вполне могут существовать ситуации, когда функции точного поиска окажуться быстрее функций приблизительного поиска - например когда искомое значение находится на первых 16-ти позициях диапазона поиска из 65.536 ячеек. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2008, 22:43 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
да, поиск заведомо большего задействует максимальное количество операций.. и здесь ограничение диапазона влияет существенно.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2008, 14:52 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL (XL) _slan_неправильный подход.. 15мск/1мск=1500% НО 5.015/5,001=100,2% Ты читаешь, что пишешь? Неправильный подход - у тебя. Суди сам: 1мск в 15 раз быстрее, чем 15мск. Каждый раз это 100%, следовательно 1мск на 1400% быстрее, чем 15мск. А с твоей логикой, решения вообще не существует: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. :) это как еще щитать - возможно только на 94 процента медленнее.. но определенно в 15 раз.. а неправильность - это я на счет таких малых интервалов.. - одна и та же функция может выполняться разное время за счет разделения времени процессора на разные задачи - вот про этот приоритет.. правильнее выполнять множество повторов и усреднять(или брать меньшее, если для рекламы).. а читать - других читаю, сам пишу :) ___ ниразуниMVP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2008, 15:44 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
_slan_...:) это как еще щитать - возможно только на 94 процента медленнее.. но определенно в 15 раз... Ну это пожалуйста! По крайней мере не грешит против логики. Тут как говорится стакан или на 94% пуст или на 1500% полон - кому как нравится. Но ты же сам говорил про выигрыш в 5%, а потом и в 10%, а не про потерю. Или в тогда еще это был правильный подход? _slan_...а неправильность - это я на счет таких малых интервалов... ...правильнее выполнять множество повторов и усреднять(или брать меньшее, если для рекламы)... Здрасте Вам, приехали! Правильнее чем что? Я разве тебе сказал, что делаю не так? Ты бы спросил, прежде чем вердикт выносить. 1) для чего же я тебе привел пример с формулами скопированными в 1000 ячеек? (вопрос риторический) 2) я всегда совершаю минимум 5 промеров и вычисляю среднее 3) погрешность в десятые мсек в формулах Excel - в порядке вещей, погрешность в мсек - почти нереальна. Конечно, важны еще и инструменты, которыми производятся данные измерения. 4) мой опыт промеров, показывает, что абсолютное время расчетов варьирует в силу множества причин (hardware, software, текущие процессы и т.д.), процентное соотношение - крайне редко (разве-что в зависимости от версии Office) _slan____ ниразуниMVP Вопреки бытующему мнению, MVP - это не аргумент в споре и не ученая степень в IT, а лишь указание на регулярно демонстрируемое желание безвозмездно делиться знаниями ;-) ___ 4разаMVP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2008, 17:07 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL, где можно подробнее узнать о том, что ты упомянул ниже? Или объясни, плиз, в 2-х словах как с создавать списки и как потом с ними работать? KL (XL)Кстати, у Excel, начиная с версии 2002 (XP) существует родное, общедоступное, легко понятное, но редко используемое решение для динамических диапазонов, и имя ему - Данные-Список-Создать список... Так-что, если речь об этих версиях, то и с именованными формулами связываться необязательно, ну а пресловутую DLL - вообще на свалку истории :-) KL [MVP - Microsoft Excel] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2008, 18:15 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
DaniilKKL, где можно подробнее узнать о том, что ты упомянул ниже? Или объясни, плиз, в 2-х словах как с создавать списки и как потом с ними работать? Треннинг на англ. Office2003 Справка на русск. Office2003 Справка на русск. Office2007 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2008, 20:22 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL (XL)..... спасибо! уже изучаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2008, 10:33 |
|
||
|
Сумма диапазона
|
|||
|---|---|---|---|
|
#18+
KL (XL) _slan_...:) это как еще щитать - возможно только на 94 процента медленнее.. но определенно в 15 раз... Ну это пожалуйста! По крайней мере не грешит против логики. Тут как говорится стакан или на 94% пуст или на 1500% полон - кому как нравится. Но ты же сам говорил про выигрыш в 5%, а потом и в 10%, а не про потерю. Или в тогда еще это был правильный подход? _slan_...а неправильность - это я на счет таких малых интервалов... ...правильнее выполнять множество повторов и усреднять(или брать меньшее, если для рекламы)... Здрасте Вам, приехали! Правильнее чем что? Я разве тебе сказал, что делаю не так? Ты бы спросил, прежде чем вердикт выносить. 1) для чего же я тебе привел пример с формулами скопированными в 1000 ячеек? (вопрос риторический) 2) я всегда совершаю минимум 5 промеров и вычисляю среднее 3) погрешность в десятые мсек в формулах Excel - в порядке вещей, погрешность в мсек - почти нереальна. Конечно, важны еще и инструменты, которыми производятся данные измерения. 4) мой опыт промеров, показывает, что абсолютное время расчетов варьирует в силу множества причин (hardware, software, текущие процессы и т.д.), процентное соотношение - крайне редко (разве-что в зависимости от версии Office) _slan____ ниразуниMVP Вопреки бытующему мнению, MVP - это не аргумент в споре и не ученая степень в IT, а лишь указание на регулярно демонстрируемое желание безвозмездно делиться знаниями ;-) ___ 4разаMVP за последнее - спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2008, 15:33 |
|
||
|
|

start [/forum/topic.php?all=1&fid=61&tid=2178535]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
165ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
85ms |
get tp. blocked users: |
1ms |
| others: | 264ms |
| total: | 560ms |

| 0 / 0 |
