Страницы: 1
RSS
Максимальное значение в массиве по нескольким условиям
 
Добрый день!

Прошу помощи, возникла потребность найти максимальное (наибольшее) значение в массиве по нескольким условиям. Сложность возникает, в том, что условия состоят не просто из одного значения, а из нескольких значений. К тому же первое условие, применимо к строкам, а второе к столбцам.
К примеру есть стоимость 20-и товаров у 10-и поставщиков. Нужно найти максимальную стоимость только среди товаров №5,6,8,9,10,12,14 у поставщиков №3,5,10. (Образец прикреплен)
 
=МАКС(D6;F6;K6;D7;F7;K7;D9;F9;K9;D10;F10;K10;D11;F11;K11;D13;F13;K13;D15;F15;K15)
не благодари )
 
Формула массива.
Код
=MAX(SIGN(COUNTIF(N$1:N$7;Таблица1[[#Headers];[Поставщик 1]:[Поставщик 10]])*COUNTIF($M$1:$M$7;Таблица1[Товар]))*Таблица1[[Поставщик 1]:[Поставщик 10]])

Или так:
Код
=AGGREGATE(14;6;Таблица1[[Поставщик 1]:[Поставщик 10]]/SIGN(COUNTIF(N$1:N$7;Таблица1[[#Headers];[Поставщик 1]:[Поставщик 10]])*COUNTIF($M$1:$M$7;Таблица1[Товар]));1)
Изменено: memo - 06.07.2022 03:28:56 (Исправил задвоение результата при выборе одинаковых критериев и добавил УФ.)
 
Цитата
написал:
Формула массива.
Код
    [URL=#]?[/URL]       1      =MAX(SIGN(COUNTIF(N$1:N$7;Таблица1[[#Headers];[Поставщик 1]:[Поставщик 10]])*COUNTIF($M$1:$M$7;Таблица1[Товар]))*Таблица1[[Поставщик 1]:[Поставщик 10]])   
 
Или так:
Код
    [URL=#]?[/URL]       1      =AGGREGATE(14;6;Таблица1[[Поставщик 1]:[Поставщик 10]]/SIGN(COUNTIF(N$1:N$7;Таблица1[[#Headers];[Поставщик 1]:[Поставщик 10]])*COUNTIF($M$1:$M$7;Таблица1[Товар]));1)   
 
Спасибо ОГРОМНОЕ!!!
Это гениально. Я уже подумал, что задача не решится одной ячейкой, и нужно добавлять доп. строку и столбец и там искать максимальные значения. С функцией АГРЕГАТ не разу не сталкивался, пошел курить справку). Спасибо еще раз !!!!!!
 
Цитата
92vse@mail.ru написал:
Это гениально.
также гениально написано в правилах форума о отображаемом имени, которое следует заменить!!!
По вопросам из тем форума, личку не читаю.
 
Цитата
написал:
Цитата
написал:
Формула массива.
 
Код
    [URL=#]?[/URL]       1            [URL=#]?[/URL]       1      =MAX(SIGN(COUNTIF(N$1:N$7;Таблица1[[#Headers];[Поставщик 1]:[Поставщик 10]])*COUNTIF($M$1:$M$7;Таблица1[Товар]))*Таблица1[[Поставщик 1]:[Поставщик 10]])     
 
   
Или так:
 
Код
    [URL=#]?[/URL]       1            [URL=#]?[/URL]       1      =AGGREGATE(14;6;Таблица1[[Поставщик 1]:[Поставщик 10]]/SIGN(COUNTIF(N$1:N$7;Таблица1[[#Headers];[Поставщик 1]:[Поставщик 10]])*COUNTIF($M$1:$M$7;Таблица1[Товар]));1)     
      Спасибо ОГРОМНОЕ!!!
Это гениально. Я уже подумал, что задача не решится одной ячейкой, и нужно добавлять доп. строку и столбец и там искать максимальные значения. С функцией АГРЕГАТ не разу не сталкивался, пошел курить справку). Спасибо еще раз !!!!!!
@memo А вот еще какой вопрос, после определения максимального значения в массиве, стоит задача вывести поставщика и товар с максимальным значением. С этой задачей я справился, но если максимальных значений несколько, то поставщик и товар определяется неверно, как можно исправить ситуацию ?
Наибольшее знч.xlsx (14.9 КБ)
 
Для товара попробуйте так:
Код
=INDEX(Таблица1[Товар];SMALL(IF(COUNTIF($N$12;SIGN(COUNTIF(N$1:N$7;Таблица1[[#Headers];[Поставщик 1]:[Поставщик 10]])*COUNTIF($M$1:$M$7;Таблица1[Товар]))*Таблица1[[Поставщик 1]:[Поставщик 10]]);ROW(Таблица1[Товар])-ROW(Таблица1[[#Headers];[Товар]]));ROW(A1)))

Для поставщиков по аналогии.

OFFTOP. Думаю, вам стоит обратить внимание на замечание модератора из сообщения №5. Здесь с правилами строго.
Изменено: memo - 13.07.2022 10:32:50
Страницы: 1
Наверх