題 在Excel中生成組合


我有一個包含單元格的輸入行:

  • 三十
  • 三十
  • 三十
  • 50
  • 50
  • 60
  • 100

我想生成所有可能的 組合 這一組的長度為3。所以我想要包含3個填充單元格的行,每行的元素將包含一個獨立於訂單的唯一集合。換句話說,我不會有50,30,50和30,50,50。

我已經手工完成了這個,所以這可能不完美,但我相信我的輸出應該是:

  • 30,30,30
  • 30,30,50
  • 30,30,60
  • 30,30,100
  • 30,50,50
  • 30,50,60
  • 30,50,100
  • 30,60,100
  • 50,50,60
  • 50,50,100
  • 50,60,100

我知道我可以用VBA生成這些,但我想知道:Excel是否有生成這些行的任何本機命令?


4
2018-02-04 14:25


起源


為什麼不30 30 100? - Raystafarian
@Raystafarian Stink,30,30,60,我已經編輯過了。 - Jonathan Mee
30 30 60與30 60 30相同嗎? - Raystafarian
@Raystafarian再次,那應該讀30,60,60 - Jonathan Mee
@Raystafarian哇!只有1x60。無論如何,我認為現在就是這樣。謝謝。 - Jonathan Mee


答案:


你可以使用 CROSSJOIN Excel中的功能(Excel 2010和2013所需的PowerPivot加載項,您可以免費下載 來自微軟)。有關的詳細信息 CROSSJOIN 功能可以在上找到 MSDN網站

總之,將基礎數據設置為兩個(重複)表 table1 & table2 確保它們具有不同的列名,然後使用 CROSSJOIN(table1, table2)


10
2018-02-04 14:45





如果您還沒有看過這個鏈接,它可能會有用。底部有一些公式示例。 https://stackoverflow.com/questions/10692653/excel-vba-to-create-every-possible-combination-of-a-range

然而 CROSSJOIN 以上回答是一種更清潔的方式。


4
2018-02-04 15:47