Power Query: заменить значение на основе другого столбца - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть набор данных программ и колледжей, в которых я работаю, но в некоторых колледжах в последние годы произошли изменения в названии.

+------+------------------------------+------------------+
| Year |           College            |     Program      |
+------+------------------------------+------------------+
| 2018 | College of Arts & Humanities | BA Communication |
| 2017 | College of Arts & Humanities | BA Communication |
| 2016 | College of Arts & Sciences   | BA Communication |
+------+------------------------------+------------------+

Что я хочу сделать, это заменить название колледжа в каждом справочнике программы названием колледжа за последний год.В моем примере, приведенном выше, изменится только 2016 год на «Колледж искусств и гуманитарных наук».

Я все еще очень плохо знаком с запросами и тому подобным, поэтому у меня нет ни малейшего представления о том, как справиться с этим....

Я могу создать новый столбец с информацией или заменить текст в столбце, мне просто нужен способ, который не является ручным.

Кто-нибудь еще сталкивался с этим?Или есть идеи, как к этому подойти?Любой совет будет принята с благодарностью.:)


Обновление: Заменить значения не получится, так как некоторые колледжи были разделены и нет простого перехода AB.

Когда я говорю «несколько» колледжей, 1 колледж делится на два, а 2 других переименовываются.Мы говорим о нескольких тысячах записей в одном наборе данных, разных колледжах.У меня нет какой-либо справочной таблицы для изменения имени.Я работал над этим набором данных в течение 2 дней, и самая простая логика, которую я могу найти, чтобы сделать эту работу, состоит в том, чтобы заменить название колледжа в каждой программе названием колледжа с последнего года.


Окончательное обновление: Спасибо @ user9264230.После обновления ссылок в предоставленном коде, похоже, что проблема решена!

1 Ответ

0 голосов
/ 27 сентября 2018

Вам нужно ключевое поле, которое отличает один колледж от другого.Если это поле Program, используйте код

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Grouped Rows" = Table.Group(Source, {"Program"}, {{"Year", each List.Max([Year]), type number}}),
#"Merged Queries" = Table.NestedJoin(#"Grouped Rows",{"Program", "Year"},Source,{"Program", "Year"},"Source",JoinKind.LeftOuter),
List = Table.ExpandTableColumn(#"Merged Queries", "Source", {"College"}, {"College"}),
#"Merged Queries1" = Table.NestedJoin(Source,{"Program"},List,{"Program"},"List",JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(#"Merged Queries1", "List", {"College"}, {"College.1"}),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Table2",{"College"})
in #"Removed Columns"

. В противном случае замените все экземпляры программы на имя нужного поля, например, Key

.
...