Excel: формула, которая возвращает с 1 по 4 наиболее распространенную цену - PullRequest
0 голосов
/ 18 октября 2018

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

City,           Purchases,     Price  
New York City,      10,         $6  
Boston,             8,          $8  
Chicago,            12,         $6  
Boston,             7,          $9  
New York City,      9,          $5  
New York City,     16,         $3  
Houston,            4,          $12  

Так, например, мне нужны три формулы Excel, чтобы вернуть мне наибольшее количество покупок в Нью-Йорке по цене 3 доллара, второе - по 6 долларов итретий самый был на 5 долларов.Мне нужно то же самое для Бостона, Чикаго и Хьюстона, когда Excel признает, что для Бостона не существует 3-го лучшего и ничего кроме первого лучшего для Чикаго и Хьюстон.Никогда не будет случаев, когда цена будет одинаковой для одного и того же города.Я смог получить наибольшее количество покупок по этой формуле: =MAX(IF((A:A="New York City"),C:C)), однако я не уверен, как использовать аналогичную формулу, чтобы получить возможную вторую и третью наибольшую цену.

Любая помощь или мыслис благодарностью!

Обновление

Спасибо вам обоим за ваши ответы, они были высоко оценены и, безусловно, помогут решить эту проблему.Я также получил формулу ниже с другого форума.Сортировка не требуется для этой формулы, и я незнаком с IFNA, поэтому я решил использовать эту формулу, но, поскольку это формула массива, вы должны нажать ctrl + shift + enter для ее правильной работы.

ОБНОВЛЕНИЕ

Я столкнулся с проблемой, когда формула последних обновлений не работает должным образом, если в одном и том же городе совершено одинаковое количество покупок по разным ценам.Приведенная ниже формула решает эту проблему.

{= Индекс (C: C, MATCH (БОЛЬШОЙ (ЕСЛИ (A: A = «Нью-Йорк Сити»), B: B + C: C * 0,000000001), 1), IF (A: A = «Нью-Йорк», B: B + C: C * 0,000000001), 0))}

Ответы [ 2 ]

0 голосов
/ 18 октября 2018

Введите следующую формулу массива в E2: E4 (выберите этот диапазон и нажмите Ctrl + Shift + Enter, затем перетащите), как показано на изображении ниже.(Текст на E1 - «Нью-Йорк», что не очевидно из-за усечения.)

=IFNA(INDEX($C$2:$C$8,MATCH(LARGE(IF($A$2:$A$8=E$1,$B$2:$B$8,0),ROW()-1),$B$2:$B$8,0)),"")

enter image description here

Объяснение:

  • IFNA меняет значение на пустое, если найдено меньше ROW()-1
  • LARGE(r, n) возвращает n-е по величине значение в пределах r
  • MATCH возвратовпозиция в диапазоне результата, заданного LARGE
  • INDEX, возвращает значение, соответствующее MATCH в диапазоне "Price"

Редактировать: Попытка изображениячтобы ответить на неправильный вопрос - он показывает количество покупок по самой высокой цене, а не наоборот.Я обновил формулу выше, чтобы обеспечить правильный результат.

0 голосов
/ 18 октября 2018

Изменить: Этот ответ возвращает наибольшее количество покупок, но не цены на эти наиболее распространенные покупки, как того требовал заказчик.

LARGE предназначен для части того, что вы ищете,поэтому следующая задача может быть просто сопоставить и создать массив для больших.Следующее требует, чтобы столбец City сортировался в порядке возрастания, в зависимости от того, как настроена формула MATCH, но должен помочь вам в этом.

Я решил это, начав с LARGE и используя дваФормулы INDEX-MATCH для создания массива больших размеров и вставки их в матрицу городов по сравнению с индексами "наибольшего числа".

=LARGE(INDEX($B$1:$B$8,MATCH($A13,$A$1:$A$8,0)):INDEX($B$1:$B$8,MATCH($A13,$A$1:$A$8,1)),B$12)

Я поместил это в таблицу, где у меня был уникальныйгорода в диапазоне A (начиная с $ A13) и порядковый номер для формулы LARGE в строке «12», начиная с B $ 12.В итоге у меня была матрица городов и 1-й, 2-й и 3-й наибольшие цены продажи.

A     B     C     D
      1     2     3
B    f(x)  f(x)  f(x)
C    f(x)  f(x)  f(x)
H    f(x)  f(x)  f(x)
NYC  f(x)  f(x)  f(x)

Формула вернет #NUM!если у вас недостаточно данных (например, формула LARGE не вернет что-либо действительное, если вы запросите 3-е место по величине, но у вас есть только 2 фрагмента данных).

enter image description here

...