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中的值。
尝试
- 在列A中select一个值
- 在列C中匹配此值
- 根据列C中的值,从D复制数据。
-
将数据粘贴到列B.
=IF(ISERROR(MATCH(A1,$C$1:$C$,)),ERROR,VLOOKUP(A1,$C$1:$D$7,2))
当我使用这个代码时,D列中的错误值被拉下来。 B4和B5只应该从D4提取值。 仅来自D5的B6和B7。
有什么build议么?
你的公式中有三个问题:
- 第一个查找范围是不完整的
$C$1:$C$
,应该是$C$1:$C$7
。 - 您没有使用匹配types,额外的逗号会导致错误。
- 您没有指定查找是完全匹配还是近似匹配。 默认情况下,
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列中的不正确的值被拉出吗?
它看起来不像是在你的例子中引起问题,但你可能想指定在查找时需要完全匹配。 您可以通过向MATCH
和VLOOKUP
公式添加“,0”来完成此操作。 喜欢这个:
=IF(ISERROR(MATCH(A1,$C$1:$C$7,0)),"ERROR",VLOOKUP(A1,$C$1:$D$7,2,0))
编辑:此外,我认为“错误”应引号,因为它似乎你想公式打印出来的消息。 (请注意,如果没有完全匹配的要求,原来的公式不会返回这个错误,它会find下一个最接近的结果。)