【发布时间】:2017-11-07 14:12:53
【问题描述】:
概述:我正在尝试将 INDIRECT 与 INDEX、ROW 和 COLUMN 结合使用来使动态表正常工作。
问题:
- 对于 Worksheet1 中给定列的每个单元格,读取其左侧单元格的内容。
- 将 Worksheet2 中的一列内容与读取的内容进行比较。
- 对于每个匹配项,从 Worksheet2 中获取一个变量的值。
- 评估找到值的最大值,将其复制到 Worksheet1 原始单元格中。
我是怎么做的(显然错了):
{=MAX(IF('Worksheet 2'!$A$4:$A$101=INDIRECT(ADDRESS(ROW();COLUMN()-1;4)); 'Worksheet 2'!$D$4:$D$101))}
我希望它做什么:
INDIRECT(ADDRESS(ROW();COLUMN()-1;4))--- 读取工作表 1 左侧单元格的内容'Worksheet 2'!$A$4:$A$101=INDIRECT(ADDRESS(ROW();COLUMN()-1;4))--- 获取一个 TRUE/FALSE 值的数组,其中 TRUE 是在 Worksheet 2 列 A 包含的值之前找到的lIF('Worksheet 2'!$A$4:$A$101=INDIRECT(ADDRESS(ROW();COLUMN()-1;4)); 'Worksheet 2'!$D$4:$D$101)--- 对于每个 TRUE,从 Worksheet 2 的 COLUMN D 中提取相应的值{=MAX(IF('Worksheet 2'!$A$4:$A$101=INDIRECT(ADDRESS(ROW();COLUMN()-1;4)); 'Worksheet 2'!$D$4:$D$101))}--- 从 COLUMN D 提取的值中,取 MAX
我得到了什么:#VALUE!错误。
有人可以解释一下原因并提出可行的替代方案吗?
【问题讨论】:
-
公式的编写方式,看起来
INDIRECT有第二个参数'Worksheet 2'!$D$4:$D$101。这是一个错误吗?您的公式中可能缺少右括号。 -
@ImaginaryHuman072889 - 括号在翻译中丢失了,我刚刚更正了 - 不幸的是这不是问题,但感谢让我注意到
标签: excel excel-formula array-formulas excel-indirect