Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 2003:将A列中的值与B列中的值匹配,然后从B列中提取数据_Excel_Excel Formula_Excel 2003_Vlookup - Fatal编程技术网

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

Excel 2003:将A列中的值与B列中的值匹配,然后从B列中提取数据,excel,excel-formula,excel-2003,vlookup,Excel,Excel Formula,Excel 2003,Vlookup,我正在尝试用Excel2003编写一个公式 情况: 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 ≥ 9

我正在尝试用Excel2003编写一个公式

情况:

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列中的值来替换B列中的值

尝试

  • 在a列中选择一个值
  • 匹配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


    有什么建议吗?

    我测试了你的配方,效果很好。我只将
    $C$1:$C$,
    替换为
    $C$1:$C$7,
    (您觉得这样行吗?)

    我猜您在工作表中使用了正确的公式,而这只是一个输入错误,因为在尝试输入错误的公式时会出现错误


    如果这个假设是正确的,并且错误在其他地方,您能指定从D列中提取了哪些不正确的值吗?

    我测试了您的公式,它是有效的。我只将
    $C$1:$C$,
    替换为
    $C$1:$C$7,
    (您觉得这样行吗?)

    我猜您在工作表中使用了正确的公式,而这只是一个输入错误,因为在尝试输入错误的公式时会出现错误


    如果这个假设是正确的,并且错误在其他地方,您可以指定从列D中提取哪些不正确的值吗?

    在您的示例中,这看起来并不会导致问题,但您可能希望指定在查找时需要精确匹配。您可以通过向
    匹配
    VLOOKUP
    公式添加“、0”来完成此操作。像这样:

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

    编辑:另外,我认为“ERROR”应该用引号括起来,因为您似乎希望公式将其作为消息打印出来。(请注意,如果没有精确匹配要求,原始公式将不会返回此错误,它将找到下一个最接近的结果。)

    在您的示例中,这似乎不会导致问题,但您可能希望指定在查找时需要精确匹配。您可以通过向
    匹配
    VLOOKUP
    公式添加“、0”来完成此操作。像这样:

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

    编辑:另外,我认为“ERROR”应该用引号括起来,因为您似乎希望公式将其作为消息打印出来。(请注意,如果没有精确匹配要求,原始公式不会返回此错误,它会找到下一个最接近的结果。)

    您的公式中有三个问题:

  • 第一个查找范围不完整
    $C$1:$C$
    ,应该是
    $C$1:$C$7
  • 您没有使用匹配类型,多余的逗号将留下错误
  • 您没有指定查找是完全匹配还是近似匹配。默认情况下,
    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
    ,如果它返回
    \N/A
    IFERROR
    将返回
    “错误”
    。否则,它将返回您从
    VLOOKUP
    中查找的值


    由于Excel不必先检查
    匹配项
    ,然后计算
    VLOOKUP
    ,公式中有三个问题,因此它还可以加快速度:

  • 第一个查找范围不完整
    $C$1:$C$
    ,应该是
    $C$1:$C$7
  • 您没有使用匹配类型,多余的逗号将留下错误
  • 您没有指定查找是完全匹配还是近似匹配。默认情况下,
    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
    ,如果它返回
    \N/A
    IFERROR
    将返回
    “错误”
    。否则,它将返回您从
    VLOOKUP
    中查找的值


    它还可以加快速度,因为Excel不必首先检查
    匹配项
    ,然后评估
    VLOOKUP

    您是否发现发布的内容有用?您是否发现发布的内容有用?