Excel - 无法在数组中查找文本并从下面的单元格返回值

时间:2018-04-04 15:40:12

标签: indexing excel-formula match vlookup

欢迎所有Excel大师: - )

我正在尝试查找文本并从下面的单元格返回值,但匹配始终返回#N/A

我在单元格F2中的表单“Skript01”上 我想把表格“Prehled testu”单元格L6放在那里。 我需要每次都动态找到它,即使行或列发生变化,所以我不能使用任何确切的行或列号。

在单元格F2中的“Skript01”中有一个公式,它找到工作表的名称,然后在工作表“Prehled testu”上找到它,然后从第12列重新获得值。如果有一些错误,则返回0。 / p>

=IF(ISERR(INDEX('Prehled testu'!A:N;MATCH(MID(CELL("filename";A1);FIND("]";CELL("filename";A1))+1;255);'Prehled testu'!A:A;0);12));0;INDEX('Prehled testu'!A:N;MATCH(MID(CELL("filename";A1);FIND("]";CELL("filename";A1))+1;255);'Prehled testu'!A:A;0);12))

请您帮助我动态决定“%otestováno”(现在是第12列)的列号,并将其与我的公式一起使用?然后我会将它复制到其他工作表(Skript02,03 ...)并且它必须工作 - 找到与所选工作表相邻的正确值。

链接到文件: http://r-man.cz/Download/02%20Random/TeT_sablona.zip

谢谢。

2 个答案:

答案 0 :(得分:1)

跟进Chronocidals回答:

=IFERROR(INDEX('Prehled testu'!A:N;MATCH(MID(CELL("filename";A1);FIND("]";CELL("filename";A1))+1;255);'Prehled testu'!A:A;0);MATCH("% otestováno";INDIRECT((CONCATENATE("'Prehled testu'!";(MATCH(C2;'Prehled testu'!A:A;0)-1);":";(MATCH(C2;'Prehled testu'!A:A;0)-1))));0));0)

这比我预期的要困难,但它应该按照你的意愿工作。只有这个公式的要求是脚本表中的表的“Název”应该与“Prehled testu”表中的表的标题相匹配。

答案 1 :(得分:0)

  1. 有一个 differenceISERRISERROR之间 - 差异在于ISERR(#NA) = FALSE,但ISERROR(#NA) = TRUE
  2. 您可以大大简化您的代码使用 IFERRORIFERROR(A,B)与撰写IF(ISERROR(A),B,A)
  3. 相同

    ,并提供:

    =IFERROR(INDEX('Prehled testu'!A:N;MATCH(MID(CELL("filename";A1);FIND("]";CELL("filename";A1))+1;255);'Prehled testu'!A:A;0);12);0)