google-sheets - 使用 FILTER 在 COUNTA 上错误返回 1

标签 google-sheets

我正在尝试制作一张表来计算数据实例的数量,并且某些响应将被分组在一起。我在正确提出这三个公式时遇到问题。以下是我的最佳猜测以及一些英语,以帮助阐明我想要完成的任务。

//Count all cells that are Warrior or Paladin [Always returns 1, and not zero]
=COUNTA(FILTER(I:I, OR(I:I="Warrior", I:I="Paladin")))

//Count all cells that are Scholar or White Mage [Always returns 1, and not zero]
=COUNTA(FILTER(I:I, OR(I:I="Scholar", I:I="White Mage")))

//Count all cells that are do not all within the first sets of requirements [Always returns 1, not 2]
=COUNTA(FILTER(I:I, NOT(OR(I:I="Warrior", I:I="Paladin", I:I="Scholar", I:I="White Mage"))))

这两个单元分别是武僧和召唤师。任何帮助将不胜感激

编辑:Here是一个示例电子表格。

最佳答案

至少有两个问题:

  1. OR 不能在数组表达式中迭代数组;您将需要使用 + 操作数。

  2. 如果没有输出,FILTER 将返回 #N/A,并且 COUNTA 会将此错误值计为 1。因此,当预期为 0 时,您将得到 1;使用 IFERROR 来解释这一点。

=COUNTA(IFERROR(FILTER(I:I,(I:I="Warrior")+(I:I="Paladin"))))

=COUNTA(IFERROR(FILTER(I:I,(I:I="Scholar")+(I:I="White Mage"))))

=COUNTA(IFERROR(FILTER(I:I,I:I<>"Warrior",I:I<>"Paladin",I:I<>"Scholar",I:I<>"White Mage")))

第一个和第三个公式的替代方案更容易扩展:

=COUNTA(IFERROR(FILTER(I:I,MATCH(I:I,{"Warrior";"Paladin"},0))))

=COUNTA(IFERROR(FILTER(I:I,ISERROR(MATCH(I:I,{"Warrior";"Paladin";"Scholar";"White Mage"},0)))))

关于google-sheets - 使用 FILTER 在 COUNTA 上错误返回 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25256247/

相关文章:

javascript - Google 表格中的列数? VBA 为例

javascript - 谷歌应用脚​​本: Copy cell value to another sheet with condition to copy and position the value

google-sheets - Google 表格字符排序顺序

pdf - 在 Apps 脚本中将 Google 表格转换为 PDF 格式时文件大小会增加

excel - google sheet COUNTIF 范围包含一个字符串(使用单元格引用定义)

google-sheets - 如何获取 Google 电子表格中 2 个命名范围之间交集的单元格值

google-apps-script - HTML 服务在 V8 运行时不打开侧边栏

google-sheets - 如何将具有固定值的列添加到导入的数据Google电子表格

arrays - Google 工作表命名范围多列

javascript - 需要将 HTML 值从 Google 表格导入到 Google WebApp