Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Какая формула отработает быстрее и меньше загрузит комп - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Какая формула отработает быстрее и меньше загрузит комп
ArkaIIIa Дата: Пятница, 17.07.2015, 16:37 | Сообщение № 1
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Господа, подскажите, пожалуйста.

Есть 2 формулы:
Код
=ЕСЛИ(A1=1;B1;ЕСЛИ(A2=1;B2;ЕСЛИ(A3=1;B3;)))

и
Код
=ИНДЕКС(B1:B3;ПОИСКПОЗ(1;A1:A3;0);)


Какая из них быстрее находит результат и меньше вешает комп?

Спасибо.


Сообщение отредактировал ArkaIIIa - Пятница, 17.07.2015, 16:39
 
Ответить
СообщениеГоспода, подскажите, пожалуйста.

Есть 2 формулы:
Код
=ЕСЛИ(A1=1;B1;ЕСЛИ(A2=1;B2;ЕСЛИ(A3=1;B3;)))

и
Код
=ИНДЕКС(B1:B3;ПОИСКПОЗ(1;A1:A3;0);)


Какая из них быстрее находит результат и меньше вешает комп?

Спасибо.

Автор - ArkaIIIa
Дата добавления - 17.07.2015 в 16:37
Rioran Дата: Пятница, 17.07.2015, 16:42 | Сообщение № 2
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
ArkaIIIa, если это виртуальный тотализатор - ставлю на вторую. Потому что во второй мы используем всего 2 встроенные функции, оптимизированные на низшем уровне. А в первой - у нас 3 функции и 3 логических действия.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеArkaIIIa, если это виртуальный тотализатор - ставлю на вторую. Потому что во второй мы используем всего 2 встроенные функции, оптимизированные на низшем уровне. А в первой - у нас 3 функции и 3 логических действия.

Автор - Rioran
Дата добавления - 17.07.2015 в 16:42
ArkaIIIa Дата: Пятница, 17.07.2015, 16:44 | Сообщение № 3
Группа: Проверенные
Ранг: Ветеран
Сообщений: 894
Репутация: 115 ±
Замечаний: 0% ±

2010
Rioran
Да у коллеги просто увидел файлик, там формула состоит из пары десятков таких "если". Мне, в принципе, пофиг, но стало любопытно, а не быстрее ли будет отрабатывать индекс, файл то и так перегружен данными.
 
Ответить
СообщениеRioran
Да у коллеги просто увидел файлик, там формула состоит из пары десятков таких "если". Мне, в принципе, пофиг, но стало любопытно, а не быстрее ли будет отрабатывать индекс, файл то и так перегружен данными.

Автор - ArkaIIIa
Дата добавления - 17.07.2015 в 16:44
vikttur Дата: Пятница, 17.07.2015, 16:48 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2941
Репутация: 526 ±
Замечаний: 0% ±

Зависит от данных. Каскад ЕСЛИ быстрее в случае, когда вычисления чаще обрезаются последующими каскадами. Во многих случаях ЕСЛИ более предпочтительна. Иногда в связке ЕСЛИ/ИНДЕКС
ПОИСКПОЗ - перебор диапазона в поисках значения, ЕСЛИ - проверка условий.


Сообщение отредактировал vikttur - Пятница, 17.07.2015, 16:52
 
Ответить
СообщениеЗависит от данных. Каскад ЕСЛИ быстрее в случае, когда вычисления чаще обрезаются последующими каскадами. Во многих случаях ЕСЛИ более предпочтительна. Иногда в связке ЕСЛИ/ИНДЕКС
ПОИСКПОЗ - перебор диапазона в поисках значения, ЕСЛИ - проверка условий.

Автор - vikttur
Дата добавления - 17.07.2015 в 16:48
Rioran Дата: Пятница, 17.07.2015, 16:52 | Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Провёл тестирование. Создал таблицу на 500 тысяч строк, отформатировал как таблицу, в первой строке в третьем столбце формула. В первых двух столбцах единички. По нажатию секундомера формула протягивается с первой строки до 500'000-й. 3 замера на каждую формулу. Результаты:

Первая формула: 16 сек, 9 сек, 12 сек
Вторая формула: 11 сек, 6 сек, 8 сек

Вторая статистически выигрывает где-то на треть.

***

Конечно, результаты могут быть аппаратно-зависимыми, поэтому предлагаю просто ориентироваться на соотношение скоростей, а не точное кол-во секунд.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Пятница, 17.07.2015, 16:54
 
Ответить
СообщениеПровёл тестирование. Создал таблицу на 500 тысяч строк, отформатировал как таблицу, в первой строке в третьем столбце формула. В первых двух столбцах единички. По нажатию секундомера формула протягивается с первой строки до 500'000-й. 3 замера на каждую формулу. Результаты:

Первая формула: 16 сек, 9 сек, 12 сек
Вторая формула: 11 сек, 6 сек, 8 сек

Вторая статистически выигрывает где-то на треть.

***

Конечно, результаты могут быть аппаратно-зависимыми, поэтому предлагаю просто ориентироваться на соотношение скоростей, а не точное кол-во секунд.

Автор - Rioran
Дата добавления - 17.07.2015 в 16:52
_Boroda_ Дата: Пятница, 17.07.2015, 17:02 | Сообщение № 6
Группа: Админы
Ранг: Местный житель
Сообщений: 16895
Репутация: 6612 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Провёл тестирование.

Аналогично. 3220950 штук взимозависимых формул. ИНДЕКС отработал за минуту, ЕСЛИ думает уже минут 5, а градусник только наполовину.
Кучу ЕСЛИ обычно делают те, кто пока не очень хорошо ориентируется в других формулах. Хотя, согласен с Виктором, бывают ситуации, когда каскад очень значительно улучшает скорость работы.
Но в формулах-то мы смотрим не только на скорость работы, но и на легкость написания и правки и на ошибкоустойчивость по человеческому фактору. Когда ЕСЛИ много, в них легко запутаться и их тяжело править при изменении условий.


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Провёл тестирование.

Аналогично. 3220950 штук взимозависимых формул. ИНДЕКС отработал за минуту, ЕСЛИ думает уже минут 5, а градусник только наполовину.
Кучу ЕСЛИ обычно делают те, кто пока не очень хорошо ориентируется в других формулах. Хотя, согласен с Виктором, бывают ситуации, когда каскад очень значительно улучшает скорость работы.
Но в формулах-то мы смотрим не только на скорость работы, но и на легкость написания и правки и на ошибкоустойчивость по человеческому фактору. Когда ЕСЛИ много, в них легко запутаться и их тяжело править при изменении условий.

Автор - _Boroda_
Дата добавления - 17.07.2015 в 17:02
Serge_007 Дата: Пятница, 17.07.2015, 23:24 | Сообщение № 7
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Когда ЕСЛИ много, в них легко запутаться и их тяжело править при изменении условий
Несколько экзотические способы визуализации формулы с вложенными функциями ЕСЛИ() :)
Код
=ЕСЛИ(A1=1;7;ЕСЛИ(A1=2;6;ЕСЛИ(A1=3;5;ЕСЛИ(A1=4;4;ЕСЛИ(A1=5;3;ЕСЛИ(A1=6;2;ЕСЛИ(A1=7;1)))))))


К сообщению приложен файл: 7752251.gif (23.6 Kb)


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
Сообщение
Когда ЕСЛИ много, в них легко запутаться и их тяжело править при изменении условий
Несколько экзотические способы визуализации формулы с вложенными функциями ЕСЛИ() :)
Код
=ЕСЛИ(A1=1;7;ЕСЛИ(A1=2;6;ЕСЛИ(A1=3;5;ЕСЛИ(A1=4;4;ЕСЛИ(A1=5;3;ЕСЛИ(A1=6;2;ЕСЛИ(A1=7;1)))))))



Автор - Serge_007
Дата добавления - 17.07.2015 в 23:24
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2025 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!