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

Google Sheets中两个QUERY查询结果相除仅返回单个值的问题求助

Google Sheets 逐列计算两类工人占比问题解决

问题原因

直接将两个返回单行多列的QUERY结果相除时,Google Sheets仅会计算第一列的对应值,不会自动遍历所有列完成除法运算。

解决方案

方法1:用ARRAYFORMULA触发逐列计算

在原表达式外层包裹ARRAYFORMULA,让除法操作作用于两个数组的每一对对应单元格:

=ARRAYFORMULA(
  QUERY(QUERY(Sheet1!$A$1:$M,"select SUM(J)*4 where A like '"&C2&"' and B like '1' pivot D",0), "select * offset 1",0)
  /
  QUERY(QUERY(Sheet1!$A$1:$M,"select SUM(J)*4 where A like '"&C2&"' pivot D",0), "select * offset 1",0)
)

方法2:简化QUERY嵌套结构(更高效)

将两类工人的求和结果放在同一个QUERY中,直接计算占比,减少嵌套层级:

=ARRAYFORMULA(
  QUERY(
    QUERY(Sheet1!$A$1:$M,
      "select D, SUM(J)*4 where A like '"&C2&"' group by D pivot B",
      0
    ),
    "select Col2/Col3 offset 1",
    0
  )
)

注:这里Col2对应B='1'的时长总和,Col3对应所有工人的时长总和,需根据你的B列实际取值调整列索引。

处理分母为0的错误

如果某列分母为0,会返回#DIV/0!,可通过IFERROR替换为指定值(比如0):

=ARRAYFORMULA(
  IFERROR(
    QUERY(QUERY(Sheet1!$A$1:$M,"select SUM(J)*4 where A like '"&C2&"' and B like '1' pivot D",0), "select * offset 1",0)
    /
    QUERY(QUERY(Sheet1!$A$1:$M,"select SUM(J)*4 where A like '"&C2&"' pivot D",0), "select * offset 1",0),
    0
  )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 02:45:37