Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 以逗号分隔的列表到匹配的列配对_Google Sheets_Transpose_Google Sheets Formula_Array Formulas_Google Sheets Query - Fatal编程技术网

Google sheets 以逗号分隔的列表到匹配的列配对

Google sheets 以逗号分隔的列表到匹配的列配对,google-sheets,transpose,google-sheets-formula,array-formulas,google-sheets-query,Google Sheets,Transpose,Google Sheets Formula,Array Formulas,Google Sheets Query,我以为我是个不错的骑师,但这里有一个强者。我想用一个公式把左边变成右边 样本也可在: 我找到的最接近的是这个(),但它也不匹配( =ARRAYFORMULA(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE( IF(IFERROR(SPLIT(B1:B, ","))<>"", "♠"&A1:A&"♦"&SPLIT(B1:B, ","), )) ,,999^99)),,999^99), "

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

样本也可在:

我找到的最接近的是这个(),但它也不匹配(
=ARRAYFORMULA(TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(
 IF(IFERROR(SPLIT(B1:B, ","))<>"", "♠"&A1:A&"♦"&SPLIT(B1:B, ","), ))
 ,,999^99)),,999^99), "♠")), "♦")))
如果(Iferor(拆分)(B1:B,“,”)“,”♠"&A1:A&“♦拆分(B1:B,“,”)(&S) ,,999^99)),,999^99), "♠")), "♦"))) 这句话的意思是:排列公式(TRIM)(SPLIT)(转置)(SPLIT)(转置)(查询( 如果(Iferor(拆分)(B1:B,“,”)“,”♠“&A1:A&”♦拆分(B1:B,“,”)(&S) ,,999^99)),,999^99), "♠")), "♦"))) 备选方案:

备选方案:


Hi player0,非常感谢你的帮助!我在谷歌论坛上提出的同一个问题上得到了不同的答案:。我没有足够的技能来辨别每种方法的优缺点。你能帮我解决这个问题吗?在另一篇帖子上做同样的事情,链接这篇文章第一:)谢谢!Mishacan不能很好地证明另一个公式,但两者都使用TRIM,所以都有一定的限制,因为TRIM每次输出不能处理超过50000个字符。在最坏的情况下,如果需要,可以从这个公式中省略TRIM,这样这个fx可以扩展到50000行和50000行以上。然后是他们都使用的查询。QUERY fx有i处理速度减慢查询需要处理的行数越多。平均而言,这会超过20000行边距。然而,VLOOKUP肯定会在更大范围内与查询相结合增加处理时间。基本上,这个公式的作用是:将B中的每个逗号分隔值与列中的值和唯一符号相结合。然后它将所有这些组合值压缩到一个单元格中,然后通过这些独特的符号将其拆分为行和列,从而生成所需的输出。优点:简短明了。ofc。如果您碰巧发现另一个公式对您来说更快,请使用另一个公式。太棒了,非常感谢player0!这是一个很好的解释,我很感谢你抽出时间。嗨,player0,非常感谢你的帮助!我在同一时间在谷歌论坛上提出的同一个问题上得到了不同的答案:。我没有足够的技能来辨别每种方法的优缺点。你能帮我弄清楚吗?我也要做同样的事情吗在另一篇文章中,链接这一条:)谢谢!米沙坎没有很好地证明另一个公式,但都使用TRIM,所以都有一定的限制,因为TRIM每次输出不能处理超过50000个字符。在最坏的情况下,如果需要的话,可以从这个公式中省略TRIM,这样这个fx可以扩展到50000行或更多行。然后还有一个查询,它又是b其他人都使用。查询fx增加了处理速度,查询需要处理的行数越多。平均而言,这会超过20000行边距。然而,VLOOKUP肯定会在更大范围内与查询相结合增加处理时间。基本上,这个公式的作用是:将B中的每个逗号分隔值与a中的值相结合列和唯一符号。然后,它将所有这些组合值压缩到一个单元格中,并通过这些唯一符号将其拆分为行和列,从而创建所需的输出。优点:简短明了。ofc。如果您碰巧发现另一个公式对您来说更快,请使用另一个公式。太棒了,感谢您的参与r0!这是一个很好的解释,我感谢你抽出时间。
=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"))