2014-11-18 14 views

Antwort

-3

Versuch. Weitere Informationen unter MSDN

Sie können den Ausdruck CROSSJOIN(table1, table2) verwenden, um ein kartesisches Produkt zu erstellen.

+0

die Frage ist über Excel. – liang

0

Mit VBA können Sie hinzufügen erfordert. Hier ist ein kleines Beispiel:

Sub SqlSelectExample() 
'list elements in col C not present in col B 
    Dim con As ADODB.Connection 
    Dim rs As ADODB.Recordset 
    Set con = New ADODB.Connection 
    con.Open "Driver={Microsoft Excel Driver (*.xls)};" & _ 
      "DriverId=790;" & _ 
      "Dbq=" & ThisWorkbook.FullName & ";" & _ 
      "DefaultDir=" & ThisWorkbook.FullName & ";ReadOnly=False;" 
    Set rs = New ADODB.Recordset 
    rs.Open "select ccc.test3 from [Sheet1$] ccc left join [Sheet1$] bbb on ccc.test3 = bbb.test2 where bbb.test2 is null ", _ 
      con, adOpenStatic, adLockOptimistic 
    Range("g10").CopyFromRecordset rs '-> returns values without match 
    rs.MoveLast 
    Debug.Print rs.RecordCount   'get the # records 
    rs.Close 
    Set rs = Nothing 
    Set con = Nothing 
End Sub 
1

Sie haben 3 Dimensionen hier: dim1 (ABC), dim2 (123), dim3 (XYZ).

Hier ist, wie Sie ein kartesisches Produkt von 2 Dimensionen mit Standard-Excel und keine VBA machen:

1) Plotten dim1 vertikal und horizontal DIM2. Verketten Dimensionselemente an den Kreuzungspunkten:

Step 1 - plotting dimensions

2) Unpivoting Daten. Starten Sie den Pivot-Tabellen-Assistenten mit ALT-D-P (halten Sie nicht ALT gedrückt, drücken Sie einmal). Wählen Sie "Mehrere Konsolidierungsbereiche" -> erstellen Sie eine einzelne Seite .. -> Wählen Sie alle Zellen (einschließlich Header!) Und fügen Sie es zur Liste hinzu, drücken Sie auf Weiter.

step2 - unpivoting data

3) Zeichnen Sie die resultierenden Werte vertikal und die verketteten Strings

step 3 - disassemble strings

Voila zerlegen Sie die Cross-Join haben. Wenn Sie eine weitere Dimension hinzufügen möchten, wiederholen Sie diesen Algorithmus erneut.

Cheers,

Constantine.

Verwandte Themen