레이블 그룹화 및 텍스트 값 연결 (피벗 테이블 등) A를 공유하는

다음과 같은 데이터가 포함 된 스프레드 시트가 있습니다.

제품 | 속성
---------- + ----------
제품 A | 청록
제품 B | 청록
제품 C | 청록
제품 A | 마젠타
제품 C | 마젠타
제품 B | 노랑
제품 C | 노랑
제품 A | 검은
제품 B | 검은

내가 열 A로 모든 것을 그룹화하고 열 B를 공통적으로 열 A를 공유하는 쉼표로 구분 된 값 목록으로 만들고 싶습니다.

제품 | 속성
---------- + --------------------------
제품 A | 시안, 마젠타, 블랙
제품 B | 시안, 옐로우, 블랙
제품 C | 청록색, 마젠타, 노랑, 검정

불행하게도 피벗 테이블은 숫자 값으로 작업하는 방법 만 알고 있으며, 가장 멀리 갈수록 열 A가 발생하는 횟수를 세는 것입니다.

필자는 궁극적으로 데이터를 MySQL 데이터베이스로 가져오고 절이 GROUP_CONCAT(Attribute)있는 쿼리에서 MySQL의 기능을 사용 하여이 GROUP BY Product문제를 해결할 수 있었지만 Excel 솔루션을 알아 내려고 책상에 머리를 반복적으로 부딪힌 후.

나중에 참조 할 수 있도록 매크로가없는 Excel에서 이것이 가능합니까? 그것이 있든 없든, 어떻게 이것을 뽑을 것인가?



답변

   |     A     |     B
---+-----------+-----------
 1 |  PRODUCT  | ATTRIBUTE
 2 | Product A | Cyan
 3 | Product B | Cyan
 4 | Product C | Cyan
 5 | Product A | Magenta
 6 | Product C | Magenta
 7 | Product B | Yellow
 8 | Product C | Yellow
 9 | Product A | Black
10 | Product B | Black

행 1 : 1이 헤더 행이라고 가정합니다.

  1. 제품별로 그룹화하려면 열 A를 기준으로 정렬

  2. 다음 공식에 C2를 입력하여 C 열에 쉼표로 구분 된 형식으로 데이터를 준비 하고 C3 : C10으로 복사하십시오.

    =IF(A2<>A1, B2, C1 & "," & B2)
    
  3. D2를 입력하여 유용한 행식별=A2<>A3 하고 D3 : D10으로 복사하십시오.

  4. 복사 열 C : D는 다음 붙여 넣기를 값으로 ( AltESVEnter). 이제 얻을 것이다 :

    Product A    Cyan       Cyan                   FALSE
    Product A    Magenta    Cyan,Magenta           FALSE
    Product A    Black      Cyan,Magenta,Black     TRUE
    Product B    Cyan       Cyan                   FALSE
    Product B    Yellow     Cyan,Yellow            FALSE
    Product B    Black      Cyan,Yellow,Black      TRUE
    Product C    Cyan       Cyan                   FALSE
    Product C    Magenta    Cyan,Magenta           FALSE
    Product C    Yellow     Cyan,Magenta,Yellow    TRUE
    
  5. FALSE자동 필터를 사용하여 D 열에서 필터링 하여 쓸모없는 행제거한 다음 해당 행을 삭제하십시오.

  6. 마침 . A 열과 C 열이 필요합니다.


답변

나는 그것이 오래된 게시물이라는 것을 알고 있지만 오늘이 도전을 받았습니다. Microsoft 의 PowerQuery 추가 기능을 사용했습니다 (참고 : 기본적으로 Excel 2016에 기본 제공됨).

  1. 테이블을 선택하세요
  2. POWER QUERY 탭 (또는 2016 년의 DATA)에서 “From Table”을 선택하십시오.
  3. “제품”열을 클릭하십시오
  4. 변환 탭에서 “그룹화 기준”을 선택하십시오.
  5. 보기 탭에서 “수식 막대”가 선택되어 있는지 확인하십시오
  6. 공식 변경

    에서:

    = Table.Group(#"Changed Type", {"Product"}, {{"Count", each Table.RowCount(_), type number}})
    

    에:

    = Table.Group(#"Changed Type", {"Product"}, {{"Attributes", each Text.Combine([Attribute], ", "), type text}})
    

    위의 단계를 묘사 한 그림을 보려면 여기를 클릭하십시오.

6 단계는 Power Query (M) 수식을 활용하여 UI에서 제공되는 기본 작업을 통해 노출되지 않은 데이터 조작을 수행합니다. Microsoft는 Power Query에서 사용할 수있는 모든 고급 기능에 대한 온라인 참조를 제공합니다.


답변

다음은 “비 매크로”라는 두 가지 접근 방식입니다.

  1. 작은 데이터 세트를 사용하면 먼저 제품별로 분류 한 후 (GROUP BY 제품과 유사) 먼저 “제품”열을 복사하여 다른 곳에 붙여 넣은 다음 중복을 제거 할 수 있습니다. 그런 다음 각 제품의 “속성”을 복사하고 각 제품 옆에 “특별한 TRANSPOSE 붙여 넣기”를 복사하십시오. 그런 다음 최종 결과 열에서 각각의 조옮김 속성과 쉼표를 연결하십시오. 제품 목록이 길면이 “복사 / 붙여 넣기 특수 / 트랜지션”이 모두 빨리 오래 될 것입니다.

  2. 많은 양의 데이터가있는 경우 몇 가지 수식을 사용하면 아래와 같이 최종 결과를 얻을 수 있습니다. F2, G2, H2, I2 및 N2의 공식은 파란색 화살표로 표시됩니다. 필요에 따라 아래 행에 복사하십시오. J2 : L2는 I2와 동일한 공식을 사용합니다. 또한 F2 공식은 A : A 범위에 걸쳐있는 명명 된 범위 “Products”를 나타냅니다.

여기에 이미지 설명을 입력하십시오


답변