首页 > 解决方案 > Google Sheet - 如何使用一张表进行 FULL OUTER JOIN?

问题描述

我想为我的锦标赛创建一张桌子。我创建了一个包含一些球员和他们的联赛的表格。

球员

我想按联赛生成配对表,就像那样

配对表生成

我对谷歌电子表格很虚弱。我知道我不能将“JOIN”与“QUERY()”函数一起使用。看来我需要使用“ArrayFormula()”和“VLOOKUP()”函数,但经过数小时的粘贴尝试,我失败了。

如果你们中的任何人可以帮助我,那就太好了!

这是一个带有数据的 googlesheet:https ://docs.google.com/spreadsheets/d/19ThnwVme8f3Ee730w8lTAyEJE9YdxzLEfox8arl5Q4o/edit?usp=sharing

非常感谢,我希望我的问题很清楚:)

编辑:似乎我们受到 REPT() 函数中字符数的限制。如果除了答案或“解决方法”之外还有其他解决方案,请随时分享:)

标签: google-sheetsgoogle-sheets-formulaspreadsheetgoogle-query-language

解决方案


尝试:

=ARRAYFORMULA(UNIQUE(QUERY(SPLIT(IF(
 FLATTEN(SPLIT(REPT(CONCATENATE(IF(A3:A="";;A3:A&"♠&quot;&B3:B&"♠&quot;&C3:C)&"♦&quot;); COUNTA(A3:A)); "♦&quot;))<
 FLATTEN(SPLIT(CONCATENATE(REPT(IF(A3:A="";;A3:A&"♠&quot;&B3:B&"♠&quot;&C3:C)&"♦&quot;; COUNTA(A3:A))); "♦&quot;)); 
 FLATTEN(SPLIT(REPT(CONCATENATE(IF(A3:A="";;A3:A&"♠&quot;&B3:B&"♠&quot;&C3:C)&"♦&quot;); COUNTA(A3:A)); "♦&quot;))&"♠&quot;&
 FLATTEN(SPLIT(CONCATENATE(REPT(IF(A3:A="";;A3:A&"♠&quot;&B3:B&"♠&quot;&C3:C)&"♦&quot;; COUNTA(A3:A))); "♦&quot;));
 FLATTEN(SPLIT(CONCATENATE(REPT(IF(A3:A="";;A3:A&"♠&quot;&B3:B&"♠&quot;&C3:C)&"♦&quot;; COUNTA(A3:A))); "♦&quot;))&"♠&quot;&
 FLATTEN(SPLIT(REPT(CONCATENATE(IF(A3:A="";;A3:A&"♠&quot;&B3:B&"♠&quot;&C3:C)&"♦&quot;); COUNTA(A3:A)); "♦&quot;))); "♠&quot;); 
 "select Col1,Col2,Col4,Col5,Col6
  where Col1 <> Col4 
    and Col3 =  Col6")))

在此处输入图像描述


推荐阅读