Excel에서 한 행을 여러 행으로 변환

Excel에서 한 행을 여러 행으로 변환

여러 유통 센터(예: 다대다 관계)에서 사용할 수 있는 여러 항목이 있습니다. 현재 각 유통 센터마다 하나의 열과 품목당 하나의 행이 있습니다. 항목 행의 셀 엑스및 물류센터 기둥 와이물류센터 코드가 표시되어 있습니다와이만약 아이템이라면 엑스거기에서 사용할 수 있고 그렇지 않으면 비어 있습니다. 여러 유통 센터가 있는 품목에는 여러 유통 센터 코드(각 열에)가 있습니다. 따라서 현재 시트는 다음과 같습니다.

    |   A    |         B         |*|                      S-AJ                      |
1   |  ID #  |   Description     |…|              Distribution Centers              |
2   |   17   |   Ginkgo Biloba   |…|      |      |      |      |      |      |  SE  |
3   |   42   |   Ginseng         |…|      |  MP  |  MS  |      |  NW  |      |      |

열에는 CR질문과 관련이 없는 UPC 코드, 비용, 가격 등 항목의 다른 속성이 포함되어 있습니다. 내 실제 시트에는 열에 S걸쳐 18개의 유통 센터가 있습니다 AJ. 예제가 Stack Exchange의 창에 맞도록 이를 줄였습니다.

행당 단일 배포 코드가 있는 단일 배포 센터 열이 있어야 하며, 현재 여러 코드가 포함된 품목에 대해 필요에 따라 행을 복제해야 합니다. 결과는 다음과 같습니다.

    |   A    |         B         |*|   S  |
1   |  ID #  |   Description     |…|  DC  |
2   |   17   |   Ginkgo Biloba   |…|  SE  |
3   |   42   |   Ginseng         |…|  MP  |
4   |   42   |   Ginseng         |…|  MS  |
5   |   42   |   Ginseng         |…|  NW  |

여기서 셀 A3:R3, A4:R4A5:R5에는 동일한 정보가 포함되어 있습니다.

시간이 많이 걸리는 이 작업을 수행할 수 있는 유일한 방법은 항목 번호를 여러 행에 복사하는 것입니다. 유통 코드가 있는 열에서 각 유통 센터에서 사용할 수 있는 품목의 코드를 변경합니다. 900개 항목에 대해 이 작업을 수행하겠습니다. 이 작업을 수행하는 더 쉬운 방법이 있나요?

답변1

  1. 새 시트를 만듭니다. 머리글 행, 열 너비 및 형식을 복사합니다. 단, 열은 복사하지 마십시오 T. AJ전체 시트를 복사한 다음 1 이외의 모든 행을 삭제하고 열 병합을 취소하는 것이 가장 쉬울 수 있습니다 S.AJ
  2. Sheet1먼저 각 품목 행을 18 회 Sheet2 (각 유통 센터에 대해 한 번씩) 복제하려고 합니다 . 를 입력 =INDEX(Sheet1!A:A, INT((ROW()-2)/18)+2, 1) & ""하세요 Sheet2!A2INT((ROW()-2)/18)+22-19행을 Sheet22행에 매핑하고 Sheet1, 20-37행을 Sheet23행에 매핑 합니다 Sheet1. 이로 & ""인해 에서 빈 셀을 참조할 때 Excel에서 공백이 표시됩니다 Sheet1. 에 공백이 없으면 Sheet1생략해도 됩니다. 이 특정 솔루션이 마음에 들지 않으면 다음의 다른 솔루션 중 하나를 사용할 수 있습니다. Excel에서 빈 셀을 참조할 때 공백 표시.

    이것을 오른쪽 셀로 드래그/채우세요 R2.

  3. =INDEX(Sheet1!$S:$AJ, INT((ROW()-2)/18)+2, MOD(ROW()-2, 18)+1) 에 입력합니다 Sheet2!S2. 이는 Sheet1위 수식과 동일한 행을 참조 하지만 Sheet2!S2에서 값을 가져오고 Sheet1!S2, Sheet2!S3에서 값을 가져오고 Sheet1!T2, 등에서 Sheet2!S4값을 가져옵니다 . 그러면 공백에 s가 Sheet1!U2표시됩니다 .0
  4. 전체 행을 선택 A2:S2하고 아래로 끌어서 채워 모든 데이터를 가져옵니다. 이는 현재 가지고 있는 행의 18배가 되어야 합니다 Sheet1. 즉, 18×900=16200입니다.
  5. 값을 모두 복사하여 Sheet2붙여넣습니다.
  6. 필터 열 S. 0만 표시합니다. 행 1을 제외한 모든 행을 삭제합니다. 필터를 제거하세요.

완료.

답변2

더 쉬운 해결이지만 더 많은 수동 작업: 각 반복에 대해 고유 ID x 시간 없음(여기서 x는 행으로 변환할 열 없음)을 복사할 때마다 행으로 변환할 열에 vlookup을 적용합니다.

관련 정보