Страницы: 1
RSS
Найти снизу-вверх значение с наименьшим количеством символов и вернуть его.
 
Здравствуйте!    
Задача у меня в том, чтобы найти первое значение с меньшим количеством символов и вернуть его. При этом поиск нужно осуществлять снизу вверх. Я прикладываю файл, чтобы задача стала яснее. В нем же я показываю искомый результат.    
Спасибо.
 
{quote}{login=The_Prist}{date=11.08.2010 09:52}{thema=}{post}Здравствуйте.  
Не понял. Кол-во символов у Вас везде одинаковое: 0400 и 1300 имеют по 4 символа. Все остальные цифры имеют по 7 символов. Почему, если мы ищем первое снизу, то 0400? Где просматривать значения надо? И почему в I10 должно быть 0500? Даже из примера не понятен принцип. Или Ваш пример расходится с описанной Вами задачей.{/post}{/quote}  
 
Если вы находитесь в I10, то ищите в колонке Н (начиная с 10й строки снизу вверх) первое значение с меньшим количеством символов (ну или с определенным для упрощения). Таким образом получается, что в ячейках с Н10 по Н7 нет значения с меньшим количеством символов, все же по 7 символов имеют. А вот ячейка Н6 первая, которая имеет меньшее количество символов, то есть 4 и это меньше 7.
 
{quote}{login=The_Prist}{date=11.08.2010 10:06}{thema=}{post}Ясно. Тогда так можно. Формула массива.  
Как вводить формулу массива:  
После введения формулы в ячейку, ввод завершается нажатием не просто Enter, а Ctrl+Shift+Enter. Формула при этом будет заключена в фигурные скобки - {}.{/post}{/quote}  
 
Спасибо Вам! Решение достигнуто. Однако в логике мне еще предстоит разобраться. Не пойму почему именно нижнее  значение возвращается. Какую тему в учебнике почитать нужно?  
 
Спасибо еще раз за помощь. Первый раз обращаюсь на форум с вопросом. Результат 100%.
 
{quote}{login=The_Prist}{date=11.08.2010 10:06}{thema=}{post}Ясно. Тогда так можно. Формула массива.  
Как вводить формулу массива:  
После введения формулы в ячейку, ввод завершается нажатием не просто Enter, а Ctrl+Shift+Enter. Формула при этом будет заключена в фигурные скобки - {}.{/post}{/quote}  
 
Функция МАКС возвращает первое снизу значение, потому что четырехзначные числа возрастают сверху вниз? А если бы не возрастали?
 
{quote}{login=The_Prist}{date=11.08.2010 10:36}{thema=Re: Re: }{post}{quote}{login=Ship}{date=11.08.2010 10:27}{thema=Re: }{post}Функция МАКС возвращает первое снизу значение, потому что четырехзначные числа возрастают сверху вниз? А если бы не возрастали?{/post}{/quote}Нет. Здесь функция МАКС возвращает максимальную строку с минимальным кол-в символов, а не значение. И этот результат передается в ИНДЕКС, как того требует второй аргумент данной функции.{/post}{/quote}  
 
Впечатлен. Спасибо.
 
Последние дни интуиция не подводила :)  
Может быть, все проще - простой формулой искать текст, а не длину строки?  
=ЕСЛИ(ЕЧИСЛО(H2);ИНДЕКС($H$1:H2;ПОИСКПОЗ("яя";$H$1:H2;1));"")
 
{quote}{login=vikttur}{date=11.08.2010 01:05}{thema=}{post}Последние дни интуиция не подводила :)  
Может быть, все проще - простой формулой искать текст, а не длину строки?  
=ЕСЛИ(ЕЧИСЛО(H2);ИНДЕКС($H$1:H2;ПОИСКПОЗ("яя";$H$1:H2;1));""){/post}{/quote}  
 
Работает. Спасибо. Объясните пожалуйста в чем фишка, что формула именно перове снизу короткое значение возвращает?
 
Я же говорил - интуиция :)  
В Вашем примере все короткие строки - это для Excel не числа, а текст. Формула ищет последнюю ячейку с текстом.
 
{quote}{login=vikttur}{date=11.08.2010 05:13}{thema=}{post}Я же говорил - интуиция :)  
В Вашем примере все короткие строки - это для Excel не числа, а текст. Формула ищет последнюю ячейку с текстом.{/post}{/quote}  
 
То есть, то что Вы поставили в формуле "яя" - это означает, что она текст будет искать? А то, что "яя", а не "аа" - последнюю, а не первую ячейку?
 
{quote}{login=}{date=12.08.2010 07:57}{thema=Re: }{post}{quote}{login=vikttur}{date=11.08.2010 05:13}{thema=}{post}Я же говорил - интуиция :)  
В Вашем примере все короткие строки - это для Excel не числа, а текст. Формула ищет последнюю ячейку с текстом.{/post}{/quote}  
 
То есть, то что Вы поставили в формуле "яя" - это означает, что она текст будет искать? А то, что "яя", а не "аа" - последнюю, а не первую ячейку?{/post}{/quote}  
Хотя, если "аа" поставить, то формула все-равно возвращает последнюю ячейку. Ничего не понимаю ...
 
{quote}{login=The_Prist}{date=11.08.2010 10:36}{thema=Re: Re: }{post}{quote}{login=Ship}{date=11.08.2010 10:27}{thema=Re: }{post}Функция МАКС возвращает первое снизу значение, потому что четырехзначные числа возрастают сверху вниз? А если бы не возрастали?{/post}{/quote}Нет. Здесь функция МАКС возвращает максимальную строку с минимальным кол-в символов, а не значение. И этот результат передается в ИНДЕКС, как того требует второй аргумент данной функции.{/post}{/quote}  
Здравствуйте!  
=ИНДЕКС($A$1:A9;МАКС(ЕСЛИ(ДЛСТР($A$1:A9)=МИН(ДЛСТР($A$1:A9));СТРОКА($A$1:A9))))  
Это Ваша формула. Меня интересует функция ЕСЛИ в ней. Если формула стоит в строке напротив семизначного числа, то логическое выражение в функции ЕСЛИ ложь, а аргумента для лжи нет, значит ноль должен появляться.    
Или я не прав?
 
<Хотя, если "аа" поставить, то формула все-равно возвращает последнюю ячейку. Ничего не понимаю ...>  
"яя" - последняя буква алфавита два раза подряд - не видел примера, когда такое может встретиться в данных. Т.е. ПОИСКПОЗ() будет пропускать все данные, которые ниже (по возрастанию), чем "яя", а не найдя такого, покажет положение последнего текста. Любая буква тоже выше, чем число в тексте, поэтому даже при "а" покажет правильный результат.  
 
<= МАКС(ЕСЛИ(ДЛСТР($A$1:A9)=МИН(ДЛСТР($A$1:A9));СТРОКА($A$1:A9))) … Меня интересует функция ЕСЛИ в ней…>  
Здесь в функции ЕСЛИ определяется масив значений. Длина строки каждой ячейки $A$1:A9 сравнивается с минимальной длиной из этого диапазона, при совпадении в массив записывается № этой итроки. МАКС() вытягивает наибольший номер.
 
{quote}{login=vikttur}{date=12.08.2010 11:52}{thema=}{post}<Хотя, если "аа" поставить, то формула все-равно возвращает последнюю ячейку. Ничего не понимаю ...>  
"яя" - последняя буква алфавита два раза подряд - не видел примера, когда такое может встретиться в данных. Т.е. ПОИСКПОЗ() будет пропускать все данные, которые ниже (по возрастанию), чем "яя", а не найдя такого, покажет положение последнего текста. Любая буква тоже выше, чем число в тексте, поэтому даже при "а" покажет правильный результат.  
 
<= МАКС(ЕСЛИ(ДЛСТР($A$1:A9)=МИН(ДЛСТР($A$1:A9));СТРОКА($A$1:A9))) … Меня интересует функция ЕСЛИ в ней…>  
Здесь в функции ЕСЛИ определяется масив значений. Длина строки каждой ячейки $A$1:A9 сравнивается с минимальной длиной из этого диапазона, при совпадении в массив записывается № этой итроки. МАКС() вытягивает наибольший номер.{/post}{/quote}  
 
То есть, если четырехзначные числа не будут отсортированы по возрастанию формула не будет работать?  
Или функция МАКС берет максимально нижнюю строку с четырехзначным текстом?  
Спасибо.
 
{quote}{login=}{date=12.08.2010 12:41}{thema=Re: }{post}{quote}{login=vikttur}{date=12.08.2010 11:52}{thema=}{post}<Хотя, если "аа" поставить, то формула все-равно возвращает последнюю ячейку. Ничего не понимаю ...>  
"яя" - последняя буква алфавита два раза подряд - не видел примера, когда такое может встретиться в данных. Т.е. ПОИСКПОЗ() будет пропускать все данные, которые ниже (по возрастанию), чем "яя", а не найдя такого, покажет положение последнего текста. Любая буква тоже выше, чем число в тексте, поэтому даже при "а" покажет правильный результат.  
 
<= МАКС(ЕСЛИ(ДЛСТР($A$1:A9)=МИН(ДЛСТР($A$1:A9));СТРОКА($A$1:A9))) … Меня интересует функция ЕСЛИ в ней…>  
Здесь в функции ЕСЛИ определяется масив значений. Длина строки каждой ячейки $A$1:A9 сравнивается с минимальной длиной из этого диапазона, при совпадении в массив записывается № этой итроки. МАКС() вытягивает наибольший номер.{/post}{/quote}  
 
То есть, если четырехзначные числа не будут отсортированы по возрастанию формула не будет работать?  
Или функция МАКС берет максимально нижнюю строку с четырехзначным текстом?  
Спасибо.{/post}{/quote}  
 
Извините, я все понял. Спасибо еще раз.
Страницы: 1
Читают тему
Наверх