Google Sheet - 如何处理 REPT() 的最大尺寸以进行 FULL OUTER JOIN
Google Sheet - How to deal with REPT() max size to do a FULL OUTER JOIN
除了我的最后一个问题 ,我看到 REPT() 函数限制为 32k 个字符。
我们如何处理它来进行 FULL OUTER JOIN?
此外,您可以在 https://docs.google.com/spreadsheets/d/19ThnwVme8f3Ee730w8lTAyEJE9YdxzLEfox8arl5Q4o/edit?usp=sharing
上看到一个 2 张纸的示例
非常感谢您的回答:)
尝试:
=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(QUERY(
TRANSPOSE(QUERY(UNIQUE(IF(INDEX(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>""))), "♠"),,1)<INDEX(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>""))), "♠"),,2), QUERY(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>""))), "♠"),
"select Col1,Col2", 0), QUERY(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>""))), "♠"),
"select Col2,Col1", 0))),
"where Col1<>Col2", 0)),,9^9)), "♦ ", 1, 1),
"select Col1,Col2,Col4,Col5,Col6
where Col1 <> Col4
and Col3 = Col6", 0))
欧盟语法:
=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(QUERY(
TRANSPOSE(QUERY(UNIQUE(IF(INDEX(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>""))); "♠");;1)<INDEX(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>""))); "♠");;2); QUERY(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>""))); "♠");
"select Col1,Col2"; 0); QUERY(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>""))); "♠");
"select Col2,Col1"; 0)));
"where Col1<>Col2"; 0));;9^9)); "♦ "; 1; 1);
"select Col1,Col2,Col4,Col5,Col6
where Col1 <> Col4
and Col3 = Col6"; 0))
更短的效果:
=INDEX(QUERY(SPLIT(FLATTEN(IF(
ROW(INDIRECT("A1:A"&COUNTA(A3:A)))<=TRANSPOSE(
ROW(INDIRECT("A1:A"&COUNTA(A3:A))));;
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")&"♦"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")))); "♦");
"select Col4,Col5,Col1,Col2,Col6
where Col2 is not null
and Col3 = Col6
order by Col6,Col4"; 0))
除了我的最后一个问题
我们如何处理它来进行 FULL OUTER JOIN?
此外,您可以在 https://docs.google.com/spreadsheets/d/19ThnwVme8f3Ee730w8lTAyEJE9YdxzLEfox8arl5Q4o/edit?usp=sharing
上看到一个 2 张纸的示例非常感谢您的回答:)
尝试:
=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(QUERY(
TRANSPOSE(QUERY(UNIQUE(IF(INDEX(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>""))), "♠"),,1)<INDEX(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>""))), "♠"),,2), QUERY(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>""))), "♠"),
"select Col1,Col2", 0), QUERY(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C, A3:A<>""))), "♠"),
"select Col2,Col1", 0))),
"where Col1<>Col2", 0)),,9^9)), "♦ ", 1, 1),
"select Col1,Col2,Col4,Col5,Col6
where Col1 <> Col4
and Col3 = Col6", 0))
欧盟语法:
=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(QUERY(
TRANSPOSE(QUERY(UNIQUE(IF(INDEX(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>""))); "♠");;1)<INDEX(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>""))); "♠");;2); QUERY(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>""))); "♠");
"select Col1,Col2"; 0); QUERY(SPLIT(FLATTEN(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")&"♠"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>""))); "♠");
"select Col2,Col1"; 0)));
"where Col1<>Col2"; 0));;9^9)); "♦ "; 1; 1);
"select Col1,Col2,Col4,Col5,Col6
where Col1 <> Col4
and Col3 = Col6"; 0))
更短的效果:
=INDEX(QUERY(SPLIT(FLATTEN(IF(
ROW(INDIRECT("A1:A"&COUNTA(A3:A)))<=TRANSPOSE(
ROW(INDIRECT("A1:A"&COUNTA(A3:A))));;
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")&"♦"&TRANSPOSE(
FILTER(A3:A&"♦"&B3:B&"♦"&C3:C; A3:A<>"")))); "♦");
"select Col4,Col5,Col1,Col2,Col6
where Col2 is not null
and Col3 = Col6
order by Col6,Col4"; 0))