Excel : 설치 기반 목록

Excel : 설치 기반 목록

도와주셔서 미리 감사드립니다!
이 테이블에서 나가도록 어떻게 조언하시겠습니까?

Equipment Desc | Ship To Name
------------------+----------
Small             | Bob
Small             | Dylan
Small             | Joe 
Small             | Ethan
Small             | Bob   
Medium            | Joe
Medium            | Michael
Medium            | Bob    
Big               | Bob   
Big               | Joe
Big               | Michael

이 테이블에:

Ship To Name | Equipment Desc
-------------+-------------
Bob          | 1 Big, 1 Medium, 2 small 
Dylan        | 1 Small
Joe          | 1 Big, 1 Medium, 1 Small
Ethan        | 1 Small
Michael      | 1 Big, 1 Medium

이전 게시물에서 powerquery 솔루션을 사용해 보았습니다. https://superuser.com/a/1054653/1136022
이건 내 생각이었어

= Table.Group(#"Changed Type", {"Ship To Name"}, {{"Installed Base", each Text.Combine([Equipment Desc], "#(cr)"), type text}})

그러나 그것은 도구를 요약하지 않습니다. 단지 악기 목록을 반환합니다.
즉, "2 Big"이 표시되지 않고 "1 big, 1 big"이 표시됩니다.

귀하의 배려에 미리 감사드립니다.

친애하는,

도마

답변1

이렇게 하면 본질적으로 다음과 같이 상당히 가까워질 것입니다.

  • 개수를 기준으로 그룹화
  • 열을 병합하여 개수와 장비 설명을 결합합니다.
  • 장비 설명을 중심으로 피벗
  • 열 병합

이전 단계의 이름도 #"Changed Type"인 것 같으므로 해당 지점부터 내 코드를 붙여넣을 수 있어야 합니다. 다른 사람의 M 코드를 통합하는 것은 항상 약간 까다롭습니다.

let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCs5NzMlR0lFyyk9SitVB8F0qcxLzUES88lMVUARcSzLQlMAM8U1NySzNRdYDF/HNTM5ITM1BFYTpc8pMx+DBjYBw4fpjAQ==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [#"Equipment Desc" = _t, #"Ship To Name" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Ship To Name", type text}, {"Equipment Desc", type text}}),
        #"Grouped Rows" = Table.Group(#"Changed Type", {"Ship To Name", "Equipment Desc"}, {{"Count", each Table.RowCount(_), type number}}),
        #"Duplicated Column" = Table.DuplicateColumn(#"Grouped Rows", "Equipment Desc", "Equipment Desc - Copy"),
        #"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Duplicated Column", {{"Count", type text}}, "en-AU"),{"Count", "Equipment Desc - Copy"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged"),
        #"Sorted Rows" = Table.Sort(#"Merged Columns",{{"Equipment Desc", Order.Ascending}}),
        #"Pivoted Column" = Table.Pivot(#"Sorted Rows", List.Distinct(#"Sorted Rows"[#"Equipment Desc"]), "Equipment Desc", "Merged"),
        #"Merged Columns1" = Table.CombineColumns(#"Pivoted Column",{"Big", "Medium", "Small"},Combiner.CombineTextByDelimiter(", ", QuoteStyle.None),"Equipment Desc")
 in
        #"Merged Columns1"

답변2

방법은 다음과 같습니다.

  • 두 열을 기준으로 그룹화RowCount
  • <space>구분 기호를 사용하여 장비 및 개수 열을 병합합니다.
  • 이름 열을 기준으로 그룹화All Rows
  • 결과 테이블을 목록으로 변환하려면 사용자 정의 열을 추가하세요.
    • 맞춤 열 수식:=Table.Column([Equipment],"Merged")
  • 구분 기호를 사용하여 열 에서 값을 추출합니다 List(이중 화살표 사용).,

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Equipment Desc", type text}, {"Ship To Name", type text}}),
    #"Trimmed Text" = Table.TransformColumns(#"Changed Type",{{"Ship To Name", Text.Trim, type text}, {"Equipment Desc", Text.Trim, type text}}),
    #"Grouped Rows" = Table.Group(#"Trimmed Text", {"Ship To Name", "Equipment Desc"}, {{"Count", each Table.RowCount(_), type number}}),
    #"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Grouped Rows", {{"Count", type text}}, "en-US"),{"Count", "Equipment Desc"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged"),
    #"Grouped Rows1" = Table.Group(#"Merged Columns", {"Ship To Name"}, {{"Equipment", each _, type table [Ship To Name=text, Merged=text]}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows1", "Eqpt List", each Table.Column([Equipment],"Merged")),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"Equipment"}),
    #"Extracted Values" = Table.TransformColumns(#"Removed Columns", {"Eqpt List", each Text.Combine(List.Transform(_, Text.From), ", "), type text})
in
    #"Extracted Values"

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

관련 정보