Combinando o conteúdo da célula em uma coluna usando a lógica de outra coluna

2

Gostaria de combinar e listar o conteúdo da célula de uma coluna usando a lógica derivada de outra Veja os detalhes abaixo

Conjunto de dados

Name             Sales order number

Harry1           1234
Dave2            1235
Mary3            1234
Bill4            1234
Tom5             1235

A fórmula analisará os números de pedidos de vendas, coletará todos os nomes com o mesmo número de pedido de venda e exibirá os nomes em uma única coluna chamada "Vendido por"

Resultados

  Name            Sales Order Number            Sold by

Harry1            1234                          Harry1, Mary3, Bill4
Dave2             1235                          Dave2, Tom5
Mary3             1234                          Harry1, Mary3, Bill4
Bill4             1234                          Harry1, Mary3, Bill4
Tom5              1235                          Dave2, Tom5

Pode parecer ilógico fazê-lo desta maneira, mas eu tenho um grande conjunto de dados e, em seguida, faço um Pivot usando os "Resultados"

Ao fazer uma instrução IF simples, eu puxei o primeiro nome para a coluna vendida por, mas não consigo descobrir como agregar todos os nomes com a mesma ordem de vendas e listá-los na coluna

    
por user593732 13.05.2016 / 19:37

1 resposta

0

Você pode fazer essa etapa de transformação com a Microsoft gratuita Power Query add-in.
Não é VBA, mas, neste caso, existem alguns passos para codificar, além do uso da interface do usuário.

Tabela"Dataset" - > saída de dados do Power Query

  1. Defina o Dataset como tabela (eu o chamo de "Dataset" no script a seguir)
  2. Na faixa de opções Power Query, importe a tabela na interface do usuário ("Da tabela")
  3. Coloque o script abaixo no editor avançado (vista da faixa de opções - > editor avançado)

Aqui está o código M:

let
    Source = Excel.CurrentWorkbook(){[Name="Dataset"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Name", type text}, {"Sales order number", Int64.Type}}),
    #"Merged Queries" = Table.NestedJoin(#"Changed Type",{"Sales order number"},#"Changed Type",{"Sales order number"},"NewColumn",JoinKind.LeftOuter),

    // Function for Merging the matching rows
    List_MatchingRows=(Table, Column) =>
        let 
            ColumnToMerge = Table.SelectColumns(Table, Column),
            ListMatch = Table.ToList(ColumnToMerge),
            SingleLine = Text.TrimEnd(Text.TrimEnd(Lines.ToText(ListMatch, ", ")," "),",")
        in
            SingleLine,


    #"Added Custom" = Table.AddColumn(#"Merged Queries", "Sold by", each List_MatchingRows([NewColumn],"Name")),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom",{"NewColumn"})

in
    #"Removed Columns"
    
por 13.05.2016 / 22:43