【问题标题】:Transform one to many data to columns将一对多数据转换为列
【发布时间】:2020-02-12 14:49:56
【问题描述】:

鉴于此数据:

如何将其转换为如下所示:

数据源中有两列,key (title) 和 value (responsibility)。 我需要对其进行转换,以便我们拥有key 列(title),然后是n 列,其中n 是一个键具有的value 的最大数量,例如上图中的3。因此,列应该是:

Title, 1, 2, 3

1, 2, 3每一列的值应该与原始数据中的值对应。

欢迎任何公式组合 - 我相信 Transpose 和/或 Query (pivot) 的组合是合适的,但我不能把它们放在一起。

如果这太复杂了,我们可以直接在数据源中放置一个枚举,但如果没有它,公式也能工作就好了。例如:

示例表: https://docs.google.com/spreadsheets/d/1InYZ12VuuaSg0s3fiFTCx8BnwEan5JsqpsNBF973lWc/edit?usp=sharing

【问题讨论】:

    标签: google-sheets pivot array-formulas countif google-sheets-query


    【解决方案1】:

    尝试:

    =QUERY({A:C}, 
     "select Col1,max(Col3) 
      where Col1 is not null 
      group by Col1 
      pivot Col2", 1)
    


    或:

    =ARRAYFORMULA(QUERY({A:A, COUNTIFS(A:A, A:A, ROW(A:A), "<="&ROW(A:A)), B:B}, 
     "select Col1,max(Col3) 
      where Col1 is not null 
      group by Col1 
      pivot Col2", 1))
    

    【讨论】:

    • 那个COUNTIFS的公式很聪明,没想到那个。 Google sheet 的 PIVOT SQL 参数非常强大,但必须先习惯它……非常感谢。完全按照要求工作。
    猜你喜欢
    • 2017-12-01
    • 1970-01-01
    • 2019-08-25
    • 2021-06-27
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 2017-08-14
    相关资源
    最近更新 更多