You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在LibreOffice中按Subject分组统计Foo列非空单元格数量?

在LibreOffice Calc中按Subject分组统计Foo列非空单元格数量

你提到COUNTIF没法满足带非空条件的分组统计,确实,COUNTIF只能处理单条件,而我们需要同时满足「Subject匹配」和「Foo非空」两个条件,下面给你两种简单可行的实现方法:

一、公式法:使用SUMPRODUCT函数

SUMPRODUCT可以组合多条件实现分组统计,正好适配你的需求。假设你的数据位于A列(Subject)和B列(Foo),表头在第1行,数据行是第2到第6行:

  1. 先在空白列(比如D列)手动列出所有需要统计的Subject值:subject_1subject_2subject_3
  2. 在D2对应的E2单元格输入公式:
=SUMPRODUCT((A$2:A$6=D2)*(B$2:B$6<>""))
  1. 下拉填充公式到E4,就能得到你想要的统计结果:
    • subject_1对应结果2
    • subject_2对应结果1
    • subject_3对应结果0

公式逻辑解释:

  • (A$2:A$6=D2):生成布尔数组,A列中与当前D列Subject匹配的位置为TRUE(等价于1),不匹配为FALSE(等价于0)
  • (B$2:B$6<>""):生成布尔数组,B列非空单元格为TRUE(等价于1),空单元格为FALSE(等价于0)
  • SUMPRODUCT会将两个数组对应位置的值相乘,再求和,最终得到同时满足两个条件的单元格总数

二、数据透视表法(适合大量数据,操作更直观)

如果你的数据量较大,用数据透视表会更高效,步骤如下:

  1. 选中整个数据区域(包含表头A1:B6)
  2. 点击顶部菜单栏的数据数据透视表创建...
  3. 在弹出的对话框中确认数据区域正确,选择数据透视表的放置位置(比如新工作表或当前工作表空白处),点击确定
  4. 在右侧「数据透视表字段」面板中:
    • Subject字段拖到区域
    • Foo字段拖到区域
  5. 修改值字段的统计规则:
    • 点击值区域的求和项:Foo,选择修改...
    • 在对话框中,将「函数」改为计数,勾选「忽略空值」,点击确定
  6. (可选)如果空分组显示为空白而非0:右键点击数值区域 → 格式单元格 → 选择「数字」分类,在「空值显示」处输入0,点击确定

完成后数据透视表会自动输出你期望的结果:

subject_1 2
subject_2 1
subject_3 0

内容的提问来源于stack exchange,提问作者user2261062

火山引擎 最新活动