【问题标题】:Comma separated list into matched columns pairings逗号分隔的列表到匹配的列配对
【发布时间】:2019-08-21 13:42:44
【问题描述】:

我以为我是个不错的 Sheets 骑师,但这里是个强硬派。我想只用一个公式把左边变成右边

样本也位于:https://docs.google.com/spreadsheets/d/1JgDZOV_K7SbOrCb27Z5K2XUBcrtq99GTCa3-BM2pOD0

我找到的最接近的是这个 (Separating Comma List into Cells with Formula),但它也没有进行匹配。

【问题讨论】:

    标签: google-sheets transpose google-sheets-formula array-formulas google-sheets-query


    【解决方案1】:

    @Matt:King替代:

    =ARRAYFORMULA(QUERY(VLOOKUP(SEQUENCE(COUNTA(A2:A)*
     COLUMNS(SPLIT(B2:B, ",")), 1, 0)/ COLUMNS(SPLIT(B2:B, ","))+2,
     {ROW(A:A), A:A, TRIM(SPLIT(B:B, ","))}, MOD(SEQUENCE(COUNTA(A2:A)*
     COLUMNS(SPLIT(B2:B, ",")), 1, 0), COLUMNS(SPLIT(B2:B, ",")))*{0, 1}+{2, 3}),
     "where Col2 is not NULL"))
    

    【讨论】:

      【解决方案2】:
      =ARRAYFORMULA(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
       IF(IFERROR(SPLIT(B1:B, ","))<>"", "♠"&A1:A&"♦"&SPLIT(B1:B, ","), ))
       ,,999^99)),,999^99), "♠")), "♦")))
      

      【讨论】:

      • 您好 player0,非常感谢您的帮助!我同时在 Google 论坛上提出的同一个问题得到了不同的答案:support.google.com/docs/thread/12496685。我不够熟练,无法辨别每种方法的优缺点。你能帮我解决这个问题吗?将在另一篇文章中做同样的事情,链接这个:)谢谢!米莎
      • 不能保证其他公式,但两者都使用 TRIM,所以两者都有一定的限制,因为 TRIM 每次输出最多可以处理 50000 个字符。在最坏的情况下,如果需要,可以从这个公式中省略 TRIM,因此这个 fx 可以扩展到甚至超过 50000 行。然后是他们俩都使用的QUERY。 QUERY fx 增加了处理速度,查询需要处理的行越多。平均而言,这可以在超过 20000 行边距时被注意到。但是,VLOOKUP 结合 QUERY 肯定会在更大范围内增加处理时间。
      • 这个公式的作用基本上是:将 B 中的每个逗号分隔值与 A 列中的值和唯一符号相结合。然后它将所有这些组合值压缩到一个单元格中,并通过这些唯一符号从该单元格中拆分为行和列,从而创建所需的输出。优点:更短更直接。俄亥俄州如果您有机会发现另一个公式对您来说更快,请使用另一个公式。
      • 太棒了,非常感谢 player0!这是一个很好的解释,感谢您抽出宝贵的时间。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-09
      • 2015-10-27
      • 1970-01-01
      • 2017-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多