Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

Поиск приближенного числа в массиве

Автор Яна Варзова, 08.09.2015, 17:54

« назад - далее »

Яна Варзова

Доброго всем дня.
Вопрос:

1) в таблице даны значения чисел по возрастанию и, есть число, например 46:56:30.
Так вот, нужно найти в этой таблице приближенное в большую сторону (или такое же число) к 46:56:30 . В формуле можно прописать номер столбца. Ответом будет 47:33:00 (во втором столбце).

2) далее, напротив найденного уже 47:33:00, нужно записать число напротив, из последнего (правого) столбца.

Может, кто подскажет как. (Пожалуйста не VBA).

Pelena

Здравствуйте.
Так подойдёт?

Czeslaw

#2
Предлагаю вариант формулы немного попроще.
=AGGREGATE(15;6;A$1:M$31/(A$1:M$31>Q3);1)
И вторая формула
=IFERROR(INDEX(A$1:M$31;AGGREGATE(15;6;ROW($1:$31)/(A$1:M$31=R3);1);COLUMNS($A:$M));"")

Pelena

Цитата: Czeslaw от 08.09.2015, 21:23
Предлагаю вариант формулы немного попроще.
Красиво! Это плюс)

ShAM

Цитата: Pelena от 08.09.2015, 21:53
Цитата: Czeslaw от 08.09.2015, 21:23
Предлагаю вариант формулы немного попроще.
Красиво! Это плюс)
Согласен. Только:
или диапазон А1:М31 нужно превратить в числа (выделить А1:М31 - Ctrl+H - Найти: ":" - Заменить на: ":" (без кавычек) - Заменить все).
или формулу чутка дописАть: =АГРЕГАТ(15;6;A$1:M$31/(--A$1:M$31>Q3);1)

ShAM

Ну, и вторую формулу немного изменить: =ЕСЛИОШИБКА(ИНДЕКС(M$1:M$31;АГРЕГАТ(15;6;СТРОКА($1:$31)/(A$1:M$31=R3);1));"")

Яна Варзова

Невозможно передать здесь столько моей радости.
Глядя на формулы, которые вы мне щедро и любезно предоставили, поняла, что знания мои по Excel узки.

Всем моим помощникам по решению вопроса Благодарность и низкий поклон.
Дай вам Бог всех Благ!

Czeslaw

Яна здравствуйте!
Забыл предупредить Вас, что представленные Вами данные необходимо через специальную вставку умножить на единицу и потом преобразовать в формат времени и только тогда мои формулы будут работать нормально.
На всякий случай прицепляю переделанный пример Вашего файла.

Яна Варзова

Здравствуйте.

Хорошо! Посмотрю.

ShAM

Czeslaw, здравствуйте. Зачем искать по всей таблице: ИНДЕКС(A$1:M$31... и затем указывать номер столбца: ЧИСЛСТОЛБ($A:$M)? Можно же сразу искать по столбцу М: ИНДЕКС(M$1:M$31..., тогда номер столбца не нужен.
И Ваша формула:=ЕСЛИОШИБКА(ИНДЕКС(A$1:M$31;АГРЕГАТ(15;6;СТРОКА($1:$31)/(A$1:M$31=R3);1);ЧИСЛСТОЛБ($A:$M));"")
превращается в:=ЕСЛИОШИБКА(ИНДЕКС(M$1:M$31;АГРЕГАТ(15;6;СТРОКА($1:$31)/(A$1:M$31=R3);1));"")
PS: Извиняюсь за русские формулы. Надеюсь, разберетесь. ;)
PS:PS: Да, забыл про "плюс", ловите. :)

Яна Варзова

#10
Всем доброго дня.

У меня есть формула, которая выдает ошибку.
Задача, сейчас, наоборот, нужно, чтобы, Excel нашел число 142:57:00 по правому столбцу, в котором число 0:00:00.

Есть формула, которая всегда действовала, но сейчас же выдает #н/д.
Может, подскажете в чем причина, разобраться не могу.

Czeslaw

Приведите данные к единому формату, как указано в моем предыдущем посте.

Яна Варзова


Яна Варзова

Помогите, пожалуйста, вот еще в чем.

Сделала как вы сказали. Получилось. Но. При копировании таблицы с формулами на другой Лист выдает ошибку в ячейках #знач. И я не в силах, как быть.

vikttur

#14
Ошибочные данные в ячейке К2.

В теме несколько вопросов. какой из них решает формула, не разбирался.
=СУММПРОИЗВ(--(--(--($A$1:$L$31)>=Q3)=0)) безболезненно заменяется на
=СУММПРОИЗВ(1-(--$A$1:$L$31>=Q3))

А может, всю формулу заменить? :)
=НАИБОЛЬШИЙ((--A1:L31>Q3)*A1:L31;СЧЁТ(1/(--A1:L31>Q3)))