【问题标题】:Using MATCH to build cell range returns #VALUE使用 MATCH 构建单元格范围返回 #VALUE
【发布时间】:2015-12-22 10:17:56
【问题描述】:

我有一个公式,它使用 LARGE 函数找到 10 个最高值,并设置了单元格范围。 SALESNew 是 52 周的数字,第 k 大值是 SALES Summ $C...

=LARGE('2015SALESNew'!$D$250:$BC$250,'SALES Summ'!$C6)

我需要扩展它以根据产品范围动态选择 SALESNew 上的行。我尝试了各种构建单元格区域的方法,所有这些方法在单独使用时都会返回正确的结果,但是如果我在 LARGE 公式中使用它,则会返回 #VALUE。

以下示例:

=LARGE(("'2015SALESNew'!$D$"&G43&":$BC$"&G43),'SALES Summ'!$C43)

$G43 contains =MATCH($A38,'2015SALESNew'!A:A,0)

我在下面尝试过的 3 种方法都返回正确的范围

    ('2015SALESNew'!$D$255:$BC$255) but the formula result is always #VALUE.

="'2015SALESNew'!$D$"&G43&":$BC$"&G43
="'2015SALESNew'!$D$"&MATCH($A38,'2015SALESNew'!A:A,0)&":$BC$"&MATCH($A38,'2015SALESNew'!A:A,0)
=CONCATENATE("'2015SALESNew'!$D$",MATCH($A38,'2015SALESNew'!A:A,0),":$BC$",MATCH($A38,'2015SALESNew'!A:A,0))

单元格范围没有被正确读取,我错过了什么?

【问题讨论】:

  • 首先,您能否将您的公式格式化为代码,以便于阅读。只需在它们前面放 4 个空格。
  • 其次,为什么你的公式中有双引号( " )?我认为你应该删除它们,因为你现在表明一些参考是文本,而不是参考。
  • @Luuklag - 我需要使用双引号来构建单元格范围。我还通过查看我过去使用过的其他公式回答了我自己的问题 - 用 INDIRECT 包装公式可以解决问题。

标签: excel match


【解决方案1】:

我发现构建动态范围参考的最佳方法是使用INDEX 函数。正如帮助文件所说 - 索引(参考形式)返回特定行和列交叉处的单元格的引用。

因此,例如,=INDEX($J:$J,5) 将在 $J:$J 范围内的第 5 行的交点处返回一个引用 - 即 $J$5。
在此公式中添加另一个索引,例如 $N:$N 范围内第 10 行的交集,并且您有一个引用的单元格范围:=INDEX($J:$J,5):INDEX($N:$N,10)
通过 Evaluate Formula 运行它,它会显示范围 $J$5:$N$10 - 将其包装在 SUM 函数中,它将将该范围内的所有值相加。

现在让它动态化 - 公式 COUNTA($N:$N) 将计算 N 列中所有非空的单元格。如果您在 N 列中没有空格,这将有效地为您提供包含 N 列中数据的最后一行。
所以现在我们可以重写公式来读取=$J$5:INDEX($N:$N,COUNTA($N:$N))。 我已将 J5 更改为一个常数 - 如果它不会更改也可以 - 并且第二次引用包含 N 列中的数据的最后一个单元格(假设 N 列中没有空格)。现在在我的示例中引用 J5:N10。
将其包装在 LARGE 函数 =LARGE($J$5:INDEX($N:$N,COUNTA($N:$N)),3) 中,它会显示我范围内的第三大数字。

编辑: 作为一个额外的好处,INDEX 函数是非易失性的,而类似的 OFFSET 函数和 INDIRECT 函数是易失性的 - 每当您计算时都会产生开销。 http://www.decisionmodels.com/calcsecretsi.htm

波动函数是导致公式重新计算的函数 每次 Excel 重新计算时它所在的单元格。出现这种情况 不管之前的数据和公式是否 公式取决于已更改,或者公式是否还包含 非易失性函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-30
    • 2013-07-14
    相关资源
    最近更新 更多