如何在 Excel 数组公式中使用 INDIRECT?

How do I use INDIRECT inside an Excel array formula?

情况

问题

以下公式 return 是对在“Foo”上预订的小时数的所有正确引用,到目前为止一切正常。

=IF(Planning!$D:$CV="Foo";ADDRESS(ROW(Planning!$D:$CV);COLUMN(Planning!$D:$CV)+1;;;"Planning"))

{"Planning!$E"\FALSE\FALSE\FALSE\FALSE\"Planning!$J"}

但是,如果我使用 INDIRECT 函数检索这些引用的值,它们总是 return 数组中第一个引用的值(“Planning!$E$11”)

=IF(Planning!$D:$CV="Foo";INDIRECT(ADDRESS(ROW(Planning!$D:$CV);COLUMN(Planning!$D:$CV)+1;;;"Planning")))

{8\FALSE\FALSE\FALSE\FALSE}

如何检索正确的值?或者我应该以完全不同的方式解决这个问题?

截图

由于我主要对计划的总小时数感兴趣,所以最终使用了以下公式:

=SUM(SUM(INDIRECT(IF(Planning!$D:$CV="Foo";(ADDRESS(ROW(Planning!$D:$CV);COLUMN(Planning!$D:$CV)+1;;;"Planning"));"$U"))))

  1. IF:如果找到字符串,则创建包含对 Planning sheet 的引用的数组。如果找不到,请添加参考 $U$19.
  2. 使用 INDIRECT,将所有引用替换为规划 sheet 中的值。 $U$19 包含值 0.
  3. 然后使用 SUM 两次求和所有值。我不知道为什么,但看到