2015-03-13 85 views
0

希望將一列中的每個值添加到第二列中的每個值以創建複合數組。以爲我可以使用ARRAYFORMULA來做這件事,但並不那麼容易,看來。我想要的結果列自動展開等ARRAYFORMULA不會因爲行數可以改變和Col 1和Col 2之間是不相等的:將一列中的每個值添加到Google表格中第二列中的每個值

Col 1 | Col 2 | Result 
------+-------+------- 
10 | 1 | 11 
------+-------+------- 
20 | 2 | 12 
------+-------+------- 
30 | 3 | 13 
------+-------+------- 
40 |  | 21 
------+-------+------- 
50 |  | 22 
------+-------+------- 
     |  | 23 
------+-------+------- 
     |  | 31 
------+-------+------- 
     |  | 32 
------+-------+------- 
     |  | 33 
------+-------+------- 
etc... 

我可以寫創建此ONEDIT()時的指標值的變化的腳本,但寧願一個公式。

謝謝!

+0

您每次編輯單元格時都會有效地想要一個新查詢,並且要更新查詢並填入新行。我認爲這可以用公式完成,但有一個問題;您需要在第三列中包含足夠的公式來涵蓋所有可能的排列,這些排列會發生變化。所以你需要用公式填充更多的行,比你需要的還多,或者每次都用代碼注入公式。但是如果你打算使用代碼,使用公式是毫無意義的。 – 2015-03-13 15:48:30

+0

我不想使用代碼,而寧願使用Google ARRAYFORMULA或一些派生項,這些派生項允許我使用自動擴展結果列的單個公式。代碼太永久。公式允許更簡單的更改。 – user875479 2015-03-13 16:00:33

回答

0

最後,經過一段時間,我弄明白了。也許這會幫助別人,或者刺激別人去比這更優雅的回答。在Google表格中,將此公式放入頂部單元格(示例表格中的C2),其餘值將自動展開並正確添加:

= ARRAYFORMULA(ARRAYFORMULA(TRANSPOSE(SPLIT(REPT(JOIN(「 ,「$ A1:$ A10),COUNT($ B1:$ B10)),」,「)))+ ARRAYFORMULA(TRANSPOSE(ARRAYFORMULA(SPLIT(JOIN(」,「,(REPT(」,「,& $ B1 :$ B10,COUNT($ A1:$ A10)))),「,」)))))

這假定每列最多可以有9行。顯然,可以根據您爲每列指定的範圍調整行數。這取得每列中的值,將它們組合成一個重複的數組,然後連接/分割或連接,然後重複並分割......以創建正確的組合。一種自動擴展的公式,無需編寫腳本即可靈活使用。如果有的話,請分享一個更好的方式來做到這一點。

相關問題