Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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 对未排序的列表使用MATCH()函数_Excel_Excel Formula_Worksheet Function_Array Formulas_Excel Match - Fatal编程技术网

Excel 对未排序的列表使用MATCH()函数

Excel 对未排序的列表使用MATCH()函数,excel,excel-formula,worksheet-function,array-formulas,excel-match,Excel,Excel Formula,Worksheet Function,Array Formulas,Excel Match,我对使用MATCH()函数的电子表格公式有问题 =IFERROR(IF(LENB(Y2461)<> 0, "Complete", IF(LENB(Q2461)<> 0, IF(Q2461-$Y$1<MATCH($Y$1,R2461:X2461),"ON HOLD"), INDEX($R$4:$X$5,1,MATCH($Y$1,R2461:X2461)))),"ON HOLD") =IFERROR(IF(LENB(Y2461)0,“Complete”,IF(LENB

我对使用MATCH()函数的电子表格公式有问题

=IFERROR(IF(LENB(Y2461)<> 0, "Complete", IF(LENB(Q2461)<> 0, IF(Q2461-$Y$1<MATCH($Y$1,R2461:X2461),"ON HOLD"), INDEX($R$4:$X$5,1,MATCH($Y$1,R2461:X2461)))),"ON HOLD")

=IFERROR(IF(LENB(Y2461)0,“Complete”,IF(LENB(Q2461)0,IF(Q2461-$Y$1在语法
匹配(lookup\u value,lookup\u array,[match\u type])中省略[match\u type]可能会在lookup\u数组未排序时导致意外结果


在语法
匹配(查找值、查找数组、[match类型])中省略[match类型]
可能会在查找数组未排序时导致意外结果


在使用时,不使用第三个参数进行匹配与使用1进行匹配相同,或者使用TRUE作为第三个参数,这意味着,如果使用的范围(R2461:X2461)始终按升序排列,则只能保证它可以正常工作……但您说情况并非如此,因此我认为您不能保证公式可以工作

尝试改用此版本[根据评论进行修订]


=IFERROR(IF(LENB(Y2461)0,“完成”,IF(LENB(Q2461)0,IF(Q2461-$Y$1<匹配(最大(R2461:X2461使用时不使用第三个参数进行匹配与使用1进行匹配相同,或者使用TRUE作为第三个参数,这意味着,如果使用的范围(R2461:X2461)始终为升序,则只能保证它可以正常工作……但您说情况并非如此,因此我认为您不能保证公式可以工作

尝试改用此版本[根据评论进行修订]


=IFERROR(IF(LENB(Y2461)0,“完成”,IF(LENB(Q2461)0,IF(Q2461-$Y$1<匹配(最大(R2461:X2461您应该在上提问。StackOverFlow是程序员的问答网站,以及与编程相关的问题。您应该在上提问。StackOverFlow是程序员的问答网站,以及与编程相关的问题。我在具有问题,结果有点奇怪。您提供的第一个解决方案替换了“暂停”的异常日期与索引中其他日期之间的比较,将结束值设置为“暂停”尽管该单元格中没有任何内容。公式的第二次迭代将其设置为范围内最早的日期,这也不起作用。将单元格引用替换为Y1(今天的日期)的原因是什么对于TRUE?抱歉,你是对的-我的版本给出了第一个值的位置,如果可能的话,它应该是从右到左读取的最大值。例如:A列有10/8,B列有10/10,C列有10/9,D列有10/10;应该返回D列作为匹配项。到目前为止,两个相同日期的每个其他实例都匹配它的读取它是从右到左的,但由于某些情况我不理解,它很少会遵循这条规则。更奇怪的是,昨天有问题的行今天没有问题。这是一个共享文件,我宁愿避免使用VBA宏来编码此解决方案,因为它会获得大量的流量,如果可能的话s仍然返回“暂停”在Q列中没有任何内容,这意味着它应该在某个地方生成错误。但是,我发现了错误的再现。并非所有列中都有值,当输入的日期等于今天的日期,并且它们之间至少有一个空列时,第一个日期从左到右等于今天的读数.IE:A列有10月8日,B列有10月11日,C列为空,D列有10月11日。这返回B列。在我看来,我在写这篇文章时犯了一个错误,认为它会继续使用空空格,是吗?我在有问题的特定单元格中尝试了这两个公式,结果有点奇怪。你提出的第一个解决方案是vided替换“暂停”的例外日期与索引中其他日期之间的比较,将结束值设置为“暂停”尽管该单元格中没有任何内容。公式的第二次迭代将其设置为范围内最早的日期,这也不起作用。将单元格引用替换为Y1(今天的日期)的原因是什么对于TRUE?抱歉,你是对的-我的版本给出了第一个值的位置,如果可能的话,它应该是从右到左读取的最大值。例如:A列有10/8,B列有10/10,C列有10/9,D列有10/10;应该返回D列作为匹配项。到目前为止,两个相同日期的每个其他实例都匹配它的读取它是从右到左的,但由于某些情况我不理解,它很少会遵循这条规则。更奇怪的是,昨天有问题的行今天没有问题。这是一个共享文件,我宁愿避免使用VBA宏来编码此解决方案,因为它会获得大量的流量,如果可能的话s仍然返回“暂停”在Q列中没有任何内容,这意味着它应该在某个地方生成错误。但是,我发现了错误的再现。并非所有列中都有值,当输入的日期等于今天的日期,并且它们之间至少有一个空列时,第一个日期从左到右等于今天的读数.IE:A列有10月8日,B列有10月11日,C列为空,D列有10月11日。这返回了B列。在我看来,我写这篇文章时犯了一个错误,认为它将继续使用空空格,是吗?