首页 > 解决方案 > 查询中的 IF 语句

问题描述

我有一个包含两列的表,A第一列B是标签,第二列是金额。我正在尝试编写一个包含两列的查询,一列总结负值,另一列总结正值。

来自SQL,我尝试了以下

=QUERY(A1:B100, 
      "SELECT A, SUM( B * IF(B>0, 0, 1) ), 
                 SUM( B * IF(B<0, 0, 1) ) GROUP BY A ")

但似乎IF查询中不支持该功能。我知道我可以在工作表中创建两个中间列(一个用于正值,一个用于负值),但我想知道是否可以通过查询或以某种方式在没有中间列的情况下实现我想要的。

标签: google-sheetsspreadsheetgoogle-appsgoogle-sheets-query

解决方案


如果您必须使用查询功能,假设您的标签数据在 A 列中,而您的值在 B 列中:

=arrayformula(query({A1:A100,if(B1:B100>0,B1:B100,),if(B1:B100<0,B1:B100,)},"Select Col1, sum(Col2), sum(Col3) where Col1 <>'' group by Col1 label Col1 'Tag', sum(Col2) 'Positive', sum(Col3) 'Negative'"))

这是示例输出:https ://docs.google.com/spreadsheets/d/1DW5CyPCC71CopW48uKy6basn-WP4hMfh7kuuJXT-C4o/edit#gid=1606239479


推荐阅读