Mac Excel에서 행 데이터를 열로 대량 변환하는 방법(전치 부적합)

Mac Excel에서 행 데이터를 열로 대량 변환하는 방법(전치 부적합)

나에게는 이와 같은 데이터가 많이 있다. 여기에는 두 개의 열이 있습니다.

하지만 이렇게 보이려면 필요합니다. 행당 하나의 이름, 필요에 따라 이메일을 추가 열로 추가합니다. 각 이름에 대해 알 수 없는 수의 이메일이 있습니다.

수천 개의 행이 있는 거대한 스프레드시트에 대해 이 작업을 수행해야 합니다. 따라서 전치와 같은 것을 사용하여 각각을 수동으로 변환할 수는 없습니다. 대량/배치/자동 솔루션이 필요합니다.

VBA가 존재한다는 것은 알고 있지만 코딩 방법을 모르겠습니다. 그것이 해결책이라면 코드가 어떻게 생겼는지에 대한 방향을 알려주시겠습니까?

VBA가 아닌 솔루션도 매우 환영합니다.

답변1

사용밀러이 CSV부터 시작합니다.

Name,Email
bob,[email protected]
bob,[email protected]
bob,[email protected]
sally,[email protected]
sally,[email protected]

당신은 실행할 수 있습니다 :

mlr --csv nest --ivar ";" -f Email then nest --explode --values --across-fields -f Email then unsparsify input.csv >output.csv

얻기 위해:

답변2

예제 A열: 이름, B열: 이메일로 시작합니다.

  1. =INDEX($A$2:$A$6, MATCH(0, COUNTIF($D$1:$D1, $A$2:$A$16), 0)) 예를 들어 빈 셀(예: D2)에 다음 배열 수식을 입력 하고 Shift + Ctrl + Enter 키를 함께 눌러 올바른 결과를 얻으세요. 스크린샷을 참조하세요.

여기에 이미지 설명을 입력하세요

  1. 셀을 아래로 드래그하여 D열의 모든 값을 채웁니다. 결과는 위 스크린샷과 같습니다.
  2. 셀 내E2이메일을 보낼 곳에 이 공식을 삽입하세요=IFERROR(INDEX($B$2:$B$16, MATCH(0,COUNTIF($D2:D2,$B$2:$B$16)+IF($A$2:$A$16<>$D2,1,0),0)),"")
  3. 셀을 오른쪽으로 5~10개 셀(또는 생각하는 양만큼) 드래그하여 입력한 다음 행을 아래로 드래그하여 각 사람의 이메일을 입력합니다.

결과: 여기에 이미지 설명을 입력하세요


원천

답변3

수식을 사용하여 보조 열을 추가합니다.

="Mail "&COUNTIF($A$2:A2,A2)

여기에 이미지 설명을 입력하세요

파워 쿼리 편집기 열기 - 선택열1- 이동변환-피벗 열- 선택하다이메일그리고 아래고급 옵션선택하다집계하지 않음:

여기에 이미지 설명을 입력하세요

답변4

새 Excel 버전이 있는 경우 다음 수식을 사용할 수 있습니다.

그러면 다음과 같이 할 수 있습니다. 여기에 이미지 설명을 입력하세요 파란색테이블 이름이 지정됨 Table1.

사용된 수식:

  • E3:=UNIQUE(Table1[Name])
  • F2:N2:="Mail"&COLUMN()-COLUMN($E$2)
  • F3(아래로 늘림):=INDEX(Table1[Mail];FILTER(TRANSPOSE(SORT(UNIQUE((ROW(Table1[Name])-ROW(Table1[[#Headers];[Name]]))*($E3=Table1[Name]))));TRANSPOSE(SORT(UNIQUE((ROW(Table1[Name])-ROW(Table1[[#Headers];[Name]]))*($E3=Table1[Name]))))>0;""))

테이블은 새 Excel 버전의 SPILL 기능으로 채워집니다.

예시 파일:https://1drv.ms/x/s!ArVkYVSHnABFiiqzBYLPmoubvdHY?e=p7wOeF

이전 Excel 버전을 사용하는 경우 배열 함수를 사용하여 대부분의 기능을 에뮬레이트할 수 있습니다. 하지만 훨씬 더 혼란스러워집니다 ...

관련 정보