2016-04-15 3 views
1

Как я мог объединить несколько таблиц на основе общего индекса столбца «страна», чтобы произвести конвертацию валюты, как показано на рисунках ниже:Использование мощности Query/Get & Transform (Excel 2016) для объединения таблиц

местной валюте Сделки * FX валют = Валюта Скорректированная

enter image description here

enter image description here

enter image description here

ответ

0

Я не думаю, что математика из (A) и (B) выстраивается в линию (C). Если у меня есть 2 британских фунта, это должно быть близко к 3 долларам США, а не тридцать центов.

То, что вы хотите объединить строки между двумя таблицами, обычно называется левым соединением. Вы можете нажать кнопку «Объединить», чтобы объединить строки. Вы хотите сделать соединение из (A) и добавить (B) к нему. После этого вы можете использовать Add Columns с делением и умножить, чтобы рассчитать курс валюты и применить его.

Готовое решение будет выглядеть как окончательный запрос:

section Section1; 

shared LocalCurrencyTransactions = let 
    Source = Csv.Document("Country,LocalCurrencyAmounts 
    US,1 
    UK,2.13 
    JAPAN,328.08 
    INDIA,66.56 
    US,2 
    UK,0.71 
    JAPAN,109.36 
    INDIA,133.12"), 
    #"Promoted Headers" = Table.PromoteHeaders(Source), 
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Country", type text}, {"LocalCurrencyAmounts", type number}}) 
in 
    #"Changed Type"; 

shared #"FX Rates" = let 
    Source = Csv.Document("Country,LocalCurrency,USD 
    US,1,$1.00 
    UK,0.71,$1.00 
    JAPAN,109.36,$1.00 
    INDIA,66.56,$1.00"), 
    #"Promoted Headers" = Table.PromoteHeaders(Source), 
    #"Changed Type" = Table.TransformColumnTypes(#"Promoted Headers",{{"Country", type text}, {"LocalCurrency", type number}, {"USD", Int64.Type}}) 
in 
    #"Changed Type"; 

shared CurrencyAdjustedToUSD = let 
    Source = LocalCurrencyTransactions, 
    #"Merged Queries" = Table.NestedJoin(Source,{"Country"},#"FX Rates",{"Country"},"NewColumn",JoinKind.LeftOuter), 
    #"Expanded NewColumn" = Table.ExpandTableColumn(#"Merged Queries", "NewColumn", {"LocalCurrency", "USD"}, {"NewColumn.LocalCurrency", "NewColumn.USD"}), 
    #"Inserted Division" = Table.AddColumn(#"Expanded NewColumn", "NewColumn.ConversionRate", each [NewColumn.USD]/[NewColumn.LocalCurrency], type number), 
    #"Inserted Multiplication" = Table.AddColumn(#"Inserted Division", "USD", each List.Product({[LocalCurrencyAmounts], [NewColumn.ConversionRate]}), type number), 
    #"Removed Columns" = Table.RemoveColumns(#"Inserted Multiplication",{"NewColumn.LocalCurrency", "NewColumn.USD", "NewColumn.ConversionRate"}) 
in 
    #"Removed Columns"; 
Смежные вопросы