Excel:returns 第 1 到第 4 最常见价格的公式

Excel: Formula that returns 1st through 4th most common price

我花了很多时间试图找到一种方法来 return 每个城市购买最多的价格。请参阅下面的模拟工作簿:

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

因此,例如,我需要三个 excel 公式来 return 对我来说,纽约市的最大购买量是 3 美元的价格,第二多的是 6 美元,第三多的是5 美元。对于波士顿、芝加哥和休斯顿,我需要同样的东西,Excel 认识到波士顿没有第三大,芝加哥和休斯顿没有第一大。绝不会出现同城同价的情况。我能够使用此公式获得最大数量的购买:=MAX(IF((A:A="New York City"),C:C)),但是,我不确定如何使用与此类似的公式来获得可能的第二和第三大价格。

任何帮助或想法将不胜感激!

更新

感谢两位的回答,非常感谢他们,肯定会帮助解决这个问题。我还从另一个论坛收到了下面的公式。这个公式不需要排序,我对 IFNA 不熟悉,这就是我选择使用这个公式的原因,但是因为它是一个数组公式,你必须点击 ctrl + shift + enter 才能正常工作。

更新

我 运行 遇到了一个问题,如果同一个城市以不同的价格购买了相同数量的商品,则最后更新公式无法正常工作。下面发布的公式解决了这个问题。

{=Index(C:C, MATCH(LARGE(IF(A:A=“纽约市”,B:B+C:C*0,000000001), 1),IF(A:A =“纽约市”,B:B+C:C*0,000000001),0))}

编辑:这个答案 return 是最大的购买数量,但不是请求者正在寻找的那些最常见购买的价格。

LARGE 专为您正在寻找的部分内容而设计,因此下一个任务可能只是匹配和创建 large 的数组。以下要求根据 MA​​TCH 公式的设置方式对城市列进行升序排序,但这应该有助于您顺利进行。

我解决了这个问题,方法是从 LARGE 开始,使用两个 INDEX-MATCH 公式为 large 创建一个数组,然后将公式复制粘贴到城市与 "largest number" 索引的矩阵中。

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

我把它放在 table 中,其中我有 A 范围内的独特城市(从 $A13 开始),“12”行中 LARGE 公式的索引号从 B$12 开始.我最终得到了一个城市矩阵以及第一、第二和第三大销售价格。

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)

公式将return#NUM!如果您没有足够的数据(例如,如果您要求第三大,但您只有 2 条数据,LARGE 公式将 return 无效。

将以下数组公式输入 E2:E4(select 该范围并按 Ctrl+Shift+Enter,然后拖动),如下图所示。 (E1中的文字是"New York City",由于截断,不明显。)

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

解释:

  • IFNA 将值更改为空白,其中发现少于 ROW()-1
  • LARGE(r, n) returns r
  • 中的第 n 个最大值
  • MATCH returns LARGE
  • 给出的结果范围内的位置
  • INDEX returns "Price"范围内MATCH对应的值

编辑:图像试图回答错误的问题 - 它根据第 n 个最高价格显示购买计数,而不是相反。我已经更新了上面的公式以提供正确的结果。