Excel-对符合特定条件的某个范围之间的不同工作表中的项目不进行计数

时间:2019-03-20 13:31:26

标签: excel concatenation excel-indirect

我一直在建立一个Excel工作表来询问数据集并产生一组度量。我的目标是使过程尽可能扩展。

链接中有一个简单的模拟数据集的图片,用于说明我要实现的目标,其中包含一个指标表(我要在其中显示信息)和数据集表:

Metrics Sheet (Sheet1)

Data Set Sheet (Sheet2)

目的是使突出显示的单元格(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)

将其应用于要查看的数据集时,我将需要考虑多个工作表,其中数据集将包含相同的条件(位于所有工作表的同一列中),但数据集的长度会有所不同。这就是为什么我想保留引用变量的单元格公式到指标表中的特定单元格的原因,这样,如果我添加一个新的数据集或要查看的条件,就不必重新键入大量的公式,但只需复制即可。

UPDATE

按照JvdV的回答,我已经能够将公式中的所有变量都删除到指标表的单元格中(对我正在做的事情有用,并且可能对其他人很感兴趣)。它本质上使用'INDIRECT'和'CONCAT'函数来构建所需的字符串colour coded picture

1 个答案:

答案 0 :(得分:0)

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

enter image description here

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

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

单元格G1只是一个列表,如:

enter image description here

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

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

当心;使用INDIRECT()会使您的公式变得不稳定!