Kombinieren Sie in Excel

13072
Jonathan Mee

Ich habe eine Eingabezeile, die die Zellen enthält:

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

Ich möchte alle möglichen Kombinationen der Länge 3 aus diesem Satz generieren . Ich möchte also Zeilen mit 3 ausgefüllten Zellen und die Elemente jeder Zeile enthalten eine eindeutige Menge, unabhängig von der Reihenfolge. Mit anderen Worten, ich hätte keine 50, 30, 50 und 30, 50, 50.

Ich habe dies von Hand gemacht, daher ist dies möglicherweise nicht perfekt, aber ich glaube, meine Ausgabe sollte Folgendes sein:

  • 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

Ich weiß, dass ich diese mit VBA generieren kann, aber ich würde gerne wissen: Hat Excel native Befehle zum Generieren dieser Zeilen?

4
Warum nicht 30 30 100? Raystafarian vor 8 Jahren 0
@ Raystafarian Stink, und 30, 30, 60 habe ich bearbeitet. Jonathan Mee vor 8 Jahren 0
Ist 30 30 60 nicht dasselbe wie 30 60 30? Raystafarian vor 8 Jahren 0
@Raystafarian Richtig wieder, das hätte 30, 60, 60 gelesen haben sollen Jonathan Mee vor 8 Jahren 0
@Raystafarian Wah! Es gibt nur 1x60. Was auch immer, ich denke es ist gerade jetzt. Vielen Dank. Jonathan Mee vor 8 Jahren 0

2 Antworten auf die Frage

10
Mekki MacAulay

You can use the CROSSJOIN function in Excel (PowerPivot add-in required for Excel 2010 & 2013 which you can download for free from Microsoft). Details about the CROSSJOIN function can be found on the MSDN website.

In sum, set up your base data as two (duplicate) tables table1 & table2 making sure they have different column names, then use CROSSJOIN(table1, table2).

4
Chris

If you haven't seen this link already, it could be of use. There are some formula examples down the bottom. https://stackoverflow.com/questions/10692653/excel-vba-to-create-every-possible-combination-of-a-range

However, the CROSSJOIN answer above is a much cleaner way.