2011-12-19 3 views
0

연속적으로 번호가 매겨진 데이터를 받지만 각 번호 아래에는 다음 번호 이전에 0, 1, 2 또는 3 개의 정보가 있습니다. 숫자가 균등하게되도록 데이터를 분리해야합니다! 도움을 받으려면 크게 도움이 될 것입니다. 저는 대학에서 Excel을 작성 했어야했는데 그 전에 수십 년 전이었습니다! Thankyou, Graeme 로버트, 안녕하세요, 호주인 신규 사용자로서 이미지를 삽입 할 수 없습니다! 따라서 각각의 쉼표를 셀을 구분하는 것으로 상상하고 처음에받은 첫 번째 행이있는 빈 Excel 셀로 대시를 상상해보십시오. "g, h"등은 문장입니다. 두 번째 행은 제가 성취하고자하는 것입니다. 불행히도 서식을 가로 질러 내려가는 셀을 표시하지 않으므로 Excel이나 삽입 된 이미지처럼 여기 저기에 있어야합니다! 감사! 2, K - - -엑셀로 데이터 분리하기

가 필요 하나, G, H, 1 g, H, 2, K, 3, A, C, V, 4,5, R, t

받기 따라서, 각 "숫자"(클라이언트)에 대해 3 개의 정보를 받으면 자동으로 숫자가 표시됩니다. 균등하게 간격을 두지 만 불행하게도 이것은 발생하지 않습니다!

+0

당신이 보여주는 예와 함께이 문제를 명확히 할 수 당신이 받고 당신이 결국 원하는 무엇 무엇 둘? –

+0

안녕하세요 Robert 님, 새 사용자로서 이미지를 사용할 수 없습니다. 따라서 각 숫자와 문자를 별도의 Excel 셀로 상상하십시오! 감사! – Graeme

+0

사진을 업로드하거나 페이지에 댓글을다는 것이 허용되지 않았을 때 나는 그것이 얼마나 초조한지 압니다 ... –

답변

0

Graeme, 예를 들어 VBA 매크로를 만들 수 있는지 알려주세요.

나는 지금까지 일을하는 사람을 썼다.

< ----------- CODE START --------->

Sub uniformdata() 
    ReceiveCol = 1 'Column where received data starts 
    ReceiveRow = 1 'Row where where received data starts 
    PublishCol = 1 'Column where Published data starts 
    PublishRow = 2 'Column where Published data starts 
    Do Until Cells(ReceiveRow, ReceiveCol).Value = "" 
     For counter = 1 To 4 
      If counter = 1 Then 
       Cells(PublishRow, PublishCol).Value = Cells(ReceiveRow, ReceiveCol).Value 
       ReceiveCol = ReceiveCol + 1 
      Else 
       If IsNumeric(Cells(ReceiveRow, ReceiveCol).Value) Then 
        Cells(PublishRow, PublishCol).Value = "-" 
       Else 
        Cells(PublishRow, PublishCol).Value = Cells(ReceiveRow, ReceiveCol).Value 
        ReceiveCol = ReceiveCol + 1 
       End If 
      End If 
      PublishCol = PublishCol + 1 
     Next 
    Loop 
End Sub 

< --------- 코드 END --- ------>

빈 셀을 찾을 때까지 왼쪽에서 오른쪽으로 목록을 살펴 보는 것입니다. 내부에는 끊임없이 루프가 4 회 반복됩니다. 첫 번째 패스에서는 번호가 있다고 가정하고 즉시 씁니다. 다른 3 번의 패스에서, 다음에 수신 된 셀이 숫자인지 여부를 검사합니다. 틈새를 대시로 채우는 숫자 인 경우, 숫자가 아닌 경우 발견 된 문자가 사용됩니다.

문제가 해결되는지 알려주세요. 내 예에서는 매력처럼 작동했습니다.

감사합니다,

로버트 Ilbrink

+0

사실, 개별 if 문에서 publishCol + 1을 제거하고 다음 루프의 끝에 ..... 중 하나만 움직일 수 있습니다. –