데이터베이스 관리자로부터 .csv 파일 형식의 데이터 패킷을 받았습니다. 형식화 및 정렬을 위해 이 데이터를 Excel로 가져옵니다. 그러나 하나의 열에는 구문 분석하고 정렬하려는 세 가지 정보가 포함되어 있습니다. 이 열의 단일 셀은 사용자 ID 번호와 사용자 이름(예: "83920 - johndavis")으로 구성됩니다. 이러한 각 용어를 기준으로 이 열을 정렬할 수 있기를 원합니다. Excel에서 매크로를 사용하여 이것이 가능합니까, 아니면 VBA를 사용해야 합니까? 그렇다면 이 문제에 접근하는 방법을 제안합니까?
저는 C와 Python에 대한 배경 지식이 있으므로 제한된 VBA 지식에도 불구하고 컴퓨터 공학 경험이 있습니다.
다음은 솔루션을 실험하면서 수집한 몇 가지 정보입니다. 이 페이지가 나의 출발점이었습니다.https://www.cedarville.edu/insights/blog/excel-how-to-parse-data-split-column-into-multiple.aspx 그런데 이 방법을 사용하려고 했을 때 컬럼 분할에 오류가 발생하여 제대로 분할되지 않았습니다(그림 참조). 나는 열 데이터가 Excel 시트의 다른 페이지에서 VBA로 조작된 실제 데이터이기 때문이라고 생각합니다. 그 특이한 현상을 어떻게 해결하시겠습니까?
답변1
Excel 수식이 포함되어 있기 때문에 다소 이상한 CSV입니다. CSV에는 데이터 이외의 다른 내용이 포함될 것으로 예상되지 않습니다.
현재 셀에는 데이터 값만 있는 것이 아니라 B09 - Theater
다음 수식이 있습니다.
=IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""), "B09 - Theater")
그만큼IFERROR수식은 (더미) 함수를 평가 @__xludf.DUMMYFUNCTION("""COMPUTED_VALUE""")
하고 오류가 반환되면 값을 씁니다 B09 - Theater
.
해당 수식을 유지할 필요가 없고(목적이 있는지는 모르겠습니다) 데이터만 필요한 경우 가장 쉬운 방법은 모든 셀을 선택하고다음과 같이 새 시트에 붙여넣으세요.가치.
그 후에는 사용할 수 있습니다iskyfire의 대답.
답변2
귀하의 게시물에 대한 내 의견에 따라 대신 다음을 수행할 수 있습니다.
또한 접두사가 붙은 VBA 함수에 대한 참조를 표시하는 이미지는 @__xludf.
현재 통합 문서에서 해당 함수를 사용할 수 없음을 의미합니다. 다른 통합 문서의 다른 모듈에 있거나 사용할 수 없는 라이브러리에 있을 수 있습니다.
어쨌든 간단한 경우에는 part1구분 기호2부에서는 위의 공식을 사용할 수 있습니다.
더 복잡한 경우에는 데이터에서 아무 셀이나 선택하고 데이터>데이터 가져오기 및 변환>테이블/범위에서를 사용하여 PowerQuery를 시작할 수 있습니다.
파워 쿼리 편집기 내에서 분할할 열을 선택하고 홈> 변환>열 분할> 구분 기호별을 사용하여 다음과 같이 구성할 수 있습니다(예:).
그런 다음 홈>닫기 및 로드를 사용하여 결과를 통합 문서에 다시 로드할 수 있습니다.
답변3
텍스트를 열로 변환
여러 데이터 값이 포함된 셀이 있는 경우 내장된 텍스트를 열로 변환 마법사를 사용하여 이를 구분할 수 있습니다. 이렇게 하면 Excel에서 사용할 수 있는 모든 필터와 정렬 방법을 사용할 수 있는 열당 1개의 데이터 값이 있는 테이블이 생성됩니다.
메모:예를 들어, 각 데이터 값을 구분하는 고유한 구분 기호가 여러 개 있는 경우 83920/johndavis - new york city
찾기 및 바꾸기를 사용하여 모든 문자 -
를 로 /
또는 그 반대로 변경할 수 있습니다. 각 데이터 값을 구분하는 동일한 구분 기호가 있어야 합니다. 그렇지 않으면 마법사를 여러 번 실행해야 합니다.
관련 없는 기능 제거
가지고 있는 데이터가 캡슐화되어 있으면 Match entire cell contents
선택 및 Look in: Formulas
선택을 통해 찾기 및 바꾸기를 사용할 수 있습니다.
범위를 선택하고 찾기 및 바꾸기로 이동하여 항목을 만들고 모두 바꾸기를 수행합니다. 예를 들어 =IFERROR(@__xludf.DUMMYFUNCTION("""COMPUTED_VALUE"""),"
빈 문자열입니다.
그런 다음 다시 실행하여 끝 부분을 ")
빈 문자열로 제거할 수 있습니다.
대규모 찾기 및 바꾸기 작업을 수행하기 전에 워크시트의 원본을 백업했는지 확인하십시오.