Страницы: 1
RSS
Поиск первого и последнего ненулевого элемента в массиве
 
См. файл. Поиск первого элемента есть (4 разных способа). Подскажите, как найти последнее ненулевое значение (для тех способов, для которых это возможно).
 
Формулы массива  
=ПРОСМОТР(9E+307;ЕСЛИ(B3:B15<>0;B3:B15))  
=ИНДЕКС(C3:C15;МАКС(ЕСЛИ(C3:C15<>0;СТРОКА(C3:C15)-2)))
 
Или:  
=ПРОСМОТР(9E+307;1/E3:E15;E3:E15)
 
Вернее огромное число там искать и не нужно :)  
=ПРОСМОТР(2;1/E3:E15;E3:E15)
 
А ЧТО ЗНАЧИТ 2 В =ПРОСМОТРЕ()?
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
2 - это гарантированно большее число наибольшего числа в просматриваемом массиве  
Вот такой каламбурчик :)
 
{quote}{login=kim}{date=14.11.2010 04:54}{thema=}{post}Вернее огромное число там искать и не нужно :)  
=ПРОСМОТР(2;1/E3:E15;E3:E15){/post}{/quote}  
красивая формула, но лучше все таки 9E+307, вдруг есть числа меньше 0,5, тогда формула их не найдет
 
{quote}{login=MCH}{date=14.11.2010 05:00}{thema=Re: }{post}{quote}{login=kim}{date=14.11.2010 04:54}{thema=}{post}Вернее огромное число там искать и не нужно :)  
=ПРОСМОТР(2;1/E3:E15;E3:E15){/post}{/quote}  
красивая формула, но лучше все таки 9E+307, вдруг есть числа меньше 0,5, тогда формула их не найдет{/post}{/quote}  
Ну значит на этом и порешили :)
 
{quote}{login=kim}{date=14.11.2010 04:50}{thema=}{post}Или:  
=ПРОСМОТР(9E+307;1/E3:E15;E3:E15){/post}{/quote}  
Вариант:  
=1/ПРОСМОТР(9E+307;1/E3:E15)
 
{quote}{login=kim}{date=14.11.2010 04:59}{thema=}{post}2 - это гарантированно большее число наибольшего числа в просматриваемом массиве  
Вот такой каламбурчик :){/post}{/quote}  
 
А что тогда будет обозначать 3? ..или 1?
"..Сладку ягоду рвали вместе, горьку ягоду я одна."
 
Владимир, я чуть неправильно написал:  
это меньшее из чисел, гарантированно больших, наибольшего числа в просматриваемом массиве. Скорее всего это будет 1E+16
 
Для 1 можно:  
=ПРОСМОТР(1;0/E3:E15;E3:E15)  
Дима, симпатичный вариант :)
 
{quote}{login=kim}{date=14.11.2010 06:04}{thema=}{post}Для 1 можно:  
=ПРОСМОТР(1;0/E3:E15;E3:E15)  
Дима, симпатичный вариант :){/post}{/quote}  
 
И все равно не пойму, как "ПРОСМОТР" в данной формуле ищет последнее ненулевое значение в просматриваемом векторе E3:E15, а не наиболее близкое к 1 в результате деления ноля на вектор E3:E15?
 
{quote}{login=kim}{date=14.11.2010 06:04}{thema=}{post}...Дима, симпатичный вариант :){/post}{/quote}  
Это не мой. Это ZVI здесь предложил:  
http://www.planetaexcel.ru/forum.php?thread_id=20834
 
{quote}{login=eugene.v}{date=14.11.2010 06:16}{thema=Re: }{post}  
И все равно не пойму, как "ПРОСМОТР" в данной формуле ищет последнее ненулевое значение в просматриваемом векторе E3:E15, а не наиболее близкое к 1 в результате деления ноля на вектор E3:E15?{/post}{/quote}  
в результате деления ноля на вектор E3:E15 получается массив:  
{#ДЕЛ/0!:#ДЕЛ/0!:#ДЕЛ/0!:#ДЕЛ/0!:#ДЕЛ/0!:0:#ДЕЛ/0!:0:#ДЕЛ/0!:#ДЕЛ/0!:0:#ДЕЛ/0!:#ДЕЛ/0!}  
соответственно ПРОСМОТР ищет последний ноль, в данном случае - 11 позиция, и подставляет значение из вектора E3:E15.  
вместо 1 может быть любое число больше нуля
 
Ну наверное главное не чей вариант, а возможность его запомнить и правильно применять. В профессионализме ZVI нет никаких сомнений :)  
Ну все ребята, дальше без меня, поеду на недельку поближе к KL съезжу.  
Всем удачи и терпения, счастливо!
Страницы: 1
Читают тему
Loading...