在EXCEL数据阵列中输出2个最低值

时间:2017-06-01 14:57:00

标签: excel

我有大约40K行的文件,显示公司,部件号和价格。以下示例。

Company PART NUMBER PRICE
COMPANY14   4063-16082-3     $4,350.00 
COMPANY51   4063-16082-3     $3,481.00 
COMPANY11   321-400-703-0    $3,275.00 
COMPANY11   4063-16082-3     $3,200.00 
COMPANY11   283200-1005  $3,200.00 
COMPANY42   321-400-703-0    $2,800.00 
COMPANY4    4063-16082-3     $2,750.00 
COMPANY4    283200-1005  $2,750.00 
COMPANY35   283200-1005  $2,495.00 
COMPANY59   283200-1005  $2,250.00 
COMPANY24   4063-16082-3     $1,800.00 
COMPANY64   321-400-703-0    $1,145.00 
COMPANY8    4063-16082-3     $1,000.00 
COMPANY60   321-400-703-0    $1,000.00 
COMPANY60   283200-1005  $1,000.00 
COMPANY63   283200-1005  $325.00 

我需要为每个零件编号和相应的公司获得2个最低价格值。这是我需要的或类似的东西。

PART NUMBER Company PRICE
283200-1005 COMPANY63   325
283200-1005 COMPANY60   1000
321-400-703-0   COMPANY60   1000
321-400-703-0   COMPANY64   1145
4063-16082-3    COMPANY8    1000
4063-16082-3    COMPANY24   1800

我做了一个Pivot并在枢轴中使用了MIN函数,但不知道如何获得上面格式的两个最低值。这是我使用的枢轴图。

enter image description here

1 个答案:

答案 0 :(得分:0)

公式解决方案

假设Sheet2是源数据,并且目标数据在A列中具有部件号,B中的Comapny和C中的价格。

C2:
=AGGREGATE(15, 6, Sheet2!$C$2:$C$17/(Sheet2!$B$2:$B$17=Sheet4!A2), 1)

C3:
=AGGREGATE(15, 6, Sheet2!$C$2:$C$17/(Sheet2!$B$2:$B$17=Sheet4!A2), 2)

B2: (array formula: Ctrl+Shift+Enter)
=INDEX(Sheet2!$A$2:$A$17,MATCH(1,(Sheet2!$B$2:$B$17=Sheet4!A2)*((Sheet2!$C$2:$C$17=C2))))

您可以复制B2并粘贴。对于C列,请同时复制C2 and C3,然后在C列中粘贴。