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 的数组。以下要求根据 MATCH 公式的设置方式对城市列进行升序排序,但这应该有助于您顺利进行。
我解决了这个问题,方法是从 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 个最高价格显示购买计数,而不是相反。我已经更新了上面的公式以提供正确的结果。
我花了很多时间试图找到一种方法来 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 的数组。以下要求根据 MATCH 公式的设置方式对城市列进行升序排序,但这应该有助于您顺利进行。
我解决了这个问题,方法是从 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
returnsLARGE
给出的结果范围内的位置
INDEX
returns "Price"范围内MATCH
对应的值
编辑:图像试图回答错误的问题 - 它根据第 n 个最高价格显示购买计数,而不是相反。我已经更新了上面的公式以提供正确的结果。