홈>
vba를 사용하여 Excel에서 행을 열로 바꾸어야하며 데이터는 약 500000입니다.
문제는 데이터가 규칙적이지 않고 일관성이 있다는 것입니다. 4 개의 행이 있고 공백이있는 것처럼 3 개의 행 또는 1 개의 행이 될 수 있습니다. 빈 셀로 구분 된 데이터 그룹을 첫 번째 항목 앞의 해당 열로 바꿉니다.Sub Transpose()
' Transpose Macro
' Keyboard Shortcut: Ctrl+Shift+T
Do Until IsEmpty(ActiveCell.Value)
Range(Selection, Selection.End(xlDown)).Select
Application.CutCopyMode = False
Selection.Copy
ActiveCell.Offset(0, 1).Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
ActiveCell.Offset(0, -1).Range("A1").Select
Selection.End(xlDown).Select
Selection.End(xlDown).Select
Loop
End Sub
이 코드를 사용했지만 문제는 단일 행에있는 데이터를 건너 뛰는 것입니다.
- 답변 # 1
- 답변 # 2
유용한 접근 방식을 보여주기 위해 코드를 편집했습니다. 하나의 셀 데이터에 대한 조건을 추가해야합니다.
Sub Transpose2() ' Transpose Macro ' Keyboard Shortcut: Ctrl+Shift+T Do Until IsEmpty(ActiveCell.Value) If IsEmpty(ActiveCell.Offset(1, 0).Value) Then Selection.Copy ActiveCell.Offset(0, 1).Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True ActiveCell.Offset(0, -1).Range("A1").Select Else Range(Selection, Selection.End(xlDown)).Select Selection.Copy ActiveCell.Offset(0, 1).Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True ActiveCell.Offset(0, -1).Range("A1").Select Selection.End(xlDown).Select End If Application.CutCopyMode = False Selection.End(xlDown).Select Loop End Sub
참고 :
select
사용 일반적으로 좋은 생각이 아닙니다.select
삭감의 예 다음과 같습니다.Sub Transpose3() ' Transpose Macro ' Keyboard Shortcut: Ctrl+Shift+T Do Until IsEmpty(ActiveCell.Value) If IsEmpty(ActiveCell.Offset(1, 0).Value) Then ActiveCell.Copy ActiveCell.Offset(0, 1) Else Range(ActiveCell, ActiveCell.End(xlDown)).Copy ActiveCell.Offset(0, 1).Range("A1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True ActiveCell.Offset(0, -1).Range("A1").End(xlDown).Select End If Application.CutCopyMode = False Selection.End(xlDown).Select Loop End Sub
관련 자료
- r - 데이터 드램 끝에 열을 어떻게 전치 할 수 있습니까?
- sql - postgres에서 행을 열로 바꿉니다
- sql - 순서대로 행을 특정 일반 열로 변환
- google sheets - 빈 셀이없는 여러 행과 열을 빈 셀이없는 두 개의 열로 바꾸는 방법은 무엇입니까?
- csv - Excel의 n 행을 여러 열로 바꾸는 방법
- vba - Excel에서 열 그룹을 행으로 바꾸는 방법이 있습니까?
- SQL - sql - 다른 테이블의 열을 바꾸거나 피벗하는 방법
- sql redshift - 여러 열로 전치 및 그룹화
- python 3.x - 팬더 - 여러 열로 전치 및 합
- perl - 가변 양의 행을 가진 가변 양의 행을 으로 바꾸고 다음 까지 모든 행을 바꿉니다
- t sql - SQL Server에서 관련되지 않은 여러 열을 행으로 바꾸려면 어떻게해야합니까?
- hive - ID를 기준으로 상위 n 개의 빈번한 값을 열로 바꿈
- python - Pandas를 사용하여 행을 열로 변환
- sql - 동적 행을 열로 변환
- OpenRefine에서 가변 개수의 행을 열로 변환
- sql - 쿼리에서 행을 열로 바꾸는 방법
- 행을 SQL Server의 열로 바꾸고 피벗을 사용하여 시도했지만 예상 결과에 도달하지 못했습니다
- sql - 열을 행으로 바꾸는 Postgresql 쿼리
- excel - 여러 열을 1 행으로 바꾸는 방법
관련 질문
- Excel VBA에서 열에서 키워드 찾기 및 다른 열 편집
- excel : 마지막 행 IF를 찾는 매크로 도움말
- excel : 셀 색상을 확인/변경하기 위해 Change(byVal Target as Range)를 어떻게 사용합니까?
- excel : PC 스토리지 드라이브 이름 찾기
- excel : 성공적인 브라우저 시작 요청에 대한 동일한 페이로드에도 불구하고 VBA가 있는 HTTPRequest를 통한 "잘못된 다중 부분 페이로드 형식"
- excel : 수식 숫자 값을 숫자 더하기 1로 바꾸기
- excel : 값이 날짜를 따르도록 vlookup 또는 매크로를 설정하는 방법
- excel : 다른 이름으로 저장하는 동안 파일을 바꾸라는 메시지가 표시되면 "아니요" 또는 "취소"를 선택하면 VBA 1004 오류가 발생합니다.
- Excel 스프레드시트에 값을 쓰도록 확인란을 얻으려고 합니다.
- excel : 여러 If/Then 호출 옵션
이 작업을 수행해야합니다. 데이터가 어디에 있고 붙여 넣을지를 가정하고 다음을 변경하는 것을 잊지 마십시오.