![Excel 中具有动态范围的 COUNTIF/COUNTA](https://linux22.com/image/1602474/Excel%20%E4%B8%AD%E5%85%B7%E6%9C%89%E5%8A%A8%E6%80%81%E8%8C%83%E5%9B%B4%E7%9A%84%20COUNTIF%2FCOUNTA.png)
现在我正在手动向公式中添加范围,我想看看是否可以添加到公式中以自动延伸到最后一个单元格而无需手动输入
列范围 =COUNTIF(D5:D273, "TRUE")/COUNTA(D5:D273)
行范围 =COUNTIF(D5:AM5, "TRUE")/COUNTA(D5:AM5)
当前公式将范围内符合“True”语句的所有单元格与范围内包含任何数据的所有单元格进行比较,并对该数据进行百分位数计算,以查看及格分数的平均值。
我在 Google 上搜索并找到了 OFFSET 语句以及 INDEX 语句,但它们似乎都不能满足我需要这些公式执行的操作
让公式自动映射到范围的末尾将非常节省时间,因为我只需要复制和粘贴,然后将自动填充拖动到范围下方,而无需手动抓住行或列的末尾。
这些值都是带有“TRUE”或“FALSE”的文本
我附上了一个非常小的样本,它看起来像什么
从 E 列开始的第 3 行是列公式的开始位置
从第 3 行开始的 D 列是行公式的开始位置
所示的图片是数据从我们的脚本中传输的方式,但不是 6 台机器而是 15,000 台,不是 3 个测试而是 400 个。
答案1
如果右侧和底部边框有一个空白单元格,则可以使用MATCH
and OFFSET
(或INDEX
)创建一个直到空白处的范围。
这是一个例子。该MATCH
函数在右侧搜索所有内容以查找第一个空白并返回索引 5。 OFFSET
返回最后一个非空白单元格。然后B7:OFFSET...
完成范围。
列平均值非常相似,只是OFFSET
函数中的偏移是行而不是列。例如对于 B2:
=COUNTIF(B3:OFFSET(B3,MATCH(TRUE,(B3:B1048576)=(""),0)-2,0), TRUE)/COUNTA(B3:OFFSET(B3,MATCH(TRUE,(B3:B1048576)=(""),0)-2,0))
答案2
我认为您需要做的就是让计算百分比的公式的范围变得非常大。
例如,平均分数的公式为
=COUNTIF(E3:XFD1048576, TRUE)/COUNTA(E3:XFD1048576)
因此,每当您在电子表格中添加行或列时,该公式都会将其提取出来。
答案3
在阅读有关 INDEX 或 OFFSET 的内容后,对我来说最简单的方法是仅使用特定列来计算数据(底部没有 SUM 或任何内容),然后仅使用具有完整范围的公式,例如 SUMIF(A:A,B:B,">0")。也许这会很有用