이 데이터 세트를 Excel로 가져 오는 방법은 무엇입니까? (콜론으로 구분 된 각 행의 열 표제)


1

다음 데이터 세트를 Excel로 가져 오려고합니다. 나는 텍스트 가져 오기 마법사로 운이 없었어요. Excel에서 id, name, street 등의 컬럼 이름을 만들고 각 레코드를 새로운 행에 삽입하려고합니다.

,
id: sdfg:435-345,
name: Some Name,
type: ,
street: Address Line 1, Some Place,
postalcode: DN2 5FF,
city: Cityhere,
telephoneNumber: 01234 567890,
mobileNumber: 01234 567890,
faxNumber: /,
url: http://www.website.co.uk,
email: email@address.com,
remark: ,
geocode: 526.2456;-0.8520,
category:    some, more, info

,
id: sdfg:435-345f,
name: Some Name,
type: ,
street: Address Line 1, Some Place,
postalcode: DN2 5FF,
city: Cityhere,
telephoneNumber: 01234 567890,
mobileNumber: 01234 567890,
faxNumber: /,
url: http://www.website.co.uk,
email: email@address.com,
remark: ,
geocode: 526.2456;-0.8520,
category:    some, more, info

Excel에서이 작업을 쉽게 수행 할 수 있습니까? 나는 이것을 기존의 CSV로 쉽게 변환하는 방법에 대해 고심하고있다. 내가 생각할 수있는 한, 각 줄에서 레이블을 제거하고 각 줄을 따옴표로 묶은 다음 쉼표로 구분해야합니다. 분명히 일부 필드 (예 : 주소)가 쉼표로 구분 된 데이터를 포함하고 있기 때문에 스크립트를 작성하기가 다소 어려워졌습니다. 나는 정규 표현식에 전혀 좋지 않다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?


구조는 항상 동일합니까? 동일한 순서로 항상 14 개의 필드가 있습니까?
nixda

네, 같은 순서로 항상 14 개의 필드가 있습니다.
Anonymous

텍스트 파일에서 열어 본 다음 복사 & gt; PasteSpecial - 데이터를 조 변경하려면 조바꿈
Our Man in Bananas

답변:


1

이 매크로는 예제와 함께 작동합니다.
(나는 VBA 매크로를 다루는 방법을 알고 있다고 가정합니다)

Sub ImportDataset()
    strPath = Application.GetOpenFilename()
    Open strPath For Input As #1
    While Not EOF(1)
        Line Input #1, strLine
        If strLine = "," Or strLine = "," Then
            intRow = intRow + 1
            intCol = 0
        End If
        If InStr(strLine, ":") <> 0 Then
            intCol = intCol + 1
            intStart = InStr(strLine, ":")
            strLine = Mid(strLine, intStart + 2)
            strLine = Left(strLine, Len(strLine) - 1)
            ActiveSheet.Cells(intRow, intCol) = strLine
        End If
    Wend
    Close #1
End Sub

머리글 필드에 몇 줄을 구현하기에는 너무 게을 렀기 때문에 한 번 직접 삽입해야합니다. 그게 큰 문제가 아니야.
nixda

감사합니다 nixda,하지만 실행할 때 'Run-time error'5': 잘못된 프로 시저 호출 또는 인수가. 디버그를 클릭하면 strLine = Left (strLine, Len (strLine) -1)로 강조 표시됩니다. 어떤 아이디어?
Anonymous

글쎄, 텍스트 파일과 예제가 나와 함께 작업하는 것보다 위에있다. 입력 파일을 어딘지에 업로드 할 수 있습니까?
nixda

실수로 전체 파일에서 일부 헤더 텍스트를 삭제하는 것을 실수로 잊어 버렸습니다. 일을 완벽하게, 많이 감사, 감사합니다. :)
Anonymous

0

이것은 일회성 조작이라고 가정합니다.

키보드 매크로가있는 텍스트 편집기를 사용하십시오.

  1. 단일 쉼표에서 단일 쉼표로 '한 블록'아래로 이동하는 매크로 작성

  2. 이 매크로를 사용하여 모든 블록에 모든 필드가 있는지 확인하십시오. 누락 된 필드 (행) 삽입

  3. 전역 대체 : 데이터에 큰 따옴표가있는 경우 "~으로"

  4. 블록의 모든 줄을 큰 따옴표로 둘러싼 새로운 매크로를 작성한 다음 끝에 줄 바꿈 문자를 제거하여 연결합니다

  5. Excel에서 CSV 가져 오기 수행

비고 :

  • 파일 전체의 실제 데이터에 따라 모든 단계가 필요할 수는 없습니다.

  • 실제 데이터와 편집기의 기능에 따라 \ n을 \ n과 같이 큰 따옴표로 빠르게 묶는 것과 같은 변형이 가능합니다.

  • 실제 CSV 가져 오기가 Excel에서 작동하도록 변형을 시도해야 할 수도 있습니다 (예 : 작은 따옴표를 둘러보십시오)

  • 시도 할 때 모든 단계를 다시 할 필요가 없도록 다른 편집 단계에 대한 중간 파일 보관

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.