【问题标题】:Excel - Counting no of items in a different sheet between a certain range matching specific criteriaExcel - 在与特定条件匹配的特定范围内计算不同工作表中的项目数
【发布时间】: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


    【解决方案1】:

    您可以尝试以下方法来满足您的需求:

    我在F1 中使用的公式将转换为:

    =COUNTBLANK(INDIRECT(G1&"C1:C"&COUNTA(INDIRECT(G1&"A:A"))))
    

    单元格G1 只是一个类似的列表:

    如果您不想使用所有已使用的行,而是使用单元格 B2 中指定的范围,那么我猜它看起来像:

    =COUNTBLANK(INDIRECT(G1&"C1:C"&B2))
    

    小心;使用INDIRECT() 会导致您的公式不稳定!

    【讨论】:

    • 是的,那些工作,我也尝试从公式中删除所有变量(例如,它的列 C)到外面的单元格中,然后可以像你在列表中所做的那样进行更改,这也有效
    • 如果这有效并解决了您的问题,请标记为已回答!有一个here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    • 2017-10-15
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多