在问题标题中很难解释。我有一个多页Excel文件,我需要查看。Sheet1
具有我正在寻找的值,sheet2
具有我想要找到它们的位置。
在sheet1
我Service Code
列中有E
,Unit 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 Codes
:Unit 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)
但它并没有得到我所需要的东西。
答案 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数。