2014-11-18 22 views

Trả lời

-3

Hãy thử sử dụng CROSS JOIN. Đọc thêm tại MSDN

Bạn có thể sử dụng cụm từ CROSSJOIN(table1, table2) để tạo ra sản phẩm tiêu biểu.

+0

câu hỏi là về excel. – liang

0

Sử dụng VBA, bạn có thể. Dưới đây là một ví dụ nhỏ:

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

Bạn có 3 thứ nguyên ở đây: dim1 (ABC), dim2 (123), dim3 (XYZ).

Sau đây là cách bạn thực hiện một sản phẩm Cartesian của 2 kích thước sử dụng tiêu chuẩn Excel và không có VBA:

1) Vẽ dim1 theo chiều dọc và chiều ngang dim2. thành viên chiều concatenate trên các nút giao thông:

Step 1 - plotting dimensions

2) dữ liệu Unpivoting. Khởi chạy trình hướng dẫn bảng tổng hợp bằng ALT-D-P (không giữ ALT, nhấn một lần). Chọn "Nhiều phạm vi hợp nhất" -> tạo một trang đơn .. -> Chọn tất cả ô (bao gồm tiêu đề!) Và thêm ô đó vào danh sách, nhấn tiếp theo.

step2 - unpivoting data

3) Biểu diễn các kết quả giá trị theo chiều dọc và tháo rời các dây nối

step 3 - disassemble strings

Thì đấy, bạn đã có cây thập tự tham gia. Nếu bạn cần thêm một tham số khác, hãy lặp lại thuật toán này.

Chúc mừng,

Constantine.

Các vấn đề liên quan