【发布时间】:2019-03-20 13:31:25
【问题描述】:
我一直在构建一个 Excel 表来查询数据集并生成一组指标。我的目标是使流程尽可能地可扩展。
在链接中是一个简单的模拟数据集的图片来说明我想要实现的目标,它包含一个指标表,我想在其中显示信息和数据集表:
和
目的是让突出显示的单元格 (D6) 显示“Sheet2”中满足项目状态“打开”标准的项目数。
我一开始是用这个公式来解决这个问题的:
COUNTIFS(Sheet2!C:C,"Open")
然后使用以下方法使其更具可扩展性:
COUNTIFS(INDIRECT(" ' "&D4&" ' !C:C "),"=" &C8)
这意味着我可以使用一个单元格 (D4) 来引用我想要查看的工作表,并使用一个单元格 (C8) 来引用我想要搜索的条件。这很有效,直到我需要在数据集中查找空白,此时它计算指定列中的所有空白(请参阅指标表中的单元格 D8)。
所以我想知道是否有一种简洁的方法来指定要查看的列范围,例如 C1:C100,通过使用单元格来引用类似于使用单元格来引用工作表和条件的范围。我可以使用下面的公式,但它仍然需要将工作表名称写入公式评估器,而不是引用单元格。
COUNTIF((Sheet2!C1:INDIRECT(CONCATENATE("Sheet2!C", B2))),""&C8)
当我将此应用于我正在查看的数据集时,我将需要考虑多个工作表,其中数据集将包含相同的标准(位于所有工作表的同一列中)但数据集的长度会有所不同.这就是为什么我想将引用变量的单元格公式保留到指标表中的特定单元格,这样如果我添加了一个新的数据集或我想查看的标准,我就不必重新输入大量公式,但只需将其复制。
更新
根据 JvdV 的回答,我已经能够将公式中的所有变量删除到指标表中的单元格中(这对我正在做的事情很有用,并且其他人可能会感兴趣)。它本质上使用 'INDIRECT' 和 'CONCAT' 函数来构建所需的字符串,colour coded picture
【问题讨论】:
标签: excel concatenation excel-indirect