2017-12-27 20 views
0

の列からExcelのマッピング私はExcelで形式は次のデータを持っている: 入力:

Col1  | Col2 
A1;A2;A3;A4|B1;B2;B3;B4 
A5;A6  | B5;B6 
A7;A8  | B7;B8 

私はデータは、その後のフォーマット、すなわち出力で

Col1 | Col2 
A1 |B1 
A2 |B2 
A3 |B3 
A4 |B4 
A5 |B5 
A6 |B6 
A7 |B7 
A8 |B8 

になりたい私は多くのことを試みたが、どのようにこの質問をフレーム化するか、それをExcelで行う方法についての解決策は見つかりませんでした。 すべてのヘルプ/ガイド/リンクは高く評価されます。 ありがとうございます。

+0

私は答えはありませんが、一般的には、非標準化されたデータをExcel(またはデータベース)に保存することをお勧めします。 Excelはこの種のデータスクラブ操作にはあまり適していません。 –

+0

両方の列で項目の数が同じですか(複数の項目がある場合)? – JohnyL

+0

はい、特定の行の列に同じ数の項目があります。 – sanjeev

答えて

1
Sub Test() 

    Dim arr1(), arr2(), split1, split2 
    Dim rng As Range, rngRow As Range 
    Dim x As Integer, z As Integer 

    'Assuming data starts from A1 cell 
    Set rng = Range("A1").CurrentRegion 

    For Each rngRow In rng.Rows 
     split1 = Split(rngRow.Cells(1), ";") 
     split2 = Split(rngRow.Cells(2), ";") 
     For x = LBound(split1) To UBound(split1) 
      z = z + 1 
      ReDim Preserve arr1(1 To z) 
      ReDim Preserve arr2(1 To z) 
      arr1(z) = split1(x) 
      arr2(z) = split2(x) 
     Next 
    Next 

    Range("D1").Resize(UBound(arr1), 1).Value = Application.Transpose(arr1) 
    Range("E1").Resize(UBound(arr2), 1).Value = Application.Transpose(arr2) 


End Sub 
+0

ありがとうございました。あなたは私の一日を作った。 – sanjeev

+0

@sanjeevあなたは大歓迎です:) – JohnyL