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))