Google 张拆分转置连接
Google Sheets Split Transpose Join
全部,我正在尝试解析一列,转置其内容并将其连接到另一列。我已经看到了如何通过混合使用 ARRAYFORMULA()、TRANSPOSE()、SPLIT() 来完成的一些变体,它们几乎可以工作,但其中大部分会过滤掉空白。在我的例子中,被解析的列可能有带空白的行,这是完全正常的。以下示例输入和所需输出并共享 sheet。提前致谢。
https://docs.google.com/spreadsheets/d/1OCJU5BGAWMt99cuufWlsua0oNCZCYjrEEFfH-YWbj4Q/edit?usp=sharing
尝试:
=ARRAYFORMULA(SORT(UNIQUE(IFERROR(SPLIT({IFERROR(FILTER(A2:A, B2:B=""));
TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF((
IFERROR(SPLIT(B2:B, ";"))<>""),"♦"&A2:A&"♣"&
IFERROR(SPLIT(B2:B, ";")), )),,99^99)),,99^99), "♦"))}, "♣")))))
或:
=ARRAYFORMULA(ARRAY_CONSTRAIN(SORT(UNIQUE(IFERROR(SPLIT({
IFERROR(FILTER(A2:A&"♣ ♣"&ROW(A2:A), B2:B="", A2:A<>""));
TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF((
IFERROR(SPLIT(B2:B, ";"))<>""),"♦"&A2:A&"♣"&
IFERROR(SPLIT(B2:B, ";"))&"♣"&ROW(A2:A), ))
,,99^99)),,99^99), "♦"))}, "♣"))), 3, 1), 99^99, 2))
这也可能有效:
=ARRAYFORMULA(SUBSTITUTE(QUERY(SPLIT(FLATTEN(A2:A23&"|"&SPLIT(IF(B2:B23="","#",B2:B23),";")),"|",0,0),"where Col2<>''"),"#",""))
全部,我正在尝试解析一列,转置其内容并将其连接到另一列。我已经看到了如何通过混合使用 ARRAYFORMULA()、TRANSPOSE()、SPLIT() 来完成的一些变体,它们几乎可以工作,但其中大部分会过滤掉空白。在我的例子中,被解析的列可能有带空白的行,这是完全正常的。以下示例输入和所需输出并共享 sheet。提前致谢。
尝试:
=ARRAYFORMULA(SORT(UNIQUE(IFERROR(SPLIT({IFERROR(FILTER(A2:A, B2:B=""));
TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF((
IFERROR(SPLIT(B2:B, ";"))<>""),"♦"&A2:A&"♣"&
IFERROR(SPLIT(B2:B, ";")), )),,99^99)),,99^99), "♦"))}, "♣")))))
或:
=ARRAYFORMULA(ARRAY_CONSTRAIN(SORT(UNIQUE(IFERROR(SPLIT({
IFERROR(FILTER(A2:A&"♣ ♣"&ROW(A2:A), B2:B="", A2:A<>""));
TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IF((
IFERROR(SPLIT(B2:B, ";"))<>""),"♦"&A2:A&"♣"&
IFERROR(SPLIT(B2:B, ";"))&"♣"&ROW(A2:A), ))
,,99^99)),,99^99), "♦"))}, "♣"))), 3, 1), 99^99, 2))
这也可能有效:
=ARRAYFORMULA(SUBSTITUTE(QUERY(SPLIT(FLATTEN(A2:A23&"|"&SPLIT(IF(B2:B23="","#",B2:B23),";")),"|",0,0),"where Col2<>''"),"#",""))