在列中查找匹配值,然后在行

时间:2017-03-14 14:13:31

标签: excel excel-formula

在问题标题中很难解释。我有一个多页Excel文件,我需要查看。Sheet1具有我正在寻找的值,sheet2具有我想要找到它们的位置。

sheet1Service Code列中有EUnit Cost列有J

然后在sheet2上,我在列Service Code中列出了A个列表,其中的相应价格列在D:N列中。

我需要找到Service Code然后返回匹配的Unit Cost(如果有的话)。如果没有匹配的Unit Cost,我需要知道查找Unit Cost的.01内是否有Unit Cost

Sheet1示例

Contract Numner         Revision    Service Code        Unit Cost
441-01568221-BKT        0           RD190A              2.04
441-01568221-BKT        0           PLA10A              156.44
441-01568221-BKT        0           PL156A              312.89
441-01568221-BKT        0           RD190C              2.16

Sheet2示例

Service Code    CT01    CT02    CT03    CT04    CT05    CT06    CT07    CT08    CT09    CT10    CT11
RD185C          $2.10   $2.10   $2.40   $2.30   $2.00   $2.00   $2.00   $2.00   $2.00   $2.00   $2.00
RD190A          $2.05   $2.05   $2.34   $2.24   $1.95   $1.95   $1.95   $1.95   $1.95   $1.95   $1.95
RD190B          $1.94   $1.94   $2.22   $2.13   $1.85   $1.85   $1.85   $1.85   $1.85   $1.85   $1.85
RD190C          $1.89   $1.89   $2.16   $2.07   $1.80   $1.80   $1.80   $1.80   $1.80   $1.80   $1.80

所以在这个例子中,我将我的公式放在O列中,并希望它为Service Code RD190A显示没有完全匹配,但CT01关闭了.01。并且显示对于Service Code RD190C,CT03中存在完全匹配。

我尝试过的是:

=INDEX(Sheet2!D2:N2497,MATCH(E5909,Sheet2!A2:A2497,0),MATCH(J5909,"sheet2!$d$"&MATCH(E5909,Sheet2!A2:A2497,0)&":$N$"&MATCH(E5909,Sheet2!A2:A2497,0)),0)

它返回错误说:

  

公式中使用的值是错误的数据类型

sheet1上有超过12000个Service CodesUnit Cost对,在sheet2上只有2500个唯一Service Codes

修改

我尝试将此添加到公式

=INDIRECT("'Sheet2'!$D$"&MATCH(E5909,Sheet2!A2:A2497,0)&":$N$"&MATCH(E5909,Sheet2!A2:A2497,0),"")

但它不起作用。我可以让这个工作:

=INDIRECT("'Sheet2'!$d$"&MATCH(E5909,Sheet2!A2:A2497,0)&"",TRUE)

但它并没有得到我所需要的东西。

1 个答案:

答案 0 :(得分:2)

要获得ABS最小差异,

=AGGREGATE(15, 6, ABS(J2-INDEX(Sheet11!D:N, MATCH(E2, Sheet11!A:A, 0), 0)), 1)

获得RD190A的CT-01和RD190C的CT-03,

=INDEX(Sheet11!$1:$1, AGGREGATE(15, 6, COLUMN(D:N)/(ABS(J2-INDEX(Sheet11!D:N, MATCH(E2, Sheet11!A:A, 0), 0))=AGGREGATE(15, 6, ABS(J2-INDEX(Sheet11!D:N, MATCH(E2, Sheet11!A:A, 0), 0)), 1)), 1))

首先获得最小的ABS(即绝对值)定价差异。接下来在类似的包装函数中使用该图来检索CT-xx数。

enter image description here