Как получить самые высокие значения из 2 столбцов в Excel?

У меня есть программное обеспечение для проектирования, которое извлекает данные в формат листа Excel. Вывод разделен на 2 столбца, каждый из которых имеет более 1000 строк. Чтобы использовать эти данные, мне нужно суммировать их максимум до 5 самых высоких значений из обоих двух столбцов. Следовательно, это не означает, что это максимум одного столбца и соответствующего ему значения, но это может означать, что второе по величине значение столбца 1 и четвертое по величине значение столбца 2.

Например (если мы процитировали некоторые из выходных данных):

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

Я должен выбрать следующие значения:

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

Если есть какой-либо способ добиться этого, это будет здорово.

Спасибо ..

пример файла: http://goo.gl/UIEFEv

пример файла 2: http://goo.gl/VSvuVf


person user3151946    schedule 22.12.2014    source источник
comment
используйте max () для каждого столбца, а затем vlookup, чтобы получить соответствующее значение из другого столбца   -  person user3616725    schedule 22.12.2014
comment
максимальное значение каждого столбца не означает, что это максимальное значение из другого столбца, поэтому это не сработает.   -  person user3151946    schedule 22.12.2014
comment
Рассматривали ли вы использование сводной таблицы и устанавливали ли фильтр по вершине x (x = любое значение, которое вы хотите). Это отобразит верхние значения и скроет для вас остальные.   -  person Petay87    schedule 22.12.2014
comment
используйте формулу vlookup с формулой rank (). Я думаю, что как бы вы ни поступили, вам все равно нужно будет использовать формулу массива   -  person SierraOscar    schedule 22.12.2014
comment
Петай: я пробовал сводные таблицы, но не смог сопоставить с ними 5 лучших результатов   -  person user3151946    schedule 22.12.2014
comment
S O: Я не понимаю, что ты имеешь в виду под формулой ранга   -  person user3151946    schedule 22.12.2014


Ответы (2)


Вот формула решения. Я использовал 20 строк и извлек строки, которые содержат 5 верхних строк для каждого столбца - вы можете расширить до необходимого количества строк.

С данными в A1: B20 используйте эту формулу в D1, подтвержденную с помощью CTRL + SHIFT + ENTER и скопируйте в E1 и вниз по обоим столбцам:

=IFERROR(INDEX(A$1:A$20,SMALL(IF(($A$1:$A$20>=LARGE($A$1:$A$20,5))+($B$1:$B$20>=LARGE($B$1:$B$20,5)),ROW(A$1:A$20)-ROW(A$1)+1),ROWS(D$1:D1))),"")

Примечание: извлечено только восемь строк, потому что некоторые из них содержат значения из первых 5 для обоих столбцов. Я добавил выделение в столбцы A и B, чтобы более четко проиллюстрировать

см. снимок экрана ниже

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

Изменить:

Из комментариев ниже кажется, что вам нужна комбинация строк, которые содержат наибольшее значение для этого столбца .... и строк, содержащих наибольшее общее для обоих столбцов.

В исходной формуле есть два условия, соединенные знаком «+», т. Е.

($A$1:$A$20>=LARGE($A$1:$A$20,5))+($B$1:$B$20>=LARGE($B$1:$B$20,5)

Знак "+" дает вам функциональность типа "OR", например в этом случае строки включаются, если отдельные значения находятся в первых 5 в этом конкретном столбце. Вы можете добавить другие условия, поэтому, если вы хотите также добавить любые строки, которые находятся в первой пятерке с учетом суммы обоих столбцов, вы можете добавить еще одно «предложение», т. Е.

($ A $ 1: $ A $ 20> = БОЛЬШОЙ ($ A $ 1: $ A $ 20,5)) + ($ B $ 1: $ B $ 20> = БОЛЬШОЙ ($ B $ 1: $ B $ 20,5) + ($ A $ 1: $ A $ 20 + $ B $ 1: $ B $ 20> = БОЛЬШОЙ ($ A $ 1: $ A $ 20 + $ B $ 1: $ B $ 20,5))

.... и включив это в полную формулу, вы получите эту версию:

=IFERROR(INDEX(A$1:A$20,SMALL(IF(($A$1:$A$20>=LARGE($A$1:$A$20,5))+($B$1:$B$20>=LARGE($B$1:$B$20,5))+($A$1:$A$20+$B$1:$B$20>=LARGE($A$1:$A$20+$B$1:$B$20,5)),ROW(A$1:A$20)-ROW(A$1)+1),ROWS(D$1:D1))),"")

Вы можете дополнительно уточнить это, используя комбинации + и * (для AND), например для нового условия вы можете захотеть включить только строки с итогом в первых 5, если одно из отдельных значений находится в первых 10 для этого столбца ...

Пояснение:

Вышеупомянутая часть показывает, как вы можете использовать + для условий OR. В формуле, если эти условия равны TRUE, тогда функция IF возвращает «относительный номер строки» диапазона (с использованием ROW(A$1:A$20)-ROW(A$1)+1).

Затем функция SMALL извлекает k-е наименьшее значение, k определяется ROWS (D $ 1: D1), которое начинается с 1 в D1 (или E1) и увеличивается на 1 в каждой строке.

INDEX затем берет фактическое значение из этой строки.

Когда у вас закончатся подходящие строки SMALL функция вернет #NUM! ошибку, которая IFERROR здесь преобразуется в пустую

person barry houdini    schedule 22.12.2014
comment
Большое спасибо .., он отлично работает, но не могли бы вы объяснить уравнение подробнее, потому что я запутался во второй строке - person user3151946; 22.12.2014
comment
Я тестировал его в другом примере, но произошла ошибка, он получил критические значения, но, во-первых, был один с высокими значениями в обоих столбцах, но не максимум в любом из них, поэтому он был пропущен, так есть ли способ чтобы пережить это .. - person user3151946; 22.12.2014
comment
@ user3151946 Я добавлю пояснения к своему ответу. Я не могу воссоздать вашу ошибку - вы можете привести точный пример? Как вы можете видеть из моего примера, формула должна успешно подбирать строки, в которых в обоих столбцах есть пять верхних значений. - person barry houdini; 22.12.2014
comment
пожалуйста, проверьте пример 2, обновленный выше, результаты справа, не включают критическое значение № 2930, пожалуйста, проверьте - person user3151946; 22.12.2014
comment
Если вы перетащите формулу еще на несколько строк, вы увидите 11 строк, заполненных для этого примера (их 6 для столбца A, потому что 5-е место занимает ничья). Результаты такие, как я ожидал, возможно, я не совсем понял требование. Под номером 2930 вы имеете в виду строку 2930? Я не понимаю, почему эта строка должна быть включена - person barry houdini; 22.12.2014
comment
да, я имел в виду строку № 2930, результаты в ней 446 для столбца A и 410 для столбца B, которые являются более высокими значениями и не включены в результаты справа - person user3151946; 22.12.2014
comment
Хорошо, я думал, что идея состоит в том, чтобы выбрать строки с 5 наивысшими (отдельными) значениями в каждом столбце - A2930 - это 213-е по величине значение в столбце A, а B2930 - это 342-е по величине значение в столбце B, поэтому ни одно из них не соответствует моим критериям - не является это сумма значений, даже если A2930 + B2930 является только 11-й по величине суммой, должна ли быть включена строка 2929, которая на самом деле является самой высокой совокупной суммой любой из строк? - person barry houdini; 22.12.2014
comment
Хорошо, но сейчас я не понимаю критериев включения. В исходном примере вы включили строку со 100, предположительно потому, что 100 является наибольшим значением в столбце A, но общая сумма этой строки составляет всего 456, поэтому она не будет включена, если критерием была строка total . Вы говорите, что хотите отображать строки с наибольшими одиночными значениями в столбце , а также строки, которые при суммировании находятся в первых n строках. Если да, сколько каждого? какие строки вы бы включили в пример 2? - person barry houdini; 22.12.2014
comment
извините за мой поздний ответ, да, это то, что я имел в виду, мне нужно получить строки с наивысшими значениями отдельно или в целом, как я описал перед значениями в строках № 2929 и 2930 высоки, но он не получил этого, ошибка, которую я не могу исключить, заключается в том, что если у нас есть столбец a, скажем, имеет значение 20,001, и его соответствующее значение составляет 0,001, а другое значение в столбце a равно всего 20, и это соответствует 5, Excel выберет 20,001, где 2-й случай более важен, я понимаю это математически, но я не знаю, как преодолеть это в Excel. , thnx 4 ur усилия - person user3151946; 23.12.2014
comment
Хорошо, формулу можно изменить, чтобы получить комбинацию строк с наивысшими отдельными значениями .... и строк с самыми высокими объединенными итогами - я редактировал свои ответ, чтобы показать, как это можно сделать, а также добавлены некоторые пояснения к формулам - person barry houdini; 23.12.2014
comment
Большое спасибо за ваше время и ваше объяснение .., теперь он работает хорошо - person user3151946; 23.12.2014

Вопрос немного неясен, но если вы имеете в виду получение 5 самых высоких значений в столбце A и их соответствующих значений в столбце B, затем пять самых высоких значений в столбце B и соответствующие значения в столбце A, тогда (неавтоматизированное) решение довольно просто.

  1. Щелкните ячейку с заголовком в ней.
  2. Нажмите «Данные» в верхнем меню.
  3. Нажмите «Фильтр» в разделе «Сортировка и фильтр».
  4. Нажмите кнопку в столбце A - выберите «Сортировать от наибольшего к наименьшему».
  5. Возьмите пять верхних значений из обоих столбцов, затем нажмите кнопку в столбце B и повторите.
person John Dirk Morrison    schedule 22.12.2014
comment
Этот способ будет работать, только если у меня мало выходных данных, но представьте, что я говорю о более чем 1000 выходных данных 7, я должен повторять это много раз, поэтому, если каждый раз, когда я повторяю эти шаги, это займет слишком много времени, чего я хочу это своего рода совпадение между двумя столбцами для проверки максимального значения в первом столбце, если соответствующее значение высокое, тогда хорошо, если нет, тогда возьмите второе значение и проверьте его соответствующее и так далее ... - person user3151946; 22.12.2014
comment
Попробуйте, я использую такие инструменты для просмотра файлов длиной в сотни тысяч строк. Если набор данных ДЕЙСТВИТЕЛЬНО большой, вам следует подумать об управлении им в базе данных, а не в Excel. Если вы говорите о множестве экземпляров 1000 строк информации, нам, вероятно, понадобится дополнительная информация о том, как это структурировано. - person John Dirk Morrison; 22.12.2014
comment
пожалуйста, сначала проверьте обновленный ответ выше, я уже пробовал его, но будет очень беспокойно повторять его каждый раз, и также это рассчитано на мои наблюдения за значениями, которые я могу ошибаться в течение некоторого времени из-за большей части данных. - person user3151946; 22.12.2014
comment
пример файла прикреплен - person user3151946; 22.12.2014