다음 작업을 해결하는 데 도움을 주시겠습니까?
내가 필요한 것-설명이있는 작업을 생성하고 어떤 할인을 확인해야합니다. 하지만 다음과 같은 형식이어야합니다. 동일한 할인 깊이를 가진 동일한 브랜드 내의 SKU는 1 행으로 병합되어야합니다.-SKU의 경우 브랜드 1에 대해 10 % 할인 확인 : 크림 및 오일.
다른 브랜드는 브랜드 내에서 다른 할인이 적용되므로 동일한 행을 유지해야합니다.
SKU 세제 브랜드 2의 할인 20 % 확인 SKU 탭의 브랜드 2 할인 15 % 확인.
더 많은 수준의 데이터가 있습니다. 작업이 동일한 콘센트 내에 있어야합니다 (x> 1 개의 콘센트가있는 경우 콘센트의 양에 따라 작업에 x를 곱합니다). 그러나 위에서 언급 한 작업을 수행하는 방법을 얻으면 더 쉬울 것 같습니다.
모니터 및 카탈로그 열은 기본적으로 병합 할 수있는 행을 설명합니다. 따라서이 테이블의 출력은 2 행이어야합니다.
여러 수준의 집계가있을 수 있습니다. 즉, 1이있는 행 위에 2가있는 행이있을 수 있습니다. 즉, 별도의 작업에서도 병합되어야합니다. 0은 모든 경우에-복용하지 않음을 의미합니다.
나는 그것이 약간 복잡 할 수 있다는 것을 이해하지만 현재 VBA가 각 행을 분석하고 일치 위치를 찾는 중이므로 파워 쿼리 에서이 프로세스의 속도를 높이고 싶습니다.
그 이상의 모든 것은 간단합니다. 브랜드 SKU를 제거하고 작업별로 그룹화합니다.
감사합니다!
여러분들은 필요 이상으로 복잡하게 만들고 있습니다. 여기서 핵심은 Group By를 사용할 때 텍스트 열을 집계 할 수 있다는 것입니다.
첫 번째 작업을 수행하는 방법은 다음과 같습니다.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUUouSk3MBdKGBqpKsToQsfzMHCQRIyA7JbUktSg9Na8EyDZCEi9JTCoGKTUFCsUCAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Brand = _t, SKU = _t, Discount = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Brand", Int64.Type}, {"SKU", type text}, {"Discount", Percentage.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Brand", "Discount"}, {{"SKU", each Text.Combine([SKU],", "), type nullable text}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "Result task", each "Check discount " & Number.ToText([Discount], "P0") & " for brand " & Number.ToText([Brand]) & " for SKU: " & [SKU], type text)
in
#"Added Custom"
결과:
Brand 및 Discount로 그룹화하고 SKU 열을 집계했지만 Text.Combine([SKU],", ")
선택할 수있는 기본 옵션 대신 집계 함수로 사용하여 각 행을 ","로 구분 된 목록으로 결합했습니다 . 일반적으로 Max를 집계로 선택한 다음 List.Max([SKU])
해당 단계의 공식에서 해당 함수를 대체합니다 .
그룹화를 완료 한 후에는 사용자 지정 열에 조각을 함께 묶기 만하면됩니다.
두 번째 작업은 그룹화하기 전에 브랜드와 SKU를 하나의 열로 연결하는 추가 단계와 유사하게 수행 할 수 있습니다.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUUouSk3MBdIGQGyoFKsDEc3PzAHzQeIgMSMgKyW1JLUoPTWvBEU1SKYkMakYoTwWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Brand = _t, SKU = _t, Monitor = _t, Catalogue = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Brand", Int64.Type}, {"SKU", type text}, {"Monitor", Int64.Type}, {"Catalogue", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "BrandSKU", each Number.ToText([Brand]) & "-" & [SKU], type text),
#"Grouped Rows" = Table.Group(#"Added Custom", {"Monitor", "Catalogue"}, {{"BrandSKU", each Text.Combine([BrandSKU], ", "), type text}}),
#"Added Custom1" = Table.AddColumn(#"Grouped Rows", "Result task", each "Check placement of " & [BrandSKU] & " on " & (if [Catalogue] = 1 then "Catalogue" else "Monitor"), type text)
in
#"Added Custom1"
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다