Excel 2003:将列A中的值与列B中的值匹配,然后从列B中提取数据

我正在尝试在Excel 2003中编写一个公式。

情况:

列A对应于列B.列C对应于列D.列A中有多个行与列C中的单个行匹配

Column A Column B Column C Column D 1 1247 ≥ 98.5% 1247 ≥ 98.5% 2 1250 ≥ 99.9% 1250 ≥ 99.9% 3 1258 ≥ 99.9% 1258 ≥ 99.9% 4 1341 ≥ 99% 1341 ≥ 98% 5 1341 ≥ 99% 1349 ≥ 99% 6 1349 ≥ 60% 1376 ≥ 99% 7 1349 ≥ 60% 1644 ≥ 60% 

问题

我需要列D中的值来replace列B中的值。

尝试

  1. 在列A中select一个值
  2. 在列C中匹配此值
  3. 根据列C中的值,从D复制数据。
  4. 将数据粘贴到列B.

      =IF(ISERROR(MATCH(A1,$C$1:$C$,)),ERROR,VLOOKUP(A1,$C$1:$D$7,2)) 

当我使用这个代码时,D列中的错误值被拉下来。 B4和B5只应该从D4提取值。 仅来自D5的B6和B7。

有什么build议么?

你的公式中有三个问题:

  1. 第一个查找范围是不完整的$C$1:$C$ ,应该是$C$1:$C$7
  2. 您没有使用匹配types,额外的逗号会导致错误。
  3. 您没有指定查找是完全匹配还是近似匹配。 默认情况下, VLOOKUP使用近似匹配,这就是为什么你得到错误的结果。

以下内容应按照您的意图进行操作:

 =IF(ISERROR(MATCH(A1,$C$1:$C$7,0)),ERROR,VLOOKUP(A1,$C$1:$D$7,2,0)) 

但是,您可以使用IFERROR缩短公式:

 =IFERROR(VLOOKUP(A1, $C:$D, 2, 0), "Error") 

如果你不得不查看大量的值,反正需要花费很多时间,所以我删除了行限制。 IFERROR将尝试首先评估VLOOKUP ,如果它返回IFERROR #N/A ,则IFERROR将返回"Error" 。 否则,它会从VLOOKUP你正在寻找的值。

它也应该加快一点,因为Excel不必首先检查MATCH ,然后评估VLOOKUP

我testing了你的公式,它的工作原理。 我只换了$C$1:$C$, $C$1:$C$7, (这样看起来好吗?)

在这里输入图像说明

我猜你在工作表中使用了正确的公式,而这里只是一个错字,因为在input错误的公式时会popup一个错误。

如果这个假设是正确的,并且错误是在别的地方,你能指定D列中的不正确的值被拉出吗?

它看起来不像是在你的例子中引起问题,但你可能想指定在查找时需要完全匹配。 您可以通过向MATCHVLOOKUP公式添加“,0”来完成此操作。 喜欢这个:

 =IF(ISERROR(MATCH(A1,$C$1:$C$7,0)),"ERROR",VLOOKUP(A1,$C$1:$D$7,2,0)) 

编辑:此外,我认为“错误”应引号,因为它似乎你想公式打印出来的消息。 (请注意,如果没有完全匹配的要求,原来的公式不会返回这个错误,它会find下一个最接近的结果。)