具有非连续范围的 Excel INDIRECT() ...仅适用于 COUNTIF()?

标签 excel

我需要使用 Excel Indirect() 函数来引用非连续范围。这个( How to define a non continuous range in COUNTIF )答案给出了一个例子。

总之,OP 有两个范围,C1:C15 和 A16。每个范围包含一个 A 或一个 B,计算这两个范围内 B 的数量的方法是

=SUM(COUNTIF(INDIRECT({"C1:C15","A16"}),"B"))

如果我将所有 B 更改为 1,将 A 更改为 0,并将此公式稍微更改为
=SUM(COUNTIF(INDIRECT({"C1:C15","A16"}),"1"))

然后这仍然有效......但是!这不会:
=SUM(INDIRECT({"C1:C15","A16"}))

我可以解决这个问题,但是我是否错过了关于 COUNTIF() 函数的一些基本魔力,它以某种方式影响 INDIRECT() 函数按预期运行?

最佳答案

不能在 COUNTIF 中使用非连续范围.

第一个公式实际发生的情况是 COUNTIF正在输入一个(两个)单独范围的数组,因此结果是两个计数结果的数组,然后 SUM用于对数组求和。

如果你真的有 1 和 0,你不会用这个公式对它们求和吗
=SUM(C1:C15,A16)
如果您只是想找出最后一个公式不起作用的原因,是的,我认为 COUNTIF工作方式不同——它能够处理范围数组,而其他一些函数则不能。这在“IFS”函数族中很常见,所以 SUMIF ,例如,可以做同样的事情

关于具有非连续范围的 Excel INDIRECT() ...仅适用于 COUNTIF()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28044588/

相关文章:

vba - 使用VBA将Excel中两个单元格中的文本合并为一个

java - 无法使用 JXL 写入 Excel 文档 ("Sheet name too long - truncating")

vba - Excel - VBA : does Worksheet. Range.Delete 有列数限制吗?

excel - excel中某些文本的条件数据输入

基于另一个下拉菜单的 Excel 下拉菜单

excel - Matlab - ActiveX 移动 Excel 工作表

excel - 如何从数据集中删除价格异常值,使其不影响平均价格

arrays - 如何在 VBA 中一次为数组的某些元素分配相同的值?

python - 使用 xlwt 与 openpyxl

vba - Sheet.Activate 更改工作表,但继续编辑上一张工作表上的数据