excel - 如何在 Excel 数组公式中使用 INDIRECT?
问题描述
情况
- 在“计划”表中,我有一个区域,其中包含相邻单元格中的成对会话(字符串)和小时数(数字)(例如 D11 和 E11、I12 和 J12 等)。一个会话可以发生多次。
- D11:E11 是 | 福 | 8 |
- I12:J12 是 | 福 | 4 |
- 在另一张表中,我想在计划表中找到一个会话并返回一个数组,其中包含该会话中预订的所有小时数(计算总数)
- 我使用带条件的数组公式,并打算使用 SMALL 函数从数组中检索结果
问题
以下公式返回对“Foo”预订小时数的所有正确引用,到目前为止一切都很好。
=IF(计划!$D$11:$CV$18="Foo";ADDRESS(行(计划!$D$11:$CV$18);COLUMN(计划!$D$11:$CV$18)+1;;;"规划”))
{"Planning!$E$11"\FALSE\FALSE\FALSE\FALSE\"Planning!$J$12"}
但是,如果我使用 INDIRECT 函数来检索这些引用的值,它们总是返回数组中第一个引用的值(“Planning!$E$11”)
=IF(计划!$D$11:$CV$18="Foo";INDIRECT(地址(行(计划!$D$11:$CV$18);列(计划!$D$11:$CV$18)+1;; ;“规划”)))
{8\FALSE\FALSE\FALSE\FALSE\8}
如何检索正确的值?还是我应该以完全不同的方式解决这个问题?
截图
解决方案
由于我主要对计划的总小时数感兴趣,因此我最终使用了以下公式:
=SUM(SUM(INDIRECT(IF(Planning!$D$11:$CV$18="Foo";(ADDRESS(ROW(Planning!$D$11:$CV$18);COLUMN(Planning!$D$11:$CV$18) )+1;;;"计划"));"$19"))))
- IF:如果找到字符串,则使用对规划表的引用创建数组。如果未找到,请添加参考 $U$19。
- 使用 INDIRECT,将所有引用替换为规划表中的值。$U$19 包含值 0。
- 然后使用 SUM 两次对所有值求和。不知道为什么,但是看看
推荐阅读
- c# - 强制转换为 C# 中的两种类型之一
- python - 控制台关闭时的python执行函数
- ssl - Openssl:我在 1.0.2 和 1.1.1 中使用相同的 TLS 和 CipherSuite,但它们的行为不同
- python - 如何获取表格的 TFIDF
- java - 当涉及类型参数时,为什么 Java 无法找出一些明显的非法转换?
- python - TypeError: 'int' object is not callable - 在一种情况下接受为列表,但在另一种情况下接受为 int
- python-3.x - 如何在 GET 请求中返回 json 响应?
- kubernetes - 不允许 Gitlab 部署到 Kubernetes 命名空间
- extendscript - 如何在扩展脚本中使用#include 和面板类型窗口?
- sql - 如何根据条件仅从该表中选择唯一值?