2017-02-26 65 views
1

所以我想文本從列A相結合,並與列的每個可能匹配它的極限再BI使用的公式谷歌加盟牀單文本結果大於50000個字符

在列C1:

=transpose(split(join("", arrayformula(rept(filter(A1:A, len(A1:A))&char(9999), counta(B1:B)))), char(9999))) 

在塔(D1):

=transpose(split(rept(join(char(9999), filter(B1:B, len(B1:B)))&char(9999), counta(A1:A)), char(9999))) 

,但是當我在我的列表中使用它,我獲得分別在C1和D1的錯誤;

錯誤

JOIN的文本結果大於50000個字符的長度限制。

REPT的文本結果比我用的只是一個小名單測試了這一點的32000個字符

極限長;

a b c 1 2 

,並設法讓我的列表中的2個細胞

a 1 
a 2 
a 3 
b 1 
b 2 
b 3 

但我結合列表在每列

任何建議的多了很多文字相結合後產生這種關於如何組合我的列表,如上所示,但在列A中有132種可能性,在列b中有52種可能性。每行在每行中有70到150個字符的文本。

任何幫助,將不勝感激。

回答

1

進入菜單Tools → Script Editor...

粘貼此代碼:

function crossJoin(arr1, arr2, delim) { 

    delim = delim || ''; 

    var result = []; 
    var row = []; 
    for (var i = 0; i < arr1.length; i++) { 
    for (var j = 0; j < arr2.length; j++) { 
     row = []; 
     row.push('' + arr1[0,i] + delim + arr2[0,j]); 
     result.push(row); 
    } 
    } 
    return result; 
} 

保存項目。

使用它作爲常規功能的電子表格:

=crossJoin(A1:A132,B1:B52)

Optionaly使用分隔符:

=crossJoin(A1:A132,B1:B52, "-")

+0

這個工作!!!!!!!!!!非常感謝!!!!這爲我節省了很多時間。如果我使用的是小數據集,我使用的原始公式就可以工作。但是我把它放進去並獲得了所有6000多件物品。你太棒了。 –