【问题标题】:QUERY to find matches across a rangeQUERY 查找范围内的匹配项
【发布时间】:2021-09-05 16:46:27
【问题描述】:

我想计算以“动作”为主要类型,然后以“魔术”为其他标签之一的系列的总出现次数。目前我有:

=Query(A:BM,"Select Count(L) where (L='Action')") 

L 是列出主要流派的行。在该行 (M:BM) 之后是一堆标签。是否可以使用查询来计算?比如:

=Query(A:BM,"Select Count(L) where (L='Action') and (M:BM='Magic')") 

这行不通,但如果有其他方法。

我尝试了 COUNTIFS 但由于范围不同,它也不起作用:

=COUNTIFS ('SheetName'!$L:$L, "Action", 'SheetName'!$M:$BM, "Magic")

也许是过滤器和 COUNTIF 的组合?组合过滤器(用于操作),然后在一个范围内计数...

sample of what the sheet looks like

在另一张纸上(在同一本书中),如果有两个以“动作”为主要类型的系列,计算带有“魔术”标签的“动作”系列,理想情况下会出现这样的结果,然后标签列之一中的“魔术”:

sample of potential output

链接到sample sheet

谢谢!!

【问题讨论】:

  • 完全可以。但获得帮助的最有效和最有效的方法是在此处共享指向您的工作表(或其副本)的链接,确保将链接的权限(当您创建它时)设置为“任何知道链接的人......”和“编辑”。

标签: sql google-sheets


【解决方案1】:

您可以使用下面的query方法来计算特定条件:

单一查询方式

=QUERY(A:E,"Select Count(B) where B='Action' And C='Magic' Or B='Action' And D='Magic' Or B='Action' And E='Magic'")

返回magic 的值很简单,但无法与上面的查询包装在一起:

=QUERY(A:C,"Select C where C='Magic'")

样本数据:

加入查询方法

或者用transposethird query单行返回:

=query({TRANSPOSE({QUERY(A:C,"Select C where C='Magic'")
;QUERY(A:E,"Select Count(B) where B='Action' And C='Magic' Or B='Action' And D='Magic' Or B='Action' And E='Magic'")})},"Select Col1, Col3")

【讨论】:

    【解决方案2】:

    到目前为止,当人们可以访问实际数据时,开发解决方案总是更容易。但是,“盯着它”,我创建了一个您可以尝试的公式:

    =ArrayFormula(COUNTA(IFERROR(REGEXEXTRACT(TRANSPOSE(QUERY(TRANSPOSE("~"&L2:BM&"~")," ",COLUMNS(L2:BM))),"~Action~.+~Magic~"))))

    在我花时间解释之前,让我们确保它按预期工作。

    如果这没有按预期工作,请分享指向工作表副本的链接,确保将权限(在创建链接时)设置为“知道链接的任何人...”和“编辑”。

    【讨论】:

    • 试过那个,看起来它只返回“0”:(我现在添加了一个样本表!第一张是标签所在的地方,第二张是我想画的地方指望!非常感谢docs.google.com/spreadsheets/d/…
    • 我添加了一张新工作表(“Erik 帮助”)。我帖子中的公式有效;看来您只是不知道如何使其适应您的布局,因此我已将其适应于您的示例。你会看到它正在工作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-14
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2022-01-16
    • 1970-01-01
    相关资源
    最近更新 更多