Формулы Excel для максимального или минимального количества случаев ВПР

#excel

#excel

Вопрос:

Мне нужно выполнить сложный выбор типа vlookup / maxif. Данные, которые у меня есть, как показано ниже

 Row Col G    Col H   Col I   colJ        col K
1    Bench  Strip   Block   BenchAbove   BenchBelow
2    1       1       4
3    1       1       5
4    1       1       6
5    1       1       7
6    1       1       8
7    8       1       4         ??           ??
8    8       1       5
9    8       1       6
10   8       1       7
11   8       1       8
12   9       1       4
13   9       1       5
14   9       1       6
15   9       1       7
  

….. этот список длинный (это только пример)

Для каждой комбинации (полосы, блока), например, (1,4), есть скамейки, подобные 1, 8 и 9. Таким образом, скамейка выше для 8 равна 1, а скамейка ниже для 8 равна 9. Мне нужно определить таблицу выше и таблицу ниже для каждой строки. Нет скамьи выше 1 и нет скамьи ниже 9.

Я не думаю, что vlookup является решением здесь. Не уверен, что MAX (ЕСЛИ ..) тоже может помочь. Какие формулы лучше всего получить, скажем, в строке 7, комбинация блоков равна 1,4. Рассматриваемый стенд равен 8. Таблица выше равна 1, а таблица ниже равна 9. Таким образом, для Col J и Col I выше потребуется 2 формулы.

Ожидаемый ответ для приведенных выше примеров данных :

 Row Col G    Col H   Col I   colJ        col K
1    Bench  Strip   Block   BenchAbove   BenchBelow
2    1       1       4      -             8 
3    1       1       5      -             8
4    1       1       6      -             8
5    1       1       7      -             8
6    1       1       8      -             8
7    8       1       4      1             9
8    8       1       5      1             9 
9    8       1       6      1             9
10   8       1       7      1             9
11   8       1       8      1             9
12   9       1       4      8             -
13   9       1       5      8             -
14   9       1       6      8             -
15   9       1       7      8             -
  

Комментарии:

1. Какую версию Excel вы используете?

2. Использование Excel 2016

Ответ №1:

Возможно, в J2 :

 =IFERROR(LOOKUP(2,1/((H$1:H1=H2)*(I$1:I1=I2)),G$1:G1),"-")
  

В K2 :

 =IFERROR(INDEX(G3:G$16,MATCH(1,INDEX((H3:H$16=H2)*(I3:I$16=I2),),0)),"-")
  

введите описание изображения здесь

Тем не менее, я нахожу ваш вопрос немного запутанным, поэтому этот ответ может быть немного неточным.

Комментарии:

1. Привет, спасибо за ответ, но он не сработал. Я обнаружил, что вы не используете Col H и Col I в своих формулах.. Возможно ли их включить? . Я ищу следующий (более высокий и более низкий) Col G для каждого набора I, J комбинаций. Например, (1,4) представляет собой комбинацию. В приведенных мною данных другими комбинациями могут быть (1,5), (1,6) и т. Д. У меня есть несколько других строк в реальных данных. Итак, если вы должны были отфильтровать в Excel для Col H = 1 и Col I = 4, вы получите в Col G следующие 1,8,9. Следовательно, позиция строки выше 8 равна 1, а ниже 8 — 9. Это не имеет отношения к 1 или -1. Спасибо

2. @Ranajit, я отредактировал свой ответ, поскольку теперь он немного понятнее. Посмотрите, работает ли это для вас.

3. Спасибо за отредактированный ответ, он отлично сработал. За исключением последней строки — но это нормально, я могу управлять этим вручную. Большое спасибо за вашу помощь

4. @Ranajit, видишь, как я в своем примере ссылался на строку 16 вместо 15 , чтобы заставить это работать? Кроме того, если он ответил на ваш вопрос, пожалуйста, примите ответ, нажав на галочку слева от ответа

Ответ №2:

Если у вас есть Office365 , то вы можете MAXIFS(), MINIFS() легко использовать, чтобы получить BenchAbove и. BenchBelow Попробуйте-

 =MAXIFS(A2:A15,B2:B15,B7,C2:C15,C7)
=MINIFS(A2:A15,B2:B15,B7,C2:C15,C7)
  

введите описание изображения здесь

РЕДАКТИРОВАТЬ: решение для Excel-2016

Попробуйте следующую формулу-

 =INDEX($A$2:$A$15,AGGREGATE(14,6,ROW($A$2:$A$15)-ROW($A$1)/(($B$2:$B$15=B7)*($C$2:$C$15=C7)),ROW(1:1)))
=INDEX($A$2:$A$15,AGGREGATE(15,6,ROW($A$2:$A$15)-ROW($A$1)/(($B$2:$B$15=B7)*($C$2:$C$15=C7)),ROW(1:1)))
  

введите описание изображения здесь

Комментарии:

1. Спасибо, Харун, за ваш быстрый ответ. Я в Excel 2016, попробовал формулы, но это не сработало, я получаю #NAME? . Есть ли эквивалент в Excel 2016

2. Спасибо, Харун, за измененный ответ. Извините, я не получаю желаемого ответа. Я попытался =INDEX($ G $ 2: $ G $ 30000, AGGREGATE(14,6, СТРОКА ($ G $ 2: $ G $ 30000) -СТРОКА ($ A $ 1)/(($ H $ 2: $ H $ 30000= H2)*($ I $ 2: $ I $ 30000 = I2)), СТРОКА (1: 1))) Мои данные для Bench — это столбец G, разделите на столбик H и заблокируйте на столбик I. Я правильно понял?

3. Извините, я, возможно, не уточнил это в вопросе, мне нужны BenchAbove и BenchBelow для каждой строки, а не только для строки 7. Только то, что для скамьи 1 скамьи выше нет, а для скамьи 9 — скамьи ниже нет

4. @Ranajit Просто настройте формулу следующим образом =INDEX($G$2:$G$30000,AGGREGATE(14,6,ROW($G$2:$G$30000)-ROW($A$1)/(($H$2:$H$30000=H2)*($I$2:$I$30000=I2)),ROW($1:$1)))

5. С этим изменением у меня есть все строки с одинаковым ответом или 9 и 1.