arrays - 如何为 Google 表格中的每一行重复查询单独的数据集?
问题描述
我在 Google 表格中有以下简单数据,我想自动扩展结果的query
结果。
在 G3 中,我有:
=product(QUERY(A3:C, "Select C where B='Z' and A<date'"&TEXT(F3,"yyyy-mm-dd")&"' "))
它返回 F1 之前日期的 C 列中数字的乘积,其中 B 是“Z”(2*5=10)。出于某种原因,当我在 H3 中使用数组公式时,这不会扩展到所有 F 列:
=arrayformula(product(QUERY(A3:C, "Select C where B='Z' and A<date'"&TEXT(F3:F,"yyyy-mm-dd")&"' ")))
似乎仅编辑查询以包含F3:F
范围而不是单个F3
单元格是不够的。那么有什么解决方案或解决方法吗?
解决方案
产品很像 MAX 和 MIN,它在全局范围内处理一个范围或数组,而 AFAIK 你不能让它一次处理一个行。
这是另一种方法的第一次切割,对于固定范围并假设 C 列中没有零:
=ArrayFormula(10^mmult((F3:F12>transpose(A3:A6))*(transpose(B3:B6)="Z"),log10(C3:C6)))
编辑
这是使用间接变量范围的公式:
=ArrayFormula(10^mmult((indirect("F3:F"&count(F:F)+2)>transpose(indirect("A3:A"&count(A:A)+2)))*(transpose(indirect("B3:B"&count(A:A)+2))="Z"),log10(indirect("C3:C"&count(A:A)+2))))
编辑 2
对于 C 列中可能有零的情况,这是一种可能的解决方法。零并不会真正与日志混合,但您可以通过添加一个大的负指数来解决它:
=ArrayFormula(10^mmult((indirect("F3:F"&count(F:F)+2)>transpose(indirect("A3:A"&count(A:A)+2)))*(transpose(indirect("B3:B"&count(A:A)+2))="Z"),log10(indirect("C3:C"&count(A:A)+2)+1E-99)))
推荐阅读
- javascript - React 17:代码执行两次的问题
- javascript - NodeJS Node-Fetch Call Stripe 中的 JSON 错误
- sql - SCD 类型 2 - 处理日内变化?
- python - 从雪花中获取数据
- hadoop - hdfs-site.xml 环境变量
- nginx - NGINX 只允许来自某个域和某个 IP(同时)
- c# - 将 1 种测试方法关联到 2 个 azure 测试用例
- node.js - 如何将前端和后端验证添加到节点 js 用户身份验证项目?
- vba - Outook VBA:并非所有邮件项目都无法识别
- python - 一对多关系未显示在管理员中