You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在指定列匹配动态值时统计两列中至少一列非空的行数?

问题

需要统计满足以下条件的行数:同一行中指定列包含特定字符串,且另外两列中至少有一列非空。

输入数据(Table1)

| Got   | Location |   Name   |   Coords 1   |   Coords 2   |
| TRUE  |  Fridge  |   Milk   |              | (5341, 3258) |
| FALSE |  Fridge  |    Egg   |              |              |
| FALSE |  Fridge  |   Bread  | (5356, 3128) |              |
| TRUE  |  Fridge  |  Cheese  |              |              |

理想输出(Table2)

| Location | Total Got | Total There | Total With Coords |
|  Fridge  |    2      |     4       |        2          |

其中「Total With Coords」为2,因为有两行的Coords 1或Coords 2非空。

已实现用=COUNTIFS(Table1!A:A, true,Table1!B:B,A2)统计已取走的物品数量,但尝试=COUNTIFS(Table1!D:D, <>"",Table1!B:B,A2)等公式统计非空行失败;=DCOUNTA、=QUERY等函数也无法实现需求;=ARRAYFORMULA(SUM(N(REGEXMATCH(Table1!D2:D, " "))))能统计单列非空数,但不知如何扩展至多列和添加位置条件。

解决方案

针对「Total With Coords」的统计需求,推荐以下几种可行公式:

方法1:数组公式直接统计

在Table2对应单元格(如C2)输入:

=ARRAYFORMULA(SUM(N((Table1!B:B=A2)*(Table1!D:D<>""+Table1!E:E<>""))))

逻辑说明:

  • Table1!B:B=A2:筛选出与当前位置(A2)匹配的行
  • Table1!D:D<>""+Table1!E:E<>"":用逻辑或判断,只要Coords 1或Coords 2非空就返回1
  • 两者相乘后,仅同时满足位置匹配、至少一列非空的行会被计数,最终用SUM累加总数

方法2:辅助列+COUNTIFS统计

若觉得数组公式复杂,可先添加辅助列(如Table1的F列),在F2输入:

=IF(OR(D2<>"",E2<>""),1,0)

下拉填充后,再用COUNTIFS统计:

=COUNTIFS(Table1!B:B,A2,Table1!F:F,1)

方法3:QUERY函数精准统计

修正QUERY的用法即可实现多条件统计,输入:

=QUERY(Table1!A:E,"SELECT COUNT(A) WHERE B='"&A2&"' AND (D<>'' OR E<>'') LABEL COUNT(A) ''",0)

逻辑说明:

  • WHERE B='"&A2&"':匹配指定的Location
  • AND (D<>'' OR E<>''):要求Coords 1或Coords 2非空
  • COUNT(A)统计符合条件的行数,LABEL COUNT(A) ''用于去掉默认生成的表头

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 16:03:21