Excel索引匹配小 – 公式只能在手动模式下工作

我正在尝试为我的需要调整公式,但由于某种原因,我似乎只能在手动计算模式下才能使其工作。 如果select自动模式,则公式在每一行都返回0。

在本质上,公式是在表格DIL-2018-08-14的列H中匹配基于列I中的蓝色关键字的所有匹配。它们都只在手动模式下工作良好,并且仅在每个单元格手动重新计算之后才起作用。

有人可以build议,如果有避免这种情况,并使其在自动模式下也wortk。

公式是:

=IFERROR(INDEX('DIL-2018-08-14'!$H$9:$H$502,SMALL(IF(ISNUMBER(SEARCH(LEFT(I8,FIND(" ",I8)-1),'DIL-2018-08-14'!$H$9:$H$502)),ROW('DIL-2018-08-14'!$H$9:$H$502)-ROW('DIL-2018-08-14'!$H$9)+1),COUNTIF($J$7:J8,"*"&LEFT(I8,FIND(" ",I8)-1)&"*")+1)),"") 

在这里输入图像说明

以下是自行修复的步骤:

  • 将整个公式更改为硬编码值,如下所示:

=IFERROR(INDEX('DIL-2018-08-14'!$H$9:$H$502,1,1),"")

  • 检查它是否工作。

  • 开始重build公式直到失败,用较less的硬编码值构build一步一步的解决scheme。

  • 看看它失败的地方。
  • 想想一个解决scheme。

我最终钉了它! 这是任何人需要它的工作公式。 我用静态列I中的蓝色关键字发生的SUMreplace了COUNTIF,这是为每个新关键字重新设置计数器。

 =IFERROR(INDEX(DIL!$H$9:$H$503,SMALL(IF(ISNUMBER(SEARCH(LEFT(I8,FIND(" ",I8)-1),DIL!$H$9:$H$503)),ROW(DIL!$H$9:$H$503)-ROW(DIL!$H$9)+1),SUM(--(ISNUMBER(SEARCH(LEFT(I8,FIND(" ",I8)-1),$I$6:I8)))))),"")