Страницы: 1
RSS
выбор строки по индексу, что лучше СМЕЩ или несколько ИНДЕКС?
 
=НАИБОЛЬШИЙ((B2:C2;СМЕЩ(B2:C2;3;0));E3)  
=НАИБОЛЬШИЙ((B2:C2;ИНДЕКС(B2:C8;4;1);ИНДЕКС(B2:C8;4;2));E3)  
Подразумевается что вместо цифр будут формулы,  
а количество общитываемых строк гораздо больше чем в B2:C8.  
 
или какой то другой вариант?
 
А с какой целью вообще введены смещ() или индекс()?
 
Подразумевается что вместо цифр 3, 4, 2 будут формулы  
 
Результат работы формулы    
наити определённый наибольший из разнесённых строк  
например B2:C2 и B5:C5  
номера строк задаются в формуле.
 
Если честно я всеравно мало что понял. Наверное без примера не обойтись. Кстати а формулы, что Вы написали не подходят или их надо просто улучшить?
 
есть кубики заданные соответственно своими нижними и верхними координатами X,Y,Z  
данные о кубиках размещены в таблице из N строк  
всёго соответственно будет (N^2-N) разных пересечений,    
чтоб не смотреть всё подряд, необходимо ввести в формулы выбор строк где расположены данные.  
 
Ну а сам вопрос касается как улучшения формул так и того какая формула будет сильнее тормозить.  
 
пример чуть позже.
 
задача связана с веткой  
http://www.planetaexcel.ru/forum.php?thread_id=11051  
пересечение трёхмерных массивов
 
{quote}{login=dl}{date=06.11.2009 03:09}{thema=выбор строки по индексу,  что лучше СМЕЩ или несколько ИНДЕКС?}{post}=НАИБОЛЬШИЙ((B2:C2;СМЕЩ(B2:C2;3;0));E3)  
=НАИБОЛЬШИЙ((B2:C2;ИНДЕКС(B2:C8;4;1);ИНДЕКС(B2:C8;4;2));E3)  
Подразумевается что вместо цифр будут формулы,  
а количество общитываемых строк гораздо больше чем в B2:C8.  
 
или какой то другой вариант?{/post}{/quote}  
это должно помочь  
разработка KL
 
{quote}{login=}{date=06.11.2009 04:18}{thema=Re: выбор строки по индексу,  что лучше СМЕЩ или несколько ИНДЕКС?}{post}{quote}{login=dl}{date=06.11.2009 03:09}{thema=выбор строки по индексу,  что лучше СМЕЩ или несколько ИНДЕКС?}{post}=НАИБОЛЬШИЙ((B2:C2;СМЕЩ(B2:C2;3;0));E3)  
=НАИБОЛЬШИЙ((B2:C2;ИНДЕКС(B2:C8;4;1);ИНДЕКС(B2:C8;4;2));E3)  
Подразумевается что вместо цифр будут формулы,  
а количество общитываемых строк гораздо больше чем в B2:C8.  
 
или какой то другой вариант?{/post}{/quote}  
это должно помочь  
разработка KL{/post}{/quote}  
 
файл забыл
 
вобщем в соответствии с декларацией Кирилла о летучести смещ...  
пришлось правда добавить по 1000 повторений для каждого вычисления  
формулы  
=ЕСЛИ(ИЛИ(ИНДЕКС(B10:B13;$I$10)>ИНДЕКС(C10:C13;$J$10);ИНДЕКС(B10:B13;$J$10)>ИНДЕКС(C10:C13;$I$10));0;НАИБОЛЬШИЙ((СМЕЩ(B$9:C$9;$I$10;0);СМЕЩ(B$9:C$9;$J$10;0));2)-НАИБОЛЬШИЙ((СМЕЩ(B$9:C$9;$I$10;0);СМЕЩ(B$9:C$9;$J$10;0));3))  
=ЕСЛИ(ИЛИ(ИНДЕКС(B10:B13;$I$10)>ИНДЕКС(C10:C13;$J$10);ИНДЕКС(B10:B13;$J$10)>ИНДЕКС(C10:C13;$I$10));0;НАИБОЛЬШИЙ((ИНДЕКС(B$10:C$13;$I$10;1);ИНДЕКС(B$10:C$13;$I$10;2);ИНДЕКС(B$10:C$13;$J$10;1);ИНДЕКС(B$10:C$13;$J$10;2));2)-НАИБОЛЬШИЙ((ИНДЕКС(B$10:C$13;$I$10;1);ИНДЕКС(B$10:C$13;$I$10;2);ИНДЕКС(B$10:C$13;$J$10;1);ИНДЕКС(B$10:C$13;$J$10;2));3))  
результаты  
время (мсек) 125 109.375  
114% 88%  
время конца расчета 19:00  
 
зы. дискуссии по вопросам правильности определения быстродействия если не читал то просматривал
 
Еще раз спасибо. Задача практически решена! Однако есть маленькая загвоздка. Если кубики не пересекаются одной гранью (LR, LG, LB равно 0) весь итог получается =0, а это - к сожалению, ошибка. Может быть есть возможность это подправить?
 
Влезу немного.  
Исходную задачу не смотрел, ответ исключительно в разрезе вопроса из первого сообщения.  
Индекс вполне может возвращать массив, с которым нормально работает функция наибольший.  
Попробуйте так:  
=НАИБОЛЬШИЙ((B2:C2;ИНДЕКС(B2:C8;4;));E3)  
Если в индексе точно не указывать какое значение возвращать, то "он", грубо говоря, возвращает все "подходящие значения".  
Т е индекс(b2:с8;;) вернёт весь массив, индекс(b2:c8;1;) вернёт первую строку, т е b2:c2, индекс(b2:c8;;1) вернёт первый столец, т е b2:b8.
 
Ошибся :(  
Я считал, что сообщение "для справки" от Саши.
 
Как так, я ведь фанат знаков препинания и длиннющих предложений. :)  
Особенно забавно, когда к этому добавляется сонливость, и, не смотря на то, что я не помню, с чего начиналось предложение, продолжаю его писать, расставляя запятые, где надо и не надо. Про наличия смысла в получившихся предложениях я даже говорить не буду.
 
Прошу извинить, не подумавши про ошибку ляпнул. Все корректно. Еще раз большое спасибо всем.
Страницы: 1
Читают тему
Наверх