Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel-计算与特定条件匹配的特定范围内不同工作表中的项目数_Excel_Concatenation_Excel Indirect - Fatal编程技术网

Excel-计算与特定条件匹配的特定范围内不同工作表中的项目数

Excel-计算与特定条件匹配的特定范围内不同工作表中的项目数,excel,concatenation,excel-indirect,Excel,Concatenation,Excel Indirect,我已经建立了一个excel表格,用于查询数据集并生成一组度量。我的目标是使这个过程尽可能的扩展 在链接中是一个简单的模型数据集的图片,以说明我试图实现的目标,它包含一个指标表,我希望在其中显示信息和数据集表: 和 目的是使高亮显示的单元格(D6)显示“表2”中符合项目状态“打开”标准的项目数量 首先,我用以下公式处理了这一问题: COUNTIFS(Sheet2!C:C,"Open") 然后使用以下工具使其更具可扩展性: COUNTIFS(INDIRECT(" ' "&D4&

我已经建立了一个excel表格,用于查询数据集并生成一组度量。我的目标是使这个过程尽可能的扩展

在链接中是一个简单的模型数据集的图片,以说明我试图实现的目标,它包含一个指标表,我希望在其中显示信息和数据集表:

目的是使高亮显示的单元格(D6)显示“表2”中符合项目状态“打开”标准的项目数量

首先,我用以下公式处理了这一问题:

COUNTIFS(Sheet2!C:C,"Open")
然后使用以下工具使其更具可扩展性:

COUNTIFS(INDIRECT(" ' "&D4&" ' !C:C "),"=" &C8)
这意味着我可以使用单元格(D4)引用我要查看的工作表,使用单元格(C8)引用我要搜索的条件。在我需要查找数据集中的空格之前,这种方法一直很有效,此时它会统计指定列中的所有空格(请参见度量表中的单元格D8)

因此,我想知道是否有一种简洁的方法来指定要查看的列范围,例如C1:C100,方法是使用单元格引用范围,类似于使用单元格引用表和标准。我可以使用下面的公式,但它仍然要求将工作表名称写入公式rater,而不是引用到单元格中

COUNTIF((Sheet2!C1:INDIRECT(CONCATENATE("Sheet2!C", B2))),""&C8)
当我把它应用到我所看到的数据集时,我需要考虑多个数据集,其中数据集将包含相同的标准(位于同一列上的所有表),但是数据集的长度将有所不同。这就是为什么我希望将引用变量的单元格公式保留到度量表中的特定单元格中,这样,如果我添加了我想要查看的新数据集或标准,我就不必重新键入公式,只需将其复制到其他单元格中即可

更新


根据JvdV的回答,我已经能够将公式中的所有变量删除到度量表中的单元格中(对我正在做的工作很有用,其他人可能会感兴趣)。它基本上使用“间接”和“CONCAT”函数来构建所需的字符串,

以下是一些您可以尝试满足您需要的内容:

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

=COUNTBLANK(INDIRECT(G1&"C1:C"&COUNTA(INDIRECT(G1&"A:A"))))
单元格
G1
只是一个列表,如下所示:

如果您不希望所有行都已使用,而是使用单元格中指定的范围
B2
,那么我猜它将如下所示:

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

当心;使用
INDIRECT()

以下是一些您可以尝试满足您需要的内容:

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

=COUNTBLANK(INDIRECT(G1&"C1:C"&COUNTA(INDIRECT(G1&"A:A"))))
单元格
G1
只是一个列表,如下所示:

如果您不希望所有行都已使用,而是使用单元格中指定的范围
B2
,那么我猜它将如下所示:

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

当心;使用
INDIRECT()

是的,这些都奏效了,我也尝试过将公式中的所有变量(例如,它的C列)删除到单元格外,然后可以像列表中的一样更改这些单元格,这很有效。如果这有效并解决了您的问题,那么请标记为已回答!是的,这些都有效,我也尝试过从公式中删除所有变量(例如,它的C列)到单元格外,然后可以像列表中那样更改,这很有效。如果这有效并解决了您的问题,请标记为已回答!有一个