【问题标题】:How can I separate a column into multiple columns based on values?如何根据值将一列分成多列?
【发布时间】:2021-05-26 16:00:17
【问题描述】:

我搜索了很多页面,但我找不到解决问题的方法,除非以相反的顺序。我已经简化了我的工作,但是我有一个查询来查找我的数据表中的信息。这里有 3 列,日期、金额和来源。

我希望通过查询功能能够创建不同的列,这些列根据每个月的单元格值计算列 C 的信息,就像这样

公式开头没问题

=QUERY(A2:C,"select month(A)+1, sum(B), count(C) where A is not null group by month(A)+1")

但是,一旦我通过将 2 个查询放在一个数组公式中尝试一些不同的事情,显然行数不匹配,因为某些来源的一些减号为 0。

您对我正在尝试做的事情有解决方案吗?提前谢谢你:)

【问题讨论】:

    标签: google-sheets google-sheets-formula formula


    【解决方案1】:

    解决方案:

    在 Google 查询语言中不可能有一个查询语句,其中一个结果按一列分组,另一个结果按另一列分组。

    前两列可以是这样的:

    =QUERY(A2:C,"select month(A)+1, sum(B) where A is not null group by month(A)+1 label month(A)+1 'Month', sum(B) 'Amount'")
    

    要为后续列创建列标签,请在第一行中使用,在我的示例中为 I1:

    =TRANSPOSE(UNIQUE(C2:C))
    

    然后从单元格 I2 输入:

    =COUNTIFS(arrayformula(month($A$2:$A)),$G2,$C$2:$C,I$1)
    

    然后水平和垂直拖动以应用到整个表格。

    结果:

    【讨论】:

    • 感谢您的回答!是的,我怀疑这是不可能的,但也许有办法解决这个问题。我决定使用更接近我最初需求的 player0 解决方案。
    【解决方案2】:

    尝试:

    =INDEX({
     QUERY({MONTH(A2:A), B2:C}, 
     "select Col1,sum(Col2) where Col2 is not null group by Col1 label Col1'month',sum(Col2)'amount'"), 
     QUERY({MONTH(A2:A), B2:C, C2:C}, 
     "select count(Col3) where Col2 is not null group by Col1 pivot Col4")})
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      • 2020-04-19
      • 2019-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多