Как агрегировать строки с обратными метками? - PullRequest
0 голосов
/ 04 апреля 2019

Я работаю над агрегацией тысяч строк полетных данных, которые структурированы следующим образом:

o&d pair table

LGA-LAX и LAX-LGA - это односторонниеодин маршрут, и поэтому я хочу объединить их в одну строку с агрегированными значениями.

Результат должен выглядеть следующим образом:

o&d pair table

Однако я 'Я не могу сделать это ни в Excel, ни в SQL.

Ответы [ 3 ]

1 голос
/ 04 апреля 2019

Добавьте вспомогательный столбец, такой как

=IF(F2 > G2, F2 & "-" & G2, G2 & "-" & F2)

и агрегируйте на этом

0 голосов
/ 04 апреля 2019

Для этого можно использовать Power Query (он же Get&Transform) в Excel.

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"origin", type text}, {"dest", type text}, {"direct", Int64.Type}, {"connecting", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each List.Sort({[origin],[dest]})),
    #"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Custom", each Text.Combine(List.Transform(_, Text.From), "-"), type text}),
    #"Grouped Rows" = Table.Group(#"Extracted Values", {"Custom"}, {{"allDirect", each List.Sum([direct]), type number}, {"allConnecting", each List.Sum([connecting]), type number}})
in
    #"Grouped Rows"

Все это можно сделать через пользовательский интерфейс, за исключением пользовательского столбца, для которого формула имеет вид:List.Sort({[origin],[dest]})

enter image description here

0 голосов
/ 04 апреля 2019
=ARRAYFORMULA(QUERY({IF(F2:F>G2:G, {F2:F, G2:G}, {G2:G, F2:F}), H2:I}, 
 "select Col1,Col2,sum(Col3),sum(Col4) 
  where Col1 is not null 
  group by Col1,Col2 
  label sum(Col3)'',sum(Col4)''"))

0


00

...