Страницы: 1
RSS
Найти самое маленькое положительное число в таблице
 
Здравствуйте! Как можно в таблице найти самое маленькое положительное число, если есть ещё и отрицательные?
 
Например так {=MIN(IF(A1:C1>0;A1:C1;9^9))}

или так https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=search&tags=&q=%D0%BD%D0%B0%D0... и так https://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=8&TID=33109&am...
Изменено: БМВ - 04.03.2018 19:03:13
По вопросам из тем форума, личку не читаю.
 
БМВ, всё понятно, кроме 9^9, что это значит?  
 
БМВ, я попробовал убрать 9^9 - работает, зачем это нужно?
 
9 в сетепени 9 это самая короткая запись достаточно большого числа и есть надежда, что среди ваших чисел есть хотя бы одно, которое меньше 387420489.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
9 в сетепени 9 это самая короткая запись достаточно большого числа
Но она здесь все равно не нужна :) Работать будет и так:
=МИН(ЕСЛИ(A1:C1>0;A1:C1))
=MIN(IF(A1:C1>0,A1:C1))

А вот если это оставить и в диапазоне будут только отрицательные числа - то Ваша формула выдаст это самое 9^9
Изменено: Дмитрий Щербаков - 04.03.2018 20:00:41
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
БМВ, а зачем это нужно, если и без этого работает? Мне интересно. Получается в массиве, ячейки, которые приобрели логическое значение ЛОЖЬ, получают теперь значение 9^9?
 
Дмитрий Щербаков, объясните каким ячейкам в массиве присваивается 9 в 9 степени. И почему работает без этого? Раз это массив, функция МИН будет понимать, что минимально значение нужно брать из ячеек с логическим значением ИСТИНА(в моём случае только положительные) и заменять "ложные" ячейки на большое число не нужно?  
 
В данном случае формула массива работает следующим образом:
берет каждое число в массиве(A1:C1) и проверяет, отвечает ли оно условию(>0). Если число действительно больше 0, то это число попадает в итоговый массив, т.к. для условия ИСТИНА указан этот же массив. Но если число меньше-равно нулю - то будет записано число, записанное для "если_ЛОЖЬ" - т.е. туда либо попадет само ЛОЖЬ(если не указано ничего), либо попадает 9^9(т.к. было указано оно). В большинстве случаев это не доставит проблем. Но как несложно предположить, если положительных чисел нет, то в качестве итогового массива будет три значения 9^9. И минимальное из них будет тоже 9^9.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий Щербаков, то есть вот так выглядит: ЕСЛИ(условие;если_истина;если_ложь)? Получается функция МИН понимает, что нужно выбрать только из ИСТИНЫХ значений?  
 
В данном случае да, понимает. Т.к. это формула массива и у них такой принцип работы.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий Щербаков, вот похожая формула МИН(ЕСЛИ(A1:C1<=0;"";A1:C1)) Получается: берет каждое число в массиве(A1:C1) и проверяет, отвечает ли оно условию(<=0). Если число действительно меньше либо равно 0, то это число станет пустотой(тут вопрос: записывает ли excel пустоту в массив?) Если не отвечает условию, то записывается в массив A1:C1? И тут у меня вытекает ещё один вопрос: либо в если_истина либо в если_ложь 100% должен быть указан массив, в который всё записывается? Например: если я указал массив, в который записывать ИСТИНУ(либо ЛОЖЬ), то для ЛЖИ (либо ИСТИНЫ) указать на что заменить значения(либо ничего не писать) и EXCEL понимает, что нужно значения ЛЖИ (либо ИСТИНЫ) записать в массив, который я указал для того, куда записывать ИСТИНУ( либо ЛОЖЬ)? Я правильно понял?  
 
Цитата
Дмитрий Щербаков написал:
Но она здесь все равно не нужна  Работать будет и так
привычка все контролировать :-) . Чтоб в случае если без массива FALSE за 0 не принимало :-) . Я когда VLOOKUP использую FALSE в последний параметр пишу даже не задумываясь :-)
По вопросам из тем форума, личку не читаю.
 
Или для Excel 2010+
Код
=AGGREGATE(15;6;A1:A300/(A1:A300>0);1)
Страницы: 1
Читают тему
Наверх