Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2012, 20:29   #11
ZORRO2005
Форумчанин
 
Аватар для ZORRO2005
 
Регистрация: 26.11.2006
Сообщений: 584
По умолчанию

Цитата:
Сообщение от agregator Посмотреть сообщение
Понял, что лучше применять =ПРОСМОТР(9E+307;1/A2:AE2;A1:AE1). Кто нибудь может объяснить почему формула выдает результат 11 в прилагаемом примере4, т.к. если я правильно понял логику, результат должен быть 13, ну хотя бы 12, но 11
А что вы хотите получить?
Цитата:
Номер первого столбца значение которого больше нуля если смотреть справа налево.
Тогда используйте:
Код:
=ПРОСМОТР(9E+307;1/A2:AE2;A1:AE1)
=1/0,1 сколько получится? Больше ведь чем 1.
Выделите 1/A2:AE2 и нажмите F9 - увидите получившийся массив 1/A2:AE2

Последний раз редактировалось ZORRO2005; 06.07.2012 в 20:33.
ZORRO2005 вне форума Ответить с цитированием
Старый 06.07.2012, 20:31   #12
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

В данном случае единица не является числом превышающим числа в просматриваемом векторе, поэтому результат не предсказуем

Если нужна только позиция последнего ненулевого значения, то можно еще так (формула массива):
Код:
=ПОИСКПОЗ(2;1/(A2:AE2<>0))
здесь двойка всегда будет больше любого числа в просматриваемом векторе, поэтому вернется позиция последнего ненулевого значения
MCH вне форума Ответить с цитированием
Старый 06.07.2012, 20:38   #13
Serge 007
Участник клуба
 
Аватар для Serge 007
 
Регистрация: 15.12.2009
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от agregator Посмотреть сообщение
...лучше применять =ПРОСМОТР(9E+307;1/A2:AE2;A1:AE1)
Верно

Цитата:
Сообщение от agregator Посмотреть сообщение
...почему формула выдает результат 11 в прилагаемом примере4, т.к. если я правильно понял логику, результат должен быть 13, ну хотя бы 12, но 11?
Функция ПРОСМОТР умеет искать как точное, так и неточное совпадение. Причём сначала ищется точное, а потом уже неточное. Вот что происходит в вашем примере. Задавая искомое значение равное 1 Вы должны понимать, что если оно есть в просматриваемом массиве, то он должен быть упорядочен по возрастанию, иначе функция ПРОСМОТР может вернуть неверный результат, о чём написано в справке. Так и происходит в вашем случае (в массиве три единицы). Задав число больше 1 Вы получите искомые 13. Что бы не попадать в такие ситуации и используется число 9E+307, как я и указывал в статье по ссылке предоставленной уважаемым Zorro2005, вероятность иметь такое число в таблице практически нулевая, поэтому формула будет возвращать корректный результат
Бесплатная помощь: www.excelworld.ru
Платная помощь: serge_007.planetaexcel@mail.ru
https://yoomoney.ru: 41001419691823
Serge 007 вне форума Ответить с цитированием
Старый 06.07.2012, 20:53   #14
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

MCH, спасибо. Проверил, работает. Спасибо всем за объяснения.

Последний раз редактировалось agregator; 06.07.2012 в 21:18.
agregator вне форума Ответить с цитированием
Старый 06.07.2012, 21:55   #15
moglby
Новичок
Джуниор
 
Регистрация: 24.06.2012
Сообщений: 1
По умолчанию

Подскажите как выполнить(написать формулу) интерполяцию табличных даннных по 3-м заданным значениям.
Вложения
Тип файла: rar Книга1 Интерполяция.rar (2.1 Кб, 12 просмотров)
moglby вне форума Ответить с цитированием
Старый 07.07.2012, 16:28   #16
Михаил С.
Пользователь
 
Регистрация: 02.06.2010
Сообщений: 57
По умолчанию

А что Вы хотите найти в данном случае?
Функция ПРОСМОТР() выбирает ближайшее меньшее (или последнее) только в том случае, если нет равного искомому. Если есть искомое - оно выбирает искомое. У Вас искомых три, массив не отсортирован - результат непредсказуем.


зы.
Жаль, нельзя удалить сообщение - не видел вторую страницу

Последний раз редактировалось Михаил С.; 07.07.2012 в 16:31. Причина: Опять с отеом опаздал.
Михаил С. вне форума Ответить с цитированием
Старый 07.07.2012, 16:36   #17
Михаил С.
Пользователь
 
Регистрация: 02.06.2010
Сообщений: 57
По умолчанию

Цитата:
Сообщение от moglby Посмотреть сообщение
Подскажите как выполнить(написать формулу) интерполяцию табличных даннных по 3-м заданным значениям.
Не совсем понято:
1. Каким боком Ваш вопрос относится к данной теме?
2. Что именно нужно найти.
Михаил С. вне форума Ответить с цитированием
Старый 07.07.2012, 23:48   #18
ShAM66
Форумчанин
 
Регистрация: 24.02.2012
Сообщений: 160
По умолчанию

Ребята, прошу сильно не пинать. Хочется для себя поставить точку в данном вопросе.
Реплика Сергея:
Цитата:
Функция ПРОСМОТР умеет искать как точное, так и неточное совпадение. Причём сначала ищется точное, а потом уже неточное. Вот что происходит в вашем примере. Задавая искомое значение равное 1 Вы должны понимать, что если оно есть в просматриваемом массиве, то он должен быть упорядочен по возрастанию, иначе функция ПРОСМОТР может вернуть неверный результат, о чём написано в справке. Так и происходит в вашем случае (в массиве три единицы). Задав число больше 1 Вы получите искомые 13.
Функция ПРСМОТР(1;...), где ... массив 1 и 0, выдаст непредсказуемый результат, т.к. массив не упорядочен и 1 может быть несколько.
При тех же условиях функция ПРОСМОТР(2;...) выдаст последнюю 1 в массиве???
Еще раз прошу прощения и спасибо!
ShAM66 вне форума Ответить с цитированием
Старый 08.07.2012, 06:13   #19
agregator
Форумчанин
 
Аватар для agregator
 
Регистрация: 09.05.2009
Сообщений: 369
По умолчанию

ShAM66, функция =ПРОСМОТР(2;A3:AE3;A4:AE4) не найдёт совпадений и выдаст последнюю ячейку в массиве значение которой меньше 2, т.к. последняя ячейка в массиве AE3 равна 0, то она выдаст AE4, т.е. 31.
функция =ПРОСМОТР(2;1/A3:AE3;A4:AE4) выдаст последнюю 1 в массиве, т.к. #ДЕЛ/0! больше 2.
Вложения
Тип файла: rar Пример2.1.rar (2.5 Кб, 7 просмотров)
agregator вне форума Ответить с цитированием
Старый 09.07.2012, 00:58   #20
ShAM66
Форумчанин
 
Регистрация: 24.02.2012
Сообщений: 160
По умолчанию

Я ожидал всего, но только не
Цитата:
#ДЕЛ/0! больше 2
Это почему?
ShAM66 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
выяснить, является ли последовательность цифр натурального числа при просмотре их справа налево возрастающей последовательностью Al'f!ra Паскаль, Turbo Pascal, PascalABC.NET 2 05.03.2012 19:13
Вывод списка символов справа налево 5 раз подряд и исключить вывод цифр Gareek Помощь студентам 2 23.12.2011 21:41
Возможен ли поиск справа налево в Exel? Dima_com Microsoft Office Excel 9 30.11.2011 18:03
Как сделать так, чтобы когда вводишь символы, текст двигался справа налево? gylayko Помощь студентам 7 03.11.2011 20:56
Найти числа,которые читаются слева-направо и справа-налево одинаково(например, 1001). Паскаль NikLik Помощь студентам 8 22.11.2007 23:00